Files
flink-kube-operator/crds.yaml
Seraj Haqiqi a36e72877d feat(jar): add OCI registry pull for JAR artifacts with backward compat
- Add jarRef and jarPullSecret fields to FlinkJob CRD (jarUri/basicAuth deprecated)
- OCI pull via go-containerregistry with dual auth (K8s pull secret + env vars)
- Media type validation on pulled layers
- Atomic status patches with runningJarRef/runningJarDigest tracking
- NeedsUpgrade/RunningRef/RunningRefPatchData domain helpers
- README with usage guide, pushing JARs, and GitHub Actions CI/CD workflow
- CONTEXT.md domain glossary
2026-07-24 17:37:30 +03:30

141 lines
4.7 KiB
YAML

# flink-crd.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: flink-jobs.flink.logicamp.dev
spec:
group: flink.logicamp.dev
names:
kind: FlinkJob
plural: flink-jobs
singular: flink-job
shortNames:
- lfj
scope: Namespaced
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
required:
- key
properties:
key:
type: string
name:
type: string
flinkCluster:
type: string
description: "Identifier of the Flink cluster that manages this job. Defaults to the OPERATOR_ID (usually the Helm release name) if not set."
entryClass:
type: string
parallelism:
type: integer
jarRef:
type: string
description: "OCI reference to the JAR artifact (e.g. registry.io/org/app:tag). Takes precedence over jarUri."
jarPullSecret:
type: string
description: "Name of a kubernetes.io/dockerconfigjson Secret for registry authentication."
jarUri:
type: string
description: "Deprecated. Use jarRef instead. HTTP(S) URL to the JAR file."
jarURIBasicAuthUsername:
type: string
description: "Deprecated. Use jarPullSecret instead."
jarURIBasicAuthPassword:
type: string
description: "Deprecated. Use jarPullSecret instead."
args:
description: "Program arguments. Accepts a list of strings (--key, value, ...) or a map of key-value pairs."
x-kubernetes-preserve-unknown-fields: true
savepointInterval:
type: string
format: duration
flinkConfiguration:
type: object
additionalProperties:
type: string
resources:
type: object
properties:
requests:
type: object
properties:
memory:
type: string
cpu:
type: string
limits:
type: object
properties:
memory:
type: string
cpu:
type: string
status:
type: object
properties:
jobStatus:
type: string
startTime:
type: string
jobId:
type: string
jarId:
type: string
error:
type: string
lastSavepointPath:
type: string
lifeCycleStatus:
type: string
savepointTriggerId:
type: string
lastSavepointDate:
type: string
format: time
lastRestoredSavepointDate:
type: string
format: time
lastRestoredSavepointRestoredDate:
type: string
format: time
runningJarDigest:
type: string
description: "SHA256 digest of the currently running JAR layer."
runningJarRef:
type: string
description: "OCI reference of the currently running JAR."
runningJarURI:
type: string
description: "Deprecated. HTTP URI of the currently running JAR."
pauseSavepointTriggerId:
type: string
restoredCount:
type: number
additionalPrinterColumns:
- name: Status
type: string
jsonPath: .status.jobStatus
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
- name: Life Cycle Status
type: string
jsonPath: .status.lifeCycleStatus
- name: Last Savepoint
type: date
jsonPath: .status.lastSavepointDate
- name: Last Restored Savepoint
type: date
jsonPath: .status.lastRestoredSavepointDate
- name: Restored Count
type: number
jsonPath: .status.restoredCount