Hybrid cloud cluster monorepo with Ansible, K8s, NixOS, and Terraform. cute.haus
ansible terraform nix k8s
0

Configure Feed

Select the types of activity you want to include in your feed.

k8s/watsup: move to flux

Aly Raffauf (Jul 1, 2026, 3:08 PM EDT) cd850109 41e7ef70

+5715 -5496
+9 -8
.justfile
··· 187 187 bump TARGET: 188 188 bun scripts/bump-image.ts {{ TARGET }} 189 189 190 - # Same-namespace real-release helper for local in-tree charts only. 191 - # Usage: just k8s {apply|diff|suspend|resume|reconcile} <release> [namespace] 190 + # Real-release helper for local in-tree charts only. Flux HelmRelease objects 191 + # live in flux-system; Helm installs into the target namespace. 192 + # Usage: just k8s {apply|diff|suspend|resume|reconcile} <release> [target-namespace] [helmrelease-namespace] 192 193 [group('kubes')] 193 - k8s action release namespace='default': 194 + k8s action release namespace='default' hr_namespace='flux-system': 194 195 #!/usr/bin/env bash 195 196 set -euo pipefail 196 197 chart="k8s/charts/{{release}}" ··· 201 202 echo "just k8s apply supports local charts only: $chart/Chart.yaml not found" >&2 202 203 exit 2 203 204 fi 204 - flux suspend helmrelease "{{release}}" -n "{{namespace}}" || true 205 + flux suspend helmrelease "{{release}}" -n "{{hr_namespace}}" || true 205 206 helm upgrade --install "{{release}}" "$chart" \ 206 207 -n "{{namespace}}" -f k8s/values/global.yaml 207 208 ;; ··· 214 215 -n "{{namespace}}" -f k8s/values/global.yaml 215 216 ;; 216 217 suspend) 217 - flux suspend helmrelease "{{release}}" -n "{{namespace}}" 218 + flux suspend helmrelease "{{release}}" -n "{{hr_namespace}}" 218 219 ;; 219 220 resume) 220 - flux resume helmrelease "{{release}}" -n "{{namespace}}" 221 + flux resume helmrelease "{{release}}" -n "{{hr_namespace}}" 221 222 ;; 222 223 reconcile) 223 - flux reconcile helmrelease "{{release}}" -n "{{namespace}}" --with-source 224 + flux reconcile helmrelease "{{release}}" -n "{{hr_namespace}}" --with-source 224 225 ;; 225 226 *) 226 - echo "usage: just k8s {apply|diff|suspend|resume|reconcile} <release> [namespace]" >&2 227 + echo "usage: just k8s {apply|diff|suspend|resume|reconcile} <release> [target-namespace] [helmrelease-namespace]" >&2 227 228 exit 2 228 229 ;; 229 230 esac
+5
PLAN.md
··· 98 98 99 99 11. **Convert Helmfile Releases To Flux HelmReleases** 100 100 - Convert releases layer-by-layer. 101 + - Store Flux `HelmRelease` objects in `flux-system` and set 102 + `spec.targetNamespace` to the workload namespace. This keeps shared 103 + `valuesFrom` objects such as `cute-haus-global` in one namespace. 101 104 - External charts use `HelmRepository`. 102 105 - In-tree charts use `GitRepository` and `chart: ./k8s/charts/<name>`. 103 106 - Inline non-secret values in `spec.values`. ··· 156 159 ``` 157 160 158 161 - Scope: local in-tree charts only where release name equals `k8s/charts/<release>`. 162 + - Flux `HelmRelease` objects live in `flux-system`; the optional namespace 163 + argument remains the Helm target namespace. 159 164 - `apply` suspends Flux first, then runs `helm upgrade --install`. 160 165 - `diff` uses `helm diff upgrade --allow-unreleased`. 161 166 - External charts are managed through Flux only.
+1 -1
k8s/flux/apps/kustomization.yaml
··· 1 1 apiVersion: kustomize.config.k8s.io/v1beta1 2 2 kind: Kustomization 3 3 resources: 4 - - placeholder.yaml 4 + - watsup.yaml
-9
k8s/flux/apps/placeholder.yaml
··· 1 - apiVersion: v1 2 - kind: ConfigMap 3 - metadata: 4 - name: flux-layer-apps-placeholder 5 - namespace: flux-system 6 - labels: 7 - cute.haus/flux-layer-placeholder: "true" 8 - data: 9 - note: Remove this placeholder when apps has real resources.
+21
k8s/flux/apps/watsup.yaml
··· 1 + apiVersion: helm.toolkit.fluxcd.io/v2 2 + kind: HelmRelease 3 + metadata: 4 + name: watsup 5 + namespace: flux-system 6 + spec: 7 + interval: 15m 8 + releaseName: watsup 9 + targetNamespace: default 10 + chart: 11 + spec: 12 + chart: ./k8s/charts/watsup 13 + interval: 15m 14 + sourceRef: 15 + kind: GitRepository 16 + name: cute-haus 17 + namespace: flux-system 18 + valuesFrom: 19 + - kind: ConfigMap 20 + name: cute-haus-global 21 + valuesKey: values.yaml
+5586 -5464
k8s/flux/system/gotk-components.yaml
··· 24 24 namespace: flux-system 25 25 spec: 26 26 egress: 27 - - {} 27 + - {} 28 28 ingress: 29 - - from: 30 - - podSelector: {} 29 + - from: 30 + - podSelector: {} 31 31 podSelector: {} 32 32 policyTypes: 33 - - Ingress 34 - - Egress 33 + - Ingress 34 + - Egress 35 35 --- 36 36 apiVersion: networking.k8s.io/v1 37 37 kind: NetworkPolicy ··· 44 44 namespace: flux-system 45 45 spec: 46 46 ingress: 47 - - from: 48 - - namespaceSelector: {} 49 - ports: 50 - - port: 8080 51 - protocol: TCP 47 + - from: 48 + - namespaceSelector: {} 49 + ports: 50 + - port: 8080 51 + protocol: TCP 52 52 podSelector: {} 53 53 policyTypes: 54 - - Ingress 54 + - Ingress 55 55 --- 56 56 apiVersion: networking.k8s.io/v1 57 57 kind: NetworkPolicy ··· 64 64 namespace: flux-system 65 65 spec: 66 66 ingress: 67 - - from: 68 - - namespaceSelector: {} 67 + - from: 68 + - namespaceSelector: {} 69 69 podSelector: 70 70 matchLabels: 71 71 app: notification-controller 72 72 policyTypes: 73 - - Ingress 73 + - Ingress 74 74 --- 75 75 apiVersion: v1 76 76 kind: ResourceQuota ··· 86 86 pods: "1000" 87 87 scopeSelector: 88 88 matchExpressions: 89 - - operator: In 90 - scopeName: PriorityClass 91 - values: 92 - - system-node-critical 93 - - system-cluster-critical 89 + - operator: In 90 + scopeName: PriorityClass 91 + values: 92 + - system-node-critical 93 + - system-cluster-critical 94 94 --- 95 95 apiVersion: rbac.authorization.k8s.io/v1 96 96 kind: ClusterRole ··· 101 101 app.kubernetes.io/version: v2.8.8 102 102 name: crd-controller-flux-system 103 103 rules: 104 - - apiGroups: 105 - - source.toolkit.fluxcd.io 106 - resources: 107 - - '*' 108 - verbs: 109 - - '*' 110 - - apiGroups: 111 - - kustomize.toolkit.fluxcd.io 112 - resources: 113 - - '*' 114 - verbs: 115 - - '*' 116 - - apiGroups: 117 - - helm.toolkit.fluxcd.io 118 - resources: 119 - - '*' 120 - verbs: 121 - - '*' 122 - - apiGroups: 123 - - notification.toolkit.fluxcd.io 124 - resources: 125 - - '*' 126 - verbs: 127 - - '*' 128 - - apiGroups: 129 - - image.toolkit.fluxcd.io 130 - resources: 131 - - '*' 132 - verbs: 133 - - '*' 134 - - apiGroups: 135 - - source.extensions.fluxcd.io 136 - resources: 137 - - '*' 138 - verbs: 139 - - '*' 140 - - apiGroups: 141 - - "" 142 - resources: 143 - - namespaces 144 - - secrets 145 - - configmaps 146 - - serviceaccounts 147 - verbs: 148 - - get 149 - - list 150 - - watch 151 - - apiGroups: 152 - - "" 153 - resources: 154 - - events 155 - verbs: 156 - - create 157 - - patch 158 - - apiGroups: 159 - - "" 160 - resources: 161 - - configmaps 162 - verbs: 163 - - get 164 - - list 165 - - watch 166 - - create 167 - - update 168 - - patch 169 - - delete 170 - - apiGroups: 171 - - "" 172 - resources: 173 - - configmaps/status 174 - verbs: 175 - - get 176 - - update 177 - - patch 178 - - apiGroups: 179 - - coordination.k8s.io 180 - resources: 181 - - leases 182 - verbs: 183 - - get 184 - - list 185 - - watch 186 - - create 187 - - update 188 - - patch 189 - - delete 190 - - apiGroups: 191 - - "" 192 - resources: 193 - - serviceaccounts/token 194 - verbs: 195 - - create 196 - - nonResourceURLs: 197 - - /livez/ping 198 - verbs: 199 - - head 104 + - apiGroups: 105 + - source.toolkit.fluxcd.io 106 + resources: 107 + - "*" 108 + verbs: 109 + - "*" 110 + - apiGroups: 111 + - kustomize.toolkit.fluxcd.io 112 + resources: 113 + - "*" 114 + verbs: 115 + - "*" 116 + - apiGroups: 117 + - helm.toolkit.fluxcd.io 118 + resources: 119 + - "*" 120 + verbs: 121 + - "*" 122 + - apiGroups: 123 + - notification.toolkit.fluxcd.io 124 + resources: 125 + - "*" 126 + verbs: 127 + - "*" 128 + - apiGroups: 129 + - image.toolkit.fluxcd.io 130 + resources: 131 + - "*" 132 + verbs: 133 + - "*" 134 + - apiGroups: 135 + - source.extensions.fluxcd.io 136 + resources: 137 + - "*" 138 + verbs: 139 + - "*" 140 + - apiGroups: 141 + - "" 142 + resources: 143 + - namespaces 144 + - secrets 145 + - configmaps 146 + - serviceaccounts 147 + verbs: 148 + - get 149 + - list 150 + - watch 151 + - apiGroups: 152 + - "" 153 + resources: 154 + - events 155 + verbs: 156 + - create 157 + - patch 158 + - apiGroups: 159 + - "" 160 + resources: 161 + - configmaps 162 + verbs: 163 + - get 164 + - list 165 + - watch 166 + - create 167 + - update 168 + - patch 169 + - delete 170 + - apiGroups: 171 + - "" 172 + resources: 173 + - configmaps/status 174 + verbs: 175 + - get 176 + - update 177 + - patch 178 + - apiGroups: 179 + - coordination.k8s.io 180 + resources: 181 + - leases 182 + verbs: 183 + - get 184 + - list 185 + - watch 186 + - create 187 + - update 188 + - patch 189 + - delete 190 + - apiGroups: 191 + - "" 192 + resources: 193 + - serviceaccounts/token 194 + verbs: 195 + - create 196 + - nonResourceURLs: 197 + - /livez/ping 198 + verbs: 199 + - head 200 200 --- 201 201 apiVersion: rbac.authorization.k8s.io/v1 202 202 kind: ClusterRole ··· 209 209 rbac.authorization.k8s.io/aggregate-to-edit: "true" 210 210 name: flux-edit-flux-system 211 211 rules: 212 - - apiGroups: 213 - - notification.toolkit.fluxcd.io 214 - - source.toolkit.fluxcd.io 215 - - source.extensions.fluxcd.io 216 - - helm.toolkit.fluxcd.io 217 - - image.toolkit.fluxcd.io 218 - - kustomize.toolkit.fluxcd.io 219 - resources: 220 - - '*' 221 - verbs: 222 - - create 223 - - delete 224 - - deletecollection 225 - - patch 226 - - update 212 + - apiGroups: 213 + - notification.toolkit.fluxcd.io 214 + - source.toolkit.fluxcd.io 215 + - source.extensions.fluxcd.io 216 + - helm.toolkit.fluxcd.io 217 + - image.toolkit.fluxcd.io 218 + - kustomize.toolkit.fluxcd.io 219 + resources: 220 + - "*" 221 + verbs: 222 + - create 223 + - delete 224 + - deletecollection 225 + - patch 226 + - update 227 227 --- 228 228 apiVersion: rbac.authorization.k8s.io/v1 229 229 kind: ClusterRole ··· 237 237 rbac.authorization.k8s.io/aggregate-to-view: "true" 238 238 name: flux-view-flux-system 239 239 rules: 240 - - apiGroups: 241 - - notification.toolkit.fluxcd.io 242 - - source.toolkit.fluxcd.io 243 - - source.extensions.fluxcd.io 244 - - helm.toolkit.fluxcd.io 245 - - image.toolkit.fluxcd.io 246 - - kustomize.toolkit.fluxcd.io 247 - resources: 248 - - '*' 249 - verbs: 250 - - get 251 - - list 252 - - watch 240 + - apiGroups: 241 + - notification.toolkit.fluxcd.io 242 + - source.toolkit.fluxcd.io 243 + - source.extensions.fluxcd.io 244 + - helm.toolkit.fluxcd.io 245 + - image.toolkit.fluxcd.io 246 + - kustomize.toolkit.fluxcd.io 247 + resources: 248 + - "*" 249 + verbs: 250 + - get 251 + - list 252 + - watch 253 253 --- 254 254 apiVersion: rbac.authorization.k8s.io/v1 255 255 kind: ClusterRoleBinding ··· 264 264 kind: ClusterRole 265 265 name: cluster-admin 266 266 subjects: 267 - - kind: ServiceAccount 268 - name: kustomize-controller 269 - namespace: flux-system 270 - - kind: ServiceAccount 271 - name: helm-controller 272 - namespace: flux-system 267 + - kind: ServiceAccount 268 + name: kustomize-controller 269 + namespace: flux-system 270 + - kind: ServiceAccount 271 + name: helm-controller 272 + namespace: flux-system 273 273 --- 274 274 apiVersion: rbac.authorization.k8s.io/v1 275 275 kind: ClusterRoleBinding ··· 284 284 kind: ClusterRole 285 285 name: crd-controller-flux-system 286 286 subjects: 287 - - kind: ServiceAccount 288 - name: kustomize-controller 289 - namespace: flux-system 290 - - kind: ServiceAccount 291 - name: helm-controller 292 - namespace: flux-system 293 - - kind: ServiceAccount 294 - name: source-controller 295 - namespace: flux-system 296 - - kind: ServiceAccount 297 - name: notification-controller 298 - namespace: flux-system 299 - - kind: ServiceAccount 300 - name: image-reflector-controller 301 - namespace: flux-system 302 - - kind: ServiceAccount 303 - name: image-automation-controller 304 - namespace: flux-system 305 - - kind: ServiceAccount 306 - name: source-watcher 307 - namespace: flux-system 287 + - kind: ServiceAccount 288 + name: kustomize-controller 289 + namespace: flux-system 290 + - kind: ServiceAccount 291 + name: helm-controller 292 + namespace: flux-system 293 + - kind: ServiceAccount 294 + name: source-controller 295 + namespace: flux-system 296 + - kind: ServiceAccount 297 + name: notification-controller 298 + namespace: flux-system 299 + - kind: ServiceAccount 300 + name: image-reflector-controller 301 + namespace: flux-system 302 + - kind: ServiceAccount 303 + name: image-automation-controller 304 + namespace: flux-system 305 + - kind: ServiceAccount 306 + name: source-watcher 307 + namespace: flux-system 308 308 --- 309 309 apiVersion: apiextensions.k8s.io/v1 310 310 kind: CustomResourceDefinition ··· 326 326 singular: bucket 327 327 scope: Namespaced 328 328 versions: 329 - - additionalPrinterColumns: 330 - - jsonPath: .spec.endpoint 331 - name: Endpoint 332 - type: string 333 - - jsonPath: .metadata.creationTimestamp 334 - name: Age 335 - type: date 336 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 337 - name: Ready 338 - type: string 339 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 340 - name: Status 341 - type: string 342 - name: v1 343 - schema: 344 - openAPIV3Schema: 345 - description: Bucket is the Schema for the buckets API. 346 - properties: 347 - apiVersion: 348 - description: |- 349 - APIVersion defines the versioned schema of this representation of an object. 350 - Servers should convert recognized schemas to the latest internal value, and 351 - may reject unrecognized values. 352 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 353 - type: string 354 - kind: 355 - description: |- 356 - Kind is a string value representing the REST resource this object represents. 357 - Servers may infer this from the endpoint the client submits requests to. 358 - Cannot be updated. 359 - In CamelCase. 360 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 361 - type: string 362 - metadata: 363 - type: object 364 - spec: 365 - description: |- 366 - BucketSpec specifies the required configuration to produce an Artifact for 367 - an object storage bucket. 368 - properties: 369 - bucketName: 370 - description: BucketName is the name of the object storage bucket. 371 - type: string 372 - certSecretRef: 373 - description: |- 374 - CertSecretRef can be given the name of a Secret containing 375 - either or both of 329 + - additionalPrinterColumns: 330 + - jsonPath: .spec.endpoint 331 + name: Endpoint 332 + type: string 333 + - jsonPath: .metadata.creationTimestamp 334 + name: Age 335 + type: date 336 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 337 + name: Ready 338 + type: string 339 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 340 + name: Status 341 + type: string 342 + name: v1 343 + schema: 344 + openAPIV3Schema: 345 + description: Bucket is the Schema for the buckets API. 346 + properties: 347 + apiVersion: 348 + description: |- 349 + APIVersion defines the versioned schema of this representation of an object. 350 + Servers should convert recognized schemas to the latest internal value, and 351 + may reject unrecognized values. 352 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 353 + type: string 354 + kind: 355 + description: |- 356 + Kind is a string value representing the REST resource this object represents. 357 + Servers may infer this from the endpoint the client submits requests to. 358 + Cannot be updated. 359 + In CamelCase. 360 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 361 + type: string 362 + metadata: 363 + type: object 364 + spec: 365 + description: |- 366 + BucketSpec specifies the required configuration to produce an Artifact for 367 + an object storage bucket. 368 + properties: 369 + bucketName: 370 + description: BucketName is the name of the object storage bucket. 371 + type: string 372 + certSecretRef: 373 + description: |- 374 + CertSecretRef can be given the name of a Secret containing 375 + either or both of 376 376 377 - - a PEM-encoded client certificate (`tls.crt`) and private 378 - key (`tls.key`); 379 - - a PEM-encoded CA certificate (`ca.crt`) 377 + - a PEM-encoded client certificate (`tls.crt`) and private 378 + key (`tls.key`); 379 + - a PEM-encoded CA certificate (`ca.crt`) 380 380 381 - and whichever are supplied, will be used for connecting to the 382 - bucket. The client cert and key are useful if you are 383 - authenticating with a certificate; the CA cert is useful if 384 - you are using a self-signed server certificate. The Secret must 385 - be of type `Opaque` or `kubernetes.io/tls`. 381 + and whichever are supplied, will be used for connecting to the 382 + bucket. The client cert and key are useful if you are 383 + authenticating with a certificate; the CA cert is useful if 384 + you are using a self-signed server certificate. The Secret must 385 + be of type `Opaque` or `kubernetes.io/tls`. 386 386 387 - This field is only supported for the `generic` provider. 388 - properties: 389 - name: 390 - description: Name of the referent. 391 - type: string 392 - required: 393 - - name 394 - type: object 395 - endpoint: 396 - description: Endpoint is the object storage address the BucketName 397 - is located at. 398 - type: string 399 - ignore: 400 - description: |- 401 - Ignore overrides the set of excluded patterns in the .sourceignore format 402 - (which is the same as .gitignore). If not provided, a default will be used, 403 - consult the documentation for your version to find out what those are. 404 - type: string 405 - insecure: 406 - description: Insecure allows connecting to a non-TLS HTTP Endpoint. 407 - type: boolean 408 - interval: 409 - description: |- 410 - Interval at which the Bucket Endpoint is checked for updates. 411 - This interval is approximate and may be subject to jitter to ensure 412 - efficient use of resources. 413 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 414 - type: string 415 - prefix: 416 - description: Prefix to use for server-side filtering of files in the 417 - Bucket. 418 - type: string 419 - provider: 420 - default: generic 421 - description: |- 422 - Provider of the object storage bucket. 423 - Defaults to 'generic', which expects an S3 (API) compatible object 424 - storage. 425 - enum: 426 - - generic 427 - - aws 428 - - gcp 429 - - azure 430 - type: string 431 - proxySecretRef: 432 - description: |- 433 - ProxySecretRef specifies the Secret containing the proxy configuration 434 - to use while communicating with the Bucket server. 435 - properties: 436 - name: 437 - description: Name of the referent. 438 - type: string 439 - required: 440 - - name 441 - type: object 442 - region: 443 - description: Region of the Endpoint where the BucketName is located 444 - in. 445 - type: string 446 - secretRef: 447 - description: |- 448 - SecretRef specifies the Secret containing authentication credentials 449 - for the Bucket. 450 - properties: 451 - name: 452 - description: Name of the referent. 453 - type: string 454 - required: 455 - - name 456 - type: object 457 - serviceAccountName: 458 - description: |- 459 - ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate 460 - the bucket. This field is only supported for the 'gcp' and 'aws' providers. 461 - For more information about workload identity: 462 - https://fluxcd.io/flux/components/source/buckets/#workload-identity 463 - type: string 464 - sts: 465 - description: |- 466 - STS specifies the required configuration to use a Security Token 467 - Service for fetching temporary credentials to authenticate in a 468 - Bucket provider. 387 + This field is only supported for the `generic` provider. 388 + properties: 389 + name: 390 + description: Name of the referent. 391 + type: string 392 + required: 393 + - name 394 + type: object 395 + endpoint: 396 + description: 397 + Endpoint is the object storage address the BucketName 398 + is located at. 399 + type: string 400 + ignore: 401 + description: |- 402 + Ignore overrides the set of excluded patterns in the .sourceignore format 403 + (which is the same as .gitignore). If not provided, a default will be used, 404 + consult the documentation for your version to find out what those are. 405 + type: string 406 + insecure: 407 + description: Insecure allows connecting to a non-TLS HTTP Endpoint. 408 + type: boolean 409 + interval: 410 + description: |- 411 + Interval at which the Bucket Endpoint is checked for updates. 412 + This interval is approximate and may be subject to jitter to ensure 413 + efficient use of resources. 414 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 415 + type: string 416 + prefix: 417 + description: 418 + Prefix to use for server-side filtering of files in the 419 + Bucket. 420 + type: string 421 + provider: 422 + default: generic 423 + description: |- 424 + Provider of the object storage bucket. 425 + Defaults to 'generic', which expects an S3 (API) compatible object 426 + storage. 427 + enum: 428 + - generic 429 + - aws 430 + - gcp 431 + - azure 432 + type: string 433 + proxySecretRef: 434 + description: |- 435 + ProxySecretRef specifies the Secret containing the proxy configuration 436 + to use while communicating with the Bucket server. 437 + properties: 438 + name: 439 + description: Name of the referent. 440 + type: string 441 + required: 442 + - name 443 + type: object 444 + region: 445 + description: 446 + Region of the Endpoint where the BucketName is located 447 + in. 448 + type: string 449 + secretRef: 450 + description: |- 451 + SecretRef specifies the Secret containing authentication credentials 452 + for the Bucket. 453 + properties: 454 + name: 455 + description: Name of the referent. 456 + type: string 457 + required: 458 + - name 459 + type: object 460 + serviceAccountName: 461 + description: |- 462 + ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate 463 + the bucket. This field is only supported for the 'gcp' and 'aws' providers. 464 + For more information about workload identity: 465 + https://fluxcd.io/flux/components/source/buckets/#workload-identity 466 + type: string 467 + sts: 468 + description: |- 469 + STS specifies the required configuration to use a Security Token 470 + Service for fetching temporary credentials to authenticate in a 471 + Bucket provider. 469 472 470 - This field is only supported for the `aws` and `generic` providers. 471 - properties: 472 - certSecretRef: 473 - description: |- 474 - CertSecretRef can be given the name of a Secret containing 475 - either or both of 473 + This field is only supported for the `aws` and `generic` providers. 474 + properties: 475 + certSecretRef: 476 + description: |- 477 + CertSecretRef can be given the name of a Secret containing 478 + either or both of 476 479 477 - - a PEM-encoded client certificate (`tls.crt`) and private 478 - key (`tls.key`); 479 - - a PEM-encoded CA certificate (`ca.crt`) 480 + - a PEM-encoded client certificate (`tls.crt`) and private 481 + key (`tls.key`); 482 + - a PEM-encoded CA certificate (`ca.crt`) 480 483 481 - and whichever are supplied, will be used for connecting to the 482 - STS endpoint. The client cert and key are useful if you are 483 - authenticating with a certificate; the CA cert is useful if 484 - you are using a self-signed server certificate. The Secret must 485 - be of type `Opaque` or `kubernetes.io/tls`. 484 + and whichever are supplied, will be used for connecting to the 485 + STS endpoint. The client cert and key are useful if you are 486 + authenticating with a certificate; the CA cert is useful if 487 + you are using a self-signed server certificate. The Secret must 488 + be of type `Opaque` or `kubernetes.io/tls`. 486 489 487 - This field is only supported for the `ldap` provider. 488 - properties: 489 - name: 490 - description: Name of the referent. 491 - type: string 492 - required: 493 - - name 494 - type: object 495 - endpoint: 496 - description: |- 497 - Endpoint is the HTTP/S endpoint of the Security Token Service from 498 - where temporary credentials will be fetched. 499 - pattern: ^(http|https)://.*$ 500 - type: string 501 - provider: 502 - description: Provider of the Security Token Service. 503 - enum: 504 - - aws 505 - - ldap 506 - type: string 507 - secretRef: 508 - description: |- 509 - SecretRef specifies the Secret containing authentication credentials 510 - for the STS endpoint. This Secret must contain the fields `username` 511 - and `password` and is supported only for the `ldap` provider. 512 - properties: 513 - name: 514 - description: Name of the referent. 515 - type: string 516 - required: 517 - - name 518 - type: object 519 - required: 520 - - endpoint 521 - - provider 522 - type: object 523 - suspend: 524 - description: |- 525 - Suspend tells the controller to suspend the reconciliation of this 526 - Bucket. 527 - type: boolean 528 - timeout: 529 - default: 60s 530 - description: Timeout for fetch operations, defaults to 60s. 531 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 532 - type: string 533 - required: 534 - - bucketName 535 - - endpoint 536 - - interval 537 - type: object 538 - x-kubernetes-validations: 539 - - message: STS configuration is only supported for the 'aws' and 'generic' 540 - Bucket providers 541 - rule: self.provider == 'aws' || self.provider == 'generic' || !has(self.sts) 542 - - message: '''aws'' is the only supported STS provider for the ''aws'' 543 - Bucket provider' 544 - rule: self.provider != 'aws' || !has(self.sts) || self.sts.provider 545 - == 'aws' 546 - - message: '''ldap'' is the only supported STS provider for the ''generic'' 547 - Bucket provider' 548 - rule: self.provider != 'generic' || !has(self.sts) || self.sts.provider 549 - == 'ldap' 550 - - message: spec.sts.secretRef is not required for the 'aws' STS provider 551 - rule: '!has(self.sts) || self.sts.provider != ''aws'' || !has(self.sts.secretRef)' 552 - - message: spec.sts.certSecretRef is not required for the 'aws' STS provider 553 - rule: '!has(self.sts) || self.sts.provider != ''aws'' || !has(self.sts.certSecretRef)' 554 - - message: ServiceAccountName is not supported for the 'generic' Bucket 555 - provider 556 - rule: self.provider != 'generic' || !has(self.serviceAccountName) 557 - - message: cannot set both .spec.secretRef and .spec.serviceAccountName 558 - rule: '!has(self.secretRef) || !has(self.serviceAccountName)' 559 - status: 560 - default: 561 - observedGeneration: -1 562 - description: BucketStatus records the observed state of a Bucket. 563 - properties: 564 - artifact: 565 - description: Artifact represents the last successful Bucket reconciliation. 566 - properties: 567 - digest: 568 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 569 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 570 - type: string 571 - lastUpdateTime: 572 - description: |- 573 - LastUpdateTime is the timestamp corresponding to the last update of the 574 - Artifact. 575 - format: date-time 576 - type: string 577 - metadata: 578 - additionalProperties: 490 + This field is only supported for the `ldap` provider. 491 + properties: 492 + name: 493 + description: Name of the referent. 494 + type: string 495 + required: 496 + - name 497 + type: object 498 + endpoint: 499 + description: |- 500 + Endpoint is the HTTP/S endpoint of the Security Token Service from 501 + where temporary credentials will be fetched. 502 + pattern: ^(http|https)://.*$ 503 + type: string 504 + provider: 505 + description: Provider of the Security Token Service. 506 + enum: 507 + - aws 508 + - ldap 579 509 type: string 580 - description: Metadata holds upstream information such as OCI annotations. 581 - type: object 582 - path: 583 - description: |- 584 - Path is the relative file path of the Artifact. It can be used to locate 585 - the file in the root of the Artifact storage on the local file system of 586 - the controller managing the Source. 587 - type: string 588 - revision: 589 - description: |- 590 - Revision is a human-readable identifier traceable in the origin source 591 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 592 - type: string 593 - size: 594 - description: Size is the number of bytes in the file. 595 - format: int64 596 - type: integer 597 - url: 598 - description: |- 599 - URL is the HTTP address of the Artifact as exposed by the controller 600 - managing the Source. It can be used to retrieve the Artifact for 601 - consumption, e.g. by another controller applying the Artifact contents. 602 - type: string 603 - required: 604 - - digest 605 - - lastUpdateTime 606 - - path 607 - - revision 608 - - url 609 - type: object 610 - conditions: 611 - description: Conditions holds the conditions for the Bucket. 612 - items: 613 - description: Condition contains details for one aspect of the current 614 - state of this API Resource. 510 + secretRef: 511 + description: |- 512 + SecretRef specifies the Secret containing authentication credentials 513 + for the STS endpoint. This Secret must contain the fields `username` 514 + and `password` and is supported only for the `ldap` provider. 515 + properties: 516 + name: 517 + description: Name of the referent. 518 + type: string 519 + required: 520 + - name 521 + type: object 522 + required: 523 + - endpoint 524 + - provider 525 + type: object 526 + suspend: 527 + description: |- 528 + Suspend tells the controller to suspend the reconciliation of this 529 + Bucket. 530 + type: boolean 531 + timeout: 532 + default: 60s 533 + description: Timeout for fetch operations, defaults to 60s. 534 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 535 + type: string 536 + required: 537 + - bucketName 538 + - endpoint 539 + - interval 540 + type: object 541 + x-kubernetes-validations: 542 + - message: 543 + STS configuration is only supported for the 'aws' and 'generic' 544 + Bucket providers 545 + rule: self.provider == 'aws' || self.provider == 'generic' || !has(self.sts) 546 + - message: 547 + "'aws' is the only supported STS provider for the 'aws' 548 + Bucket provider" 549 + rule: 550 + self.provider != 'aws' || !has(self.sts) || self.sts.provider 551 + == 'aws' 552 + - message: 553 + "'ldap' is the only supported STS provider for the 'generic' 554 + Bucket provider" 555 + rule: 556 + self.provider != 'generic' || !has(self.sts) || self.sts.provider 557 + == 'ldap' 558 + - message: spec.sts.secretRef is not required for the 'aws' STS provider 559 + rule: "!has(self.sts) || self.sts.provider != 'aws' || !has(self.sts.secretRef)" 560 + - message: spec.sts.certSecretRef is not required for the 'aws' STS provider 561 + rule: "!has(self.sts) || self.sts.provider != 'aws' || !has(self.sts.certSecretRef)" 562 + - message: 563 + ServiceAccountName is not supported for the 'generic' Bucket 564 + provider 565 + rule: self.provider != 'generic' || !has(self.serviceAccountName) 566 + - message: cannot set both .spec.secretRef and .spec.serviceAccountName 567 + rule: "!has(self.secretRef) || !has(self.serviceAccountName)" 568 + status: 569 + default: 570 + observedGeneration: -1 571 + description: BucketStatus records the observed state of a Bucket. 572 + properties: 573 + artifact: 574 + description: Artifact represents the last successful Bucket reconciliation. 615 575 properties: 616 - lastTransitionTime: 576 + digest: 577 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 578 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 579 + type: string 580 + lastUpdateTime: 617 581 description: |- 618 - lastTransitionTime is the last time the condition transitioned from one status to another. 619 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 582 + LastUpdateTime is the timestamp corresponding to the last update of the 583 + Artifact. 620 584 format: date-time 621 585 type: string 622 - message: 586 + metadata: 587 + additionalProperties: 588 + type: string 589 + description: Metadata holds upstream information such as OCI annotations. 590 + type: object 591 + path: 623 592 description: |- 624 - message is a human readable message indicating details about the transition. 625 - This may be an empty string. 626 - maxLength: 32768 593 + Path is the relative file path of the Artifact. It can be used to locate 594 + the file in the root of the Artifact storage on the local file system of 595 + the controller managing the Source. 627 596 type: string 628 - observedGeneration: 597 + revision: 629 598 description: |- 630 - observedGeneration represents the .metadata.generation that the condition was set based upon. 631 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 632 - with respect to the current state of the instance. 599 + Revision is a human-readable identifier traceable in the origin source 600 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 601 + type: string 602 + size: 603 + description: Size is the number of bytes in the file. 633 604 format: int64 634 - minimum: 0 635 605 type: integer 636 - reason: 606 + url: 637 607 description: |- 638 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 639 - Producers of specific condition types may define expected values and meanings for this field, 640 - and whether the values are considered a guaranteed API. 641 - The value should be a CamelCase string. 642 - This field may not be empty. 643 - maxLength: 1024 644 - minLength: 1 645 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 646 - type: string 647 - status: 648 - description: status of the condition, one of True, False, Unknown. 649 - enum: 650 - - "True" 651 - - "False" 652 - - Unknown 653 - type: string 654 - type: 655 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 656 - maxLength: 316 657 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 608 + URL is the HTTP address of the Artifact as exposed by the controller 609 + managing the Source. It can be used to retrieve the Artifact for 610 + consumption, e.g. by another controller applying the Artifact contents. 658 611 type: string 659 612 required: 660 - - lastTransitionTime 661 - - message 662 - - reason 663 - - status 664 - - type 613 + - digest 614 + - lastUpdateTime 615 + - path 616 + - revision 617 + - url 665 618 type: object 666 - type: array 667 - lastHandledReconcileAt: 668 - description: |- 669 - LastHandledReconcileAt holds the value of the most recent 670 - reconcile request value, so a change of the annotation value 671 - can be detected. 672 - type: string 673 - observedGeneration: 674 - description: ObservedGeneration is the last observed generation of 675 - the Bucket object. 676 - format: int64 677 - type: integer 678 - observedIgnore: 679 - description: |- 680 - ObservedIgnore is the observed exclusion patterns used for constructing 681 - the source artifact. 682 - type: string 683 - url: 684 - description: |- 685 - URL is the dynamic fetch link for the latest Artifact. 686 - It is provided on a "best effort" basis, and using the precise 687 - BucketStatus.Artifact data is recommended. 688 - type: string 689 - type: object 690 - type: object 691 - served: true 692 - storage: true 693 - subresources: 694 - status: {} 619 + conditions: 620 + description: Conditions holds the conditions for the Bucket. 621 + items: 622 + description: 623 + Condition contains details for one aspect of the current 624 + state of this API Resource. 625 + properties: 626 + lastTransitionTime: 627 + description: |- 628 + lastTransitionTime is the last time the condition transitioned from one status to another. 629 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 630 + format: date-time 631 + type: string 632 + message: 633 + description: |- 634 + message is a human readable message indicating details about the transition. 635 + This may be an empty string. 636 + maxLength: 32768 637 + type: string 638 + observedGeneration: 639 + description: |- 640 + observedGeneration represents the .metadata.generation that the condition was set based upon. 641 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 642 + with respect to the current state of the instance. 643 + format: int64 644 + minimum: 0 645 + type: integer 646 + reason: 647 + description: |- 648 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 649 + Producers of specific condition types may define expected values and meanings for this field, 650 + and whether the values are considered a guaranteed API. 651 + The value should be a CamelCase string. 652 + This field may not be empty. 653 + maxLength: 1024 654 + minLength: 1 655 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 656 + type: string 657 + status: 658 + description: status of the condition, one of True, False, Unknown. 659 + enum: 660 + - "True" 661 + - "False" 662 + - Unknown 663 + type: string 664 + type: 665 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 666 + maxLength: 316 667 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 668 + type: string 669 + required: 670 + - lastTransitionTime 671 + - message 672 + - reason 673 + - status 674 + - type 675 + type: object 676 + type: array 677 + lastHandledReconcileAt: 678 + description: |- 679 + LastHandledReconcileAt holds the value of the most recent 680 + reconcile request value, so a change of the annotation value 681 + can be detected. 682 + type: string 683 + observedGeneration: 684 + description: 685 + ObservedGeneration is the last observed generation of 686 + the Bucket object. 687 + format: int64 688 + type: integer 689 + observedIgnore: 690 + description: |- 691 + ObservedIgnore is the observed exclusion patterns used for constructing 692 + the source artifact. 693 + type: string 694 + url: 695 + description: |- 696 + URL is the dynamic fetch link for the latest Artifact. 697 + It is provided on a "best effort" basis, and using the precise 698 + BucketStatus.Artifact data is recommended. 699 + type: string 700 + type: object 701 + type: object 702 + served: true 703 + storage: true 704 + subresources: 705 + status: {} 695 706 --- 696 707 apiVersion: apiextensions.k8s.io/v1 697 708 kind: CustomResourceDefinition ··· 713 724 singular: externalartifact 714 725 scope: Namespaced 715 726 versions: 716 - - additionalPrinterColumns: 717 - - jsonPath: .metadata.creationTimestamp 718 - name: Age 719 - type: date 720 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 721 - name: Ready 722 - type: string 723 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 724 - name: Status 725 - type: string 726 - - jsonPath: .spec.sourceRef.name 727 - name: Source 728 - type: string 729 - name: v1 730 - schema: 731 - openAPIV3Schema: 732 - description: ExternalArtifact is the Schema for the external artifacts API 733 - properties: 734 - apiVersion: 735 - description: |- 736 - APIVersion defines the versioned schema of this representation of an object. 737 - Servers should convert recognized schemas to the latest internal value, and 738 - may reject unrecognized values. 739 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 740 - type: string 741 - kind: 742 - description: |- 743 - Kind is a string value representing the REST resource this object represents. 744 - Servers may infer this from the endpoint the client submits requests to. 745 - Cannot be updated. 746 - In CamelCase. 747 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 748 - type: string 749 - metadata: 750 - type: object 751 - spec: 752 - description: ExternalArtifactSpec defines the desired state of ExternalArtifact 753 - properties: 754 - sourceRef: 755 - description: |- 756 - SourceRef points to the Kubernetes custom resource for 757 - which the artifact is generated. 758 - properties: 759 - apiVersion: 760 - description: API version of the referent, if not specified the 761 - Kubernetes preferred version will be used. 762 - type: string 763 - kind: 764 - description: Kind of the referent. 765 - type: string 766 - name: 767 - description: Name of the referent. 768 - type: string 769 - namespace: 770 - description: Namespace of the referent, when not specified it 771 - acts as LocalObjectReference. 772 - type: string 773 - required: 774 - - kind 775 - - name 776 - type: object 777 - type: object 778 - status: 779 - description: ExternalArtifactStatus defines the observed state of ExternalArtifact 780 - properties: 781 - artifact: 782 - description: Artifact represents the output of an ExternalArtifact 783 - reconciliation. 784 - properties: 785 - digest: 786 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 787 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 788 - type: string 789 - lastUpdateTime: 790 - description: |- 791 - LastUpdateTime is the timestamp corresponding to the last update of the 792 - Artifact. 793 - format: date-time 794 - type: string 795 - metadata: 796 - additionalProperties: 727 + - additionalPrinterColumns: 728 + - jsonPath: .metadata.creationTimestamp 729 + name: Age 730 + type: date 731 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 732 + name: Ready 733 + type: string 734 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 735 + name: Status 736 + type: string 737 + - jsonPath: .spec.sourceRef.name 738 + name: Source 739 + type: string 740 + name: v1 741 + schema: 742 + openAPIV3Schema: 743 + description: ExternalArtifact is the Schema for the external artifacts API 744 + properties: 745 + apiVersion: 746 + description: |- 747 + APIVersion defines the versioned schema of this representation of an object. 748 + Servers should convert recognized schemas to the latest internal value, and 749 + may reject unrecognized values. 750 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 751 + type: string 752 + kind: 753 + description: |- 754 + Kind is a string value representing the REST resource this object represents. 755 + Servers may infer this from the endpoint the client submits requests to. 756 + Cannot be updated. 757 + In CamelCase. 758 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 759 + type: string 760 + metadata: 761 + type: object 762 + spec: 763 + description: ExternalArtifactSpec defines the desired state of ExternalArtifact 764 + properties: 765 + sourceRef: 766 + description: |- 767 + SourceRef points to the Kubernetes custom resource for 768 + which the artifact is generated. 769 + properties: 770 + apiVersion: 771 + description: 772 + API version of the referent, if not specified the 773 + Kubernetes preferred version will be used. 774 + type: string 775 + kind: 776 + description: Kind of the referent. 777 + type: string 778 + name: 779 + description: Name of the referent. 780 + type: string 781 + namespace: 782 + description: 783 + Namespace of the referent, when not specified it 784 + acts as LocalObjectReference. 797 785 type: string 798 - description: Metadata holds upstream information such as OCI annotations. 799 - type: object 800 - path: 801 - description: |- 802 - Path is the relative file path of the Artifact. It can be used to locate 803 - the file in the root of the Artifact storage on the local file system of 804 - the controller managing the Source. 805 - type: string 806 - revision: 807 - description: |- 808 - Revision is a human-readable identifier traceable in the origin source 809 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 810 - type: string 811 - size: 812 - description: Size is the number of bytes in the file. 813 - format: int64 814 - type: integer 815 - url: 816 - description: |- 817 - URL is the HTTP address of the Artifact as exposed by the controller 818 - managing the Source. It can be used to retrieve the Artifact for 819 - consumption, e.g. by another controller applying the Artifact contents. 820 - type: string 821 - required: 822 - - digest 823 - - lastUpdateTime 824 - - path 825 - - revision 826 - - url 827 - type: object 828 - conditions: 829 - description: Conditions holds the conditions for the ExternalArtifact. 830 - items: 831 - description: Condition contains details for one aspect of the current 832 - state of this API Resource. 786 + required: 787 + - kind 788 + - name 789 + type: object 790 + type: object 791 + status: 792 + description: ExternalArtifactStatus defines the observed state of ExternalArtifact 793 + properties: 794 + artifact: 795 + description: 796 + Artifact represents the output of an ExternalArtifact 797 + reconciliation. 833 798 properties: 834 - lastTransitionTime: 799 + digest: 800 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 801 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 802 + type: string 803 + lastUpdateTime: 835 804 description: |- 836 - lastTransitionTime is the last time the condition transitioned from one status to another. 837 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 805 + LastUpdateTime is the timestamp corresponding to the last update of the 806 + Artifact. 838 807 format: date-time 839 808 type: string 840 - message: 809 + metadata: 810 + additionalProperties: 811 + type: string 812 + description: Metadata holds upstream information such as OCI annotations. 813 + type: object 814 + path: 841 815 description: |- 842 - message is a human readable message indicating details about the transition. 843 - This may be an empty string. 844 - maxLength: 32768 816 + Path is the relative file path of the Artifact. It can be used to locate 817 + the file in the root of the Artifact storage on the local file system of 818 + the controller managing the Source. 845 819 type: string 846 - observedGeneration: 820 + revision: 847 821 description: |- 848 - observedGeneration represents the .metadata.generation that the condition was set based upon. 849 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 850 - with respect to the current state of the instance. 822 + Revision is a human-readable identifier traceable in the origin source 823 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 824 + type: string 825 + size: 826 + description: Size is the number of bytes in the file. 851 827 format: int64 852 - minimum: 0 853 828 type: integer 854 - reason: 829 + url: 855 830 description: |- 856 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 857 - Producers of specific condition types may define expected values and meanings for this field, 858 - and whether the values are considered a guaranteed API. 859 - The value should be a CamelCase string. 860 - This field may not be empty. 861 - maxLength: 1024 862 - minLength: 1 863 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 864 - type: string 865 - status: 866 - description: status of the condition, one of True, False, Unknown. 867 - enum: 868 - - "True" 869 - - "False" 870 - - Unknown 871 - type: string 872 - type: 873 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 874 - maxLength: 316 875 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 831 + URL is the HTTP address of the Artifact as exposed by the controller 832 + managing the Source. It can be used to retrieve the Artifact for 833 + consumption, e.g. by another controller applying the Artifact contents. 876 834 type: string 877 835 required: 878 - - lastTransitionTime 879 - - message 880 - - reason 881 - - status 882 - - type 836 + - digest 837 + - lastUpdateTime 838 + - path 839 + - revision 840 + - url 883 841 type: object 884 - type: array 885 - type: object 886 - type: object 887 - served: true 888 - storage: true 889 - subresources: 890 - status: {} 842 + conditions: 843 + description: Conditions holds the conditions for the ExternalArtifact. 844 + items: 845 + description: 846 + Condition contains details for one aspect of the current 847 + state of this API Resource. 848 + properties: 849 + lastTransitionTime: 850 + description: |- 851 + lastTransitionTime is the last time the condition transitioned from one status to another. 852 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 853 + format: date-time 854 + type: string 855 + message: 856 + description: |- 857 + message is a human readable message indicating details about the transition. 858 + This may be an empty string. 859 + maxLength: 32768 860 + type: string 861 + observedGeneration: 862 + description: |- 863 + observedGeneration represents the .metadata.generation that the condition was set based upon. 864 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 865 + with respect to the current state of the instance. 866 + format: int64 867 + minimum: 0 868 + type: integer 869 + reason: 870 + description: |- 871 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 872 + Producers of specific condition types may define expected values and meanings for this field, 873 + and whether the values are considered a guaranteed API. 874 + The value should be a CamelCase string. 875 + This field may not be empty. 876 + maxLength: 1024 877 + minLength: 1 878 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 879 + type: string 880 + status: 881 + description: status of the condition, one of True, False, Unknown. 882 + enum: 883 + - "True" 884 + - "False" 885 + - Unknown 886 + type: string 887 + type: 888 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 889 + maxLength: 316 890 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 891 + type: string 892 + required: 893 + - lastTransitionTime 894 + - message 895 + - reason 896 + - status 897 + - type 898 + type: object 899 + type: array 900 + type: object 901 + type: object 902 + served: true 903 + storage: true 904 + subresources: 905 + status: {} 891 906 --- 892 907 apiVersion: apiextensions.k8s.io/v1 893 908 kind: CustomResourceDefinition ··· 907 922 listKind: GitRepositoryList 908 923 plural: gitrepositories 909 924 shortNames: 910 - - gitrepo 925 + - gitrepo 911 926 singular: gitrepository 912 927 scope: Namespaced 913 928 versions: 914 - - additionalPrinterColumns: 915 - - jsonPath: .spec.url 916 - name: URL 917 - type: string 918 - - jsonPath: .metadata.creationTimestamp 919 - name: Age 920 - type: date 921 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 922 - name: Ready 923 - type: string 924 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 925 - name: Status 926 - type: string 927 - name: v1 928 - schema: 929 - openAPIV3Schema: 930 - description: GitRepository is the Schema for the gitrepositories API. 931 - properties: 932 - apiVersion: 933 - description: |- 934 - APIVersion defines the versioned schema of this representation of an object. 935 - Servers should convert recognized schemas to the latest internal value, and 936 - may reject unrecognized values. 937 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 938 - type: string 939 - kind: 940 - description: |- 941 - Kind is a string value representing the REST resource this object represents. 942 - Servers may infer this from the endpoint the client submits requests to. 943 - Cannot be updated. 944 - In CamelCase. 945 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 946 - type: string 947 - metadata: 948 - type: object 949 - spec: 950 - description: |- 951 - GitRepositorySpec specifies the required configuration to produce an 952 - Artifact for a Git repository. 953 - properties: 954 - ignore: 955 - description: |- 956 - Ignore overrides the set of excluded patterns in the .sourceignore format 957 - (which is the same as .gitignore). If not provided, a default will be used, 958 - consult the documentation for your version to find out what those are. 959 - type: string 960 - include: 961 - description: |- 962 - Include specifies a list of GitRepository resources which Artifacts 963 - should be included in the Artifact produced for this GitRepository. 964 - items: 929 + - additionalPrinterColumns: 930 + - jsonPath: .spec.url 931 + name: URL 932 + type: string 933 + - jsonPath: .metadata.creationTimestamp 934 + name: Age 935 + type: date 936 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 937 + name: Ready 938 + type: string 939 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 940 + name: Status 941 + type: string 942 + name: v1 943 + schema: 944 + openAPIV3Schema: 945 + description: GitRepository is the Schema for the gitrepositories API. 946 + properties: 947 + apiVersion: 948 + description: |- 949 + APIVersion defines the versioned schema of this representation of an object. 950 + Servers should convert recognized schemas to the latest internal value, and 951 + may reject unrecognized values. 952 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 953 + type: string 954 + kind: 955 + description: |- 956 + Kind is a string value representing the REST resource this object represents. 957 + Servers may infer this from the endpoint the client submits requests to. 958 + Cannot be updated. 959 + In CamelCase. 960 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 961 + type: string 962 + metadata: 963 + type: object 964 + spec: 965 + description: |- 966 + GitRepositorySpec specifies the required configuration to produce an 967 + Artifact for a Git repository. 968 + properties: 969 + ignore: 965 970 description: |- 966 - GitRepositoryInclude specifies a local reference to a GitRepository which 967 - Artifact (sub-)contents must be included, and where they should be placed. 968 - properties: 969 - fromPath: 970 - description: |- 971 - FromPath specifies the path to copy contents from, defaults to the root 972 - of the Artifact. 973 - type: string 974 - repository: 975 - description: |- 976 - GitRepositoryRef specifies the GitRepository which Artifact contents 977 - must be included. 978 - properties: 979 - name: 980 - description: Name of the referent. 981 - type: string 982 - required: 983 - - name 984 - type: object 985 - toPath: 986 - description: |- 987 - ToPath specifies the path to copy contents to, defaults to the name of 988 - the GitRepositoryRef. 989 - type: string 990 - required: 991 - - repository 992 - type: object 993 - type: array 994 - interval: 995 - description: |- 996 - Interval at which the GitRepository URL is checked for updates. 997 - This interval is approximate and may be subject to jitter to ensure 998 - efficient use of resources. 999 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1000 - type: string 1001 - provider: 1002 - description: |- 1003 - Provider used for authentication, can be 'azure', 'github', 'generic'. 1004 - When not specified, defaults to 'generic'. 1005 - enum: 1006 - - generic 1007 - - azure 1008 - - github 1009 - type: string 1010 - proxySecretRef: 1011 - description: |- 1012 - ProxySecretRef specifies the Secret containing the proxy configuration 1013 - to use while communicating with the Git server. 1014 - properties: 1015 - name: 1016 - description: Name of the referent. 1017 - type: string 1018 - required: 1019 - - name 1020 - type: object 1021 - recurseSubmodules: 1022 - description: |- 1023 - RecurseSubmodules enables the initialization of all submodules within 1024 - the GitRepository as cloned from the URL, using their default settings. 1025 - type: boolean 1026 - ref: 1027 - description: |- 1028 - Reference specifies the Git reference to resolve and monitor for 1029 - changes, defaults to the 'master' branch. 1030 - properties: 1031 - branch: 1032 - description: Branch to check out, defaults to 'master' if no other 1033 - field is defined. 1034 - type: string 1035 - commit: 1036 - description: |- 1037 - Commit SHA to check out, takes precedence over all reference fields. 1038 - 1039 - This can be combined with Branch to shallow clone the branch, in which 1040 - the commit is expected to exist. 1041 - type: string 1042 - name: 1043 - description: |- 1044 - Name of the reference to check out; takes precedence over Branch, Tag and SemVer. 1045 - 1046 - It must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description 1047 - Examples: "refs/heads/main", "refs/tags/v0.1.0", "refs/pull/420/head", "refs/merge-requests/1/head" 1048 - type: string 1049 - semver: 1050 - description: SemVer tag expression to check out, takes precedence 1051 - over Tag. 1052 - type: string 1053 - tag: 1054 - description: Tag to check out, takes precedence over Branch. 1055 - type: string 1056 - type: object 1057 - secretRef: 1058 - description: |- 1059 - SecretRef specifies the Secret containing authentication credentials for 1060 - the GitRepository. 1061 - For HTTPS repositories the Secret must contain 'username' and 'password' 1062 - fields for basic auth or 'bearerToken' field for token auth. 1063 - For SSH repositories the Secret must contain 'identity' 1064 - and 'known_hosts' fields. 1065 - properties: 1066 - name: 1067 - description: Name of the referent. 1068 - type: string 1069 - required: 1070 - - name 1071 - type: object 1072 - serviceAccountName: 1073 - description: |- 1074 - ServiceAccountName is the name of the Kubernetes ServiceAccount used to 1075 - authenticate to the GitRepository. This field is only supported for 'azure' provider. 1076 - type: string 1077 - sparseCheckout: 1078 - description: |- 1079 - SparseCheckout specifies a list of directories to checkout when cloning 1080 - the repository. If specified, only these directories are included in the 1081 - Artifact produced for this GitRepository. 1082 - items: 971 + Ignore overrides the set of excluded patterns in the .sourceignore format 972 + (which is the same as .gitignore). If not provided, a default will be used, 973 + consult the documentation for your version to find out what those are. 1083 974 type: string 1084 - type: array 1085 - suspend: 1086 - description: |- 1087 - Suspend tells the controller to suspend the reconciliation of this 1088 - GitRepository. 1089 - type: boolean 1090 - timeout: 1091 - default: 60s 1092 - description: Timeout for Git operations like cloning, defaults to 1093 - 60s. 1094 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 1095 - type: string 1096 - url: 1097 - description: URL specifies the Git repository URL, it can be an HTTP/S 1098 - or SSH address. 1099 - pattern: ^(http|https|ssh)://.*$ 1100 - type: string 1101 - verify: 1102 - description: |- 1103 - Verification specifies the configuration to verify the Git commit 1104 - signature(s). 1105 - properties: 1106 - mode: 1107 - default: HEAD 975 + include: 976 + description: |- 977 + Include specifies a list of GitRepository resources which Artifacts 978 + should be included in the Artifact produced for this GitRepository. 979 + items: 1108 980 description: |- 1109 - Mode specifies which Git object(s) should be verified. 1110 - 1111 - The variants "head" and "HEAD" both imply the same thing, i.e. verify 1112 - the commit that the HEAD of the Git repository points to. The variant 1113 - "head" solely exists to ensure backwards compatibility. 1114 - enum: 1115 - - head 1116 - - HEAD 1117 - - Tag 1118 - - TagAndHEAD 1119 - type: string 1120 - secretRef: 1121 - description: |- 1122 - SecretRef specifies the Secret containing the public keys of trusted Git 1123 - authors. 981 + GitRepositoryInclude specifies a local reference to a GitRepository which 982 + Artifact (sub-)contents must be included, and where they should be placed. 1124 983 properties: 1125 - name: 1126 - description: Name of the referent. 984 + fromPath: 985 + description: |- 986 + FromPath specifies the path to copy contents from, defaults to the root 987 + of the Artifact. 988 + type: string 989 + repository: 990 + description: |- 991 + GitRepositoryRef specifies the GitRepository which Artifact contents 992 + must be included. 993 + properties: 994 + name: 995 + description: Name of the referent. 996 + type: string 997 + required: 998 + - name 999 + type: object 1000 + toPath: 1001 + description: |- 1002 + ToPath specifies the path to copy contents to, defaults to the name of 1003 + the GitRepositoryRef. 1127 1004 type: string 1128 1005 required: 1129 - - name 1006 + - repository 1130 1007 type: object 1131 - required: 1132 - - secretRef 1133 - type: object 1134 - required: 1135 - - interval 1136 - - url 1137 - type: object 1138 - x-kubernetes-validations: 1139 - - message: serviceAccountName can only be set when provider is 'azure' 1140 - rule: '!has(self.serviceAccountName) || (has(self.provider) && self.provider 1141 - == ''azure'')' 1142 - status: 1143 - default: 1144 - observedGeneration: -1 1145 - description: GitRepositoryStatus records the observed state of a Git repository. 1146 - properties: 1147 - artifact: 1148 - description: Artifact represents the last successful GitRepository 1149 - reconciliation. 1150 - properties: 1151 - digest: 1152 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1153 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1154 - type: string 1155 - lastUpdateTime: 1156 - description: |- 1157 - LastUpdateTime is the timestamp corresponding to the last update of the 1158 - Artifact. 1159 - format: date-time 1160 - type: string 1161 - metadata: 1162 - additionalProperties: 1008 + type: array 1009 + interval: 1010 + description: |- 1011 + Interval at which the GitRepository URL is checked for updates. 1012 + This interval is approximate and may be subject to jitter to ensure 1013 + efficient use of resources. 1014 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1015 + type: string 1016 + provider: 1017 + description: |- 1018 + Provider used for authentication, can be 'azure', 'github', 'generic'. 1019 + When not specified, defaults to 'generic'. 1020 + enum: 1021 + - generic 1022 + - azure 1023 + - github 1024 + type: string 1025 + proxySecretRef: 1026 + description: |- 1027 + ProxySecretRef specifies the Secret containing the proxy configuration 1028 + to use while communicating with the Git server. 1029 + properties: 1030 + name: 1031 + description: Name of the referent. 1163 1032 type: string 1164 - description: Metadata holds upstream information such as OCI annotations. 1165 - type: object 1166 - path: 1167 - description: |- 1168 - Path is the relative file path of the Artifact. It can be used to locate 1169 - the file in the root of the Artifact storage on the local file system of 1170 - the controller managing the Source. 1171 - type: string 1172 - revision: 1173 - description: |- 1174 - Revision is a human-readable identifier traceable in the origin source 1175 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1176 - type: string 1177 - size: 1178 - description: Size is the number of bytes in the file. 1179 - format: int64 1180 - type: integer 1181 - url: 1182 - description: |- 1183 - URL is the HTTP address of the Artifact as exposed by the controller 1184 - managing the Source. It can be used to retrieve the Artifact for 1185 - consumption, e.g. by another controller applying the Artifact contents. 1186 - type: string 1187 - required: 1188 - - digest 1189 - - lastUpdateTime 1190 - - path 1191 - - revision 1192 - - url 1193 - type: object 1194 - conditions: 1195 - description: Conditions holds the conditions for the GitRepository. 1196 - items: 1197 - description: Condition contains details for one aspect of the current 1198 - state of this API Resource. 1033 + required: 1034 + - name 1035 + type: object 1036 + recurseSubmodules: 1037 + description: |- 1038 + RecurseSubmodules enables the initialization of all submodules within 1039 + the GitRepository as cloned from the URL, using their default settings. 1040 + type: boolean 1041 + ref: 1042 + description: |- 1043 + Reference specifies the Git reference to resolve and monitor for 1044 + changes, defaults to the 'master' branch. 1199 1045 properties: 1200 - lastTransitionTime: 1046 + branch: 1047 + description: 1048 + Branch to check out, defaults to 'master' if no other 1049 + field is defined. 1050 + type: string 1051 + commit: 1201 1052 description: |- 1202 - lastTransitionTime is the last time the condition transitioned from one status to another. 1203 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 1204 - format: date-time 1053 + Commit SHA to check out, takes precedence over all reference fields. 1054 + 1055 + This can be combined with Branch to shallow clone the branch, in which 1056 + the commit is expected to exist. 1205 1057 type: string 1206 - message: 1058 + name: 1207 1059 description: |- 1208 - message is a human readable message indicating details about the transition. 1209 - This may be an empty string. 1210 - maxLength: 32768 1060 + Name of the reference to check out; takes precedence over Branch, Tag and SemVer. 1061 + 1062 + It must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description 1063 + Examples: "refs/heads/main", "refs/tags/v0.1.0", "refs/pull/420/head", "refs/merge-requests/1/head" 1064 + type: string 1065 + semver: 1066 + description: 1067 + SemVer tag expression to check out, takes precedence 1068 + over Tag. 1069 + type: string 1070 + tag: 1071 + description: Tag to check out, takes precedence over Branch. 1072 + type: string 1073 + type: object 1074 + secretRef: 1075 + description: |- 1076 + SecretRef specifies the Secret containing authentication credentials for 1077 + the GitRepository. 1078 + For HTTPS repositories the Secret must contain 'username' and 'password' 1079 + fields for basic auth or 'bearerToken' field for token auth. 1080 + For SSH repositories the Secret must contain 'identity' 1081 + and 'known_hosts' fields. 1082 + properties: 1083 + name: 1084 + description: Name of the referent. 1211 1085 type: string 1212 - observedGeneration: 1213 - description: |- 1214 - observedGeneration represents the .metadata.generation that the condition was set based upon. 1215 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 1216 - with respect to the current state of the instance. 1217 - format: int64 1218 - minimum: 0 1219 - type: integer 1220 - reason: 1086 + required: 1087 + - name 1088 + type: object 1089 + serviceAccountName: 1090 + description: |- 1091 + ServiceAccountName is the name of the Kubernetes ServiceAccount used to 1092 + authenticate to the GitRepository. This field is only supported for 'azure' provider. 1093 + type: string 1094 + sparseCheckout: 1095 + description: |- 1096 + SparseCheckout specifies a list of directories to checkout when cloning 1097 + the repository. If specified, only these directories are included in the 1098 + Artifact produced for this GitRepository. 1099 + items: 1100 + type: string 1101 + type: array 1102 + suspend: 1103 + description: |- 1104 + Suspend tells the controller to suspend the reconciliation of this 1105 + GitRepository. 1106 + type: boolean 1107 + timeout: 1108 + default: 60s 1109 + description: 1110 + Timeout for Git operations like cloning, defaults to 1111 + 60s. 1112 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 1113 + type: string 1114 + url: 1115 + description: 1116 + URL specifies the Git repository URL, it can be an HTTP/S 1117 + or SSH address. 1118 + pattern: ^(http|https|ssh)://.*$ 1119 + type: string 1120 + verify: 1121 + description: |- 1122 + Verification specifies the configuration to verify the Git commit 1123 + signature(s). 1124 + properties: 1125 + mode: 1126 + default: HEAD 1221 1127 description: |- 1222 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 1223 - Producers of specific condition types may define expected values and meanings for this field, 1224 - and whether the values are considered a guaranteed API. 1225 - The value should be a CamelCase string. 1226 - This field may not be empty. 1227 - maxLength: 1024 1228 - minLength: 1 1229 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1230 - type: string 1231 - status: 1232 - description: status of the condition, one of True, False, Unknown. 1128 + Mode specifies which Git object(s) should be verified. 1129 + 1130 + The variants "head" and "HEAD" both imply the same thing, i.e. verify 1131 + the commit that the HEAD of the Git repository points to. The variant 1132 + "head" solely exists to ensure backwards compatibility. 1233 1133 enum: 1234 - - "True" 1235 - - "False" 1236 - - Unknown 1134 + - head 1135 + - HEAD 1136 + - Tag 1137 + - TagAndHEAD 1237 1138 type: string 1238 - type: 1239 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 1240 - maxLength: 316 1241 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1242 - type: string 1139 + secretRef: 1140 + description: |- 1141 + SecretRef specifies the Secret containing the public keys of trusted Git 1142 + authors. 1143 + properties: 1144 + name: 1145 + description: Name of the referent. 1146 + type: string 1147 + required: 1148 + - name 1149 + type: object 1243 1150 required: 1244 - - lastTransitionTime 1245 - - message 1246 - - reason 1247 - - status 1248 - - type 1151 + - secretRef 1249 1152 type: object 1250 - type: array 1251 - includedArtifacts: 1252 - description: |- 1253 - IncludedArtifacts contains a list of the last successfully included 1254 - Artifacts as instructed by GitRepositorySpec.Include. 1255 - items: 1256 - description: Artifact represents the output of a Source reconciliation. 1153 + required: 1154 + - interval 1155 + - url 1156 + type: object 1157 + x-kubernetes-validations: 1158 + - message: serviceAccountName can only be set when provider is 'azure' 1159 + rule: 1160 + "!has(self.serviceAccountName) || (has(self.provider) && self.provider 1161 + == 'azure')" 1162 + status: 1163 + default: 1164 + observedGeneration: -1 1165 + description: GitRepositoryStatus records the observed state of a Git repository. 1166 + properties: 1167 + artifact: 1168 + description: 1169 + Artifact represents the last successful GitRepository 1170 + reconciliation. 1257 1171 properties: 1258 1172 digest: 1259 - description: Digest is the digest of the file in the form of 1260 - '<algorithm>:<checksum>'. 1173 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1261 1174 pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1262 1175 type: string 1263 1176 lastUpdateTime: ··· 1269 1182 metadata: 1270 1183 additionalProperties: 1271 1184 type: string 1272 - description: Metadata holds upstream information such as OCI 1273 - annotations. 1185 + description: Metadata holds upstream information such as OCI annotations. 1274 1186 type: object 1275 1187 path: 1276 1188 description: |- ··· 1294 1206 consumption, e.g. by another controller applying the Artifact contents. 1295 1207 type: string 1296 1208 required: 1297 - - digest 1298 - - lastUpdateTime 1299 - - path 1300 - - revision 1301 - - url 1209 + - digest 1210 + - lastUpdateTime 1211 + - path 1212 + - revision 1213 + - url 1302 1214 type: object 1303 - type: array 1304 - lastHandledReconcileAt: 1305 - description: |- 1306 - LastHandledReconcileAt holds the value of the most recent 1307 - reconcile request value, so a change of the annotation value 1308 - can be detected. 1309 - type: string 1310 - observedGeneration: 1311 - description: |- 1312 - ObservedGeneration is the last observed generation of the GitRepository 1313 - object. 1314 - format: int64 1315 - type: integer 1316 - observedIgnore: 1317 - description: |- 1318 - ObservedIgnore is the observed exclusion patterns used for constructing 1319 - the source artifact. 1320 - type: string 1321 - observedInclude: 1322 - description: |- 1323 - ObservedInclude is the observed list of GitRepository resources used to 1324 - produce the current Artifact. 1325 - items: 1215 + conditions: 1216 + description: Conditions holds the conditions for the GitRepository. 1217 + items: 1218 + description: 1219 + Condition contains details for one aspect of the current 1220 + state of this API Resource. 1221 + properties: 1222 + lastTransitionTime: 1223 + description: |- 1224 + lastTransitionTime is the last time the condition transitioned from one status to another. 1225 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 1226 + format: date-time 1227 + type: string 1228 + message: 1229 + description: |- 1230 + message is a human readable message indicating details about the transition. 1231 + This may be an empty string. 1232 + maxLength: 32768 1233 + type: string 1234 + observedGeneration: 1235 + description: |- 1236 + observedGeneration represents the .metadata.generation that the condition was set based upon. 1237 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 1238 + with respect to the current state of the instance. 1239 + format: int64 1240 + minimum: 0 1241 + type: integer 1242 + reason: 1243 + description: |- 1244 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 1245 + Producers of specific condition types may define expected values and meanings for this field, 1246 + and whether the values are considered a guaranteed API. 1247 + The value should be a CamelCase string. 1248 + This field may not be empty. 1249 + maxLength: 1024 1250 + minLength: 1 1251 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1252 + type: string 1253 + status: 1254 + description: status of the condition, one of True, False, Unknown. 1255 + enum: 1256 + - "True" 1257 + - "False" 1258 + - Unknown 1259 + type: string 1260 + type: 1261 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 1262 + maxLength: 316 1263 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1264 + type: string 1265 + required: 1266 + - lastTransitionTime 1267 + - message 1268 + - reason 1269 + - status 1270 + - type 1271 + type: object 1272 + type: array 1273 + includedArtifacts: 1326 1274 description: |- 1327 - GitRepositoryInclude specifies a local reference to a GitRepository which 1328 - Artifact (sub-)contents must be included, and where they should be placed. 1329 - properties: 1330 - fromPath: 1331 - description: |- 1332 - FromPath specifies the path to copy contents from, defaults to the root 1333 - of the Artifact. 1334 - type: string 1335 - repository: 1336 - description: |- 1337 - GitRepositoryRef specifies the GitRepository which Artifact contents 1338 - must be included. 1339 - properties: 1340 - name: 1341 - description: Name of the referent. 1275 + IncludedArtifacts contains a list of the last successfully included 1276 + Artifacts as instructed by GitRepositorySpec.Include. 1277 + items: 1278 + description: Artifact represents the output of a Source reconciliation. 1279 + properties: 1280 + digest: 1281 + description: 1282 + Digest is the digest of the file in the form of 1283 + '<algorithm>:<checksum>'. 1284 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1285 + type: string 1286 + lastUpdateTime: 1287 + description: |- 1288 + LastUpdateTime is the timestamp corresponding to the last update of the 1289 + Artifact. 1290 + format: date-time 1291 + type: string 1292 + metadata: 1293 + additionalProperties: 1342 1294 type: string 1343 - required: 1344 - - name 1345 - type: object 1346 - toPath: 1347 - description: |- 1348 - ToPath specifies the path to copy contents to, defaults to the name of 1349 - the GitRepositoryRef. 1350 - type: string 1351 - required: 1352 - - repository 1353 - type: object 1354 - type: array 1355 - observedRecurseSubmodules: 1356 - description: |- 1357 - ObservedRecurseSubmodules is the observed resource submodules 1358 - configuration used to produce the current Artifact. 1359 - type: boolean 1360 - observedSparseCheckout: 1361 - description: |- 1362 - ObservedSparseCheckout is the observed list of directories used to 1363 - produce the current Artifact. 1364 - items: 1295 + description: 1296 + Metadata holds upstream information such as OCI 1297 + annotations. 1298 + type: object 1299 + path: 1300 + description: |- 1301 + Path is the relative file path of the Artifact. It can be used to locate 1302 + the file in the root of the Artifact storage on the local file system of 1303 + the controller managing the Source. 1304 + type: string 1305 + revision: 1306 + description: |- 1307 + Revision is a human-readable identifier traceable in the origin source 1308 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1309 + type: string 1310 + size: 1311 + description: Size is the number of bytes in the file. 1312 + format: int64 1313 + type: integer 1314 + url: 1315 + description: |- 1316 + URL is the HTTP address of the Artifact as exposed by the controller 1317 + managing the Source. It can be used to retrieve the Artifact for 1318 + consumption, e.g. by another controller applying the Artifact contents. 1319 + type: string 1320 + required: 1321 + - digest 1322 + - lastUpdateTime 1323 + - path 1324 + - revision 1325 + - url 1326 + type: object 1327 + type: array 1328 + lastHandledReconcileAt: 1329 + description: |- 1330 + LastHandledReconcileAt holds the value of the most recent 1331 + reconcile request value, so a change of the annotation value 1332 + can be detected. 1333 + type: string 1334 + observedGeneration: 1335 + description: |- 1336 + ObservedGeneration is the last observed generation of the GitRepository 1337 + object. 1338 + format: int64 1339 + type: integer 1340 + observedIgnore: 1341 + description: |- 1342 + ObservedIgnore is the observed exclusion patterns used for constructing 1343 + the source artifact. 1344 + type: string 1345 + observedInclude: 1346 + description: |- 1347 + ObservedInclude is the observed list of GitRepository resources used to 1348 + produce the current Artifact. 1349 + items: 1350 + description: |- 1351 + GitRepositoryInclude specifies a local reference to a GitRepository which 1352 + Artifact (sub-)contents must be included, and where they should be placed. 1353 + properties: 1354 + fromPath: 1355 + description: |- 1356 + FromPath specifies the path to copy contents from, defaults to the root 1357 + of the Artifact. 1358 + type: string 1359 + repository: 1360 + description: |- 1361 + GitRepositoryRef specifies the GitRepository which Artifact contents 1362 + must be included. 1363 + properties: 1364 + name: 1365 + description: Name of the referent. 1366 + type: string 1367 + required: 1368 + - name 1369 + type: object 1370 + toPath: 1371 + description: |- 1372 + ToPath specifies the path to copy contents to, defaults to the name of 1373 + the GitRepositoryRef. 1374 + type: string 1375 + required: 1376 + - repository 1377 + type: object 1378 + type: array 1379 + observedRecurseSubmodules: 1380 + description: |- 1381 + ObservedRecurseSubmodules is the observed resource submodules 1382 + configuration used to produce the current Artifact. 1383 + type: boolean 1384 + observedSparseCheckout: 1385 + description: |- 1386 + ObservedSparseCheckout is the observed list of directories used to 1387 + produce the current Artifact. 1388 + items: 1389 + type: string 1390 + type: array 1391 + sourceVerificationMode: 1392 + description: |- 1393 + SourceVerificationMode is the last used verification mode indicating 1394 + which Git object(s) have been verified. 1365 1395 type: string 1366 - type: array 1367 - sourceVerificationMode: 1368 - description: |- 1369 - SourceVerificationMode is the last used verification mode indicating 1370 - which Git object(s) have been verified. 1371 - type: string 1372 - type: object 1373 - type: object 1374 - served: true 1375 - storage: true 1376 - subresources: 1377 - status: {} 1396 + type: object 1397 + type: object 1398 + served: true 1399 + storage: true 1400 + subresources: 1401 + status: {} 1378 1402 --- 1379 1403 apiVersion: apiextensions.k8s.io/v1 1380 1404 kind: CustomResourceDefinition ··· 1394 1418 listKind: HelmChartList 1395 1419 plural: helmcharts 1396 1420 shortNames: 1397 - - hc 1421 + - hc 1398 1422 singular: helmchart 1399 1423 scope: Namespaced 1400 1424 versions: 1401 - - additionalPrinterColumns: 1402 - - jsonPath: .spec.chart 1403 - name: Chart 1404 - type: string 1405 - - jsonPath: .spec.version 1406 - name: Version 1407 - type: string 1408 - - jsonPath: .spec.sourceRef.kind 1409 - name: Source Kind 1410 - type: string 1411 - - jsonPath: .spec.sourceRef.name 1412 - name: Source Name 1413 - type: string 1414 - - jsonPath: .metadata.creationTimestamp 1415 - name: Age 1416 - type: date 1417 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 1418 - name: Ready 1419 - type: string 1420 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 1421 - name: Status 1422 - type: string 1423 - name: v1 1424 - schema: 1425 - openAPIV3Schema: 1426 - description: HelmChart is the Schema for the helmcharts API. 1427 - properties: 1428 - apiVersion: 1429 - description: |- 1430 - APIVersion defines the versioned schema of this representation of an object. 1431 - Servers should convert recognized schemas to the latest internal value, and 1432 - may reject unrecognized values. 1433 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 1434 - type: string 1435 - kind: 1436 - description: |- 1437 - Kind is a string value representing the REST resource this object represents. 1438 - Servers may infer this from the endpoint the client submits requests to. 1439 - Cannot be updated. 1440 - In CamelCase. 1441 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1442 - type: string 1443 - metadata: 1444 - type: object 1445 - spec: 1446 - description: HelmChartSpec specifies the desired state of a Helm chart. 1447 - properties: 1448 - chart: 1449 - description: |- 1450 - Chart is the name or path the Helm chart is available at in the 1451 - SourceRef. 1452 - type: string 1453 - ignoreMissingValuesFiles: 1454 - description: |- 1455 - IgnoreMissingValuesFiles controls whether to silently ignore missing values 1456 - files rather than failing. 1457 - type: boolean 1458 - interval: 1459 - description: |- 1460 - Interval at which the HelmChart SourceRef is checked for updates. 1461 - This interval is approximate and may be subject to jitter to ensure 1462 - efficient use of resources. 1463 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1464 - type: string 1465 - reconcileStrategy: 1466 - default: ChartVersion 1467 - description: |- 1468 - ReconcileStrategy determines what enables the creation of a new artifact. 1469 - Valid values are ('ChartVersion', 'Revision'). 1470 - See the documentation of the values for an explanation on their behavior. 1471 - Defaults to ChartVersion when omitted. 1472 - enum: 1473 - - ChartVersion 1474 - - Revision 1475 - type: string 1476 - sourceRef: 1477 - description: SourceRef is the reference to the Source the chart is 1478 - available at. 1479 - properties: 1480 - apiVersion: 1481 - description: APIVersion of the referent. 1482 - type: string 1483 - kind: 1484 - description: |- 1485 - Kind of the referent, valid values are ('HelmRepository', 'GitRepository', 1486 - 'Bucket'). 1487 - enum: 1488 - - HelmRepository 1489 - - GitRepository 1490 - - Bucket 1491 - type: string 1492 - name: 1493 - description: Name of the referent. 1494 - type: string 1495 - required: 1496 - - kind 1497 - - name 1498 - type: object 1499 - suspend: 1500 - description: |- 1501 - Suspend tells the controller to suspend the reconciliation of this 1502 - source. 1503 - type: boolean 1504 - valuesFiles: 1505 - description: |- 1506 - ValuesFiles is an alternative list of values files to use as the chart 1507 - values (values.yaml is not included by default), expected to be a 1508 - relative path in the SourceRef. 1509 - Values files are merged in the order of this list with the last file 1510 - overriding the first. Ignored when omitted. 1511 - items: 1425 + - additionalPrinterColumns: 1426 + - jsonPath: .spec.chart 1427 + name: Chart 1428 + type: string 1429 + - jsonPath: .spec.version 1430 + name: Version 1431 + type: string 1432 + - jsonPath: .spec.sourceRef.kind 1433 + name: Source Kind 1434 + type: string 1435 + - jsonPath: .spec.sourceRef.name 1436 + name: Source Name 1437 + type: string 1438 + - jsonPath: .metadata.creationTimestamp 1439 + name: Age 1440 + type: date 1441 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 1442 + name: Ready 1443 + type: string 1444 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 1445 + name: Status 1446 + type: string 1447 + name: v1 1448 + schema: 1449 + openAPIV3Schema: 1450 + description: HelmChart is the Schema for the helmcharts API. 1451 + properties: 1452 + apiVersion: 1453 + description: |- 1454 + APIVersion defines the versioned schema of this representation of an object. 1455 + Servers should convert recognized schemas to the latest internal value, and 1456 + may reject unrecognized values. 1457 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 1458 + type: string 1459 + kind: 1460 + description: |- 1461 + Kind is a string value representing the REST resource this object represents. 1462 + Servers may infer this from the endpoint the client submits requests to. 1463 + Cannot be updated. 1464 + In CamelCase. 1465 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1466 + type: string 1467 + metadata: 1468 + type: object 1469 + spec: 1470 + description: HelmChartSpec specifies the desired state of a Helm chart. 1471 + properties: 1472 + chart: 1473 + description: |- 1474 + Chart is the name or path the Helm chart is available at in the 1475 + SourceRef. 1476 + type: string 1477 + ignoreMissingValuesFiles: 1478 + description: |- 1479 + IgnoreMissingValuesFiles controls whether to silently ignore missing values 1480 + files rather than failing. 1481 + type: boolean 1482 + interval: 1483 + description: |- 1484 + Interval at which the HelmChart SourceRef is checked for updates. 1485 + This interval is approximate and may be subject to jitter to ensure 1486 + efficient use of resources. 1487 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1512 1488 type: string 1513 - type: array 1514 - verify: 1515 - description: |- 1516 - Verify contains the secret name containing the trusted public keys 1517 - used to verify the signature and specifies which provider to use to check 1518 - whether OCI image is authentic. 1519 - This field is only supported when using HelmRepository source with spec.type 'oci'. 1520 - Chart dependencies, which are not bundled in the umbrella chart artifact, are not verified. 1521 - properties: 1522 - matchOIDCIdentity: 1523 - description: |- 1524 - MatchOIDCIdentity specifies the identity matching criteria to use 1525 - while verifying an OCI artifact which was signed using Cosign keyless 1526 - signing. The artifact's identity is deemed to be verified if any of the 1527 - specified matchers match against the identity. 1528 - items: 1489 + reconcileStrategy: 1490 + default: ChartVersion 1491 + description: |- 1492 + ReconcileStrategy determines what enables the creation of a new artifact. 1493 + Valid values are ('ChartVersion', 'Revision'). 1494 + See the documentation of the values for an explanation on their behavior. 1495 + Defaults to ChartVersion when omitted. 1496 + enum: 1497 + - ChartVersion 1498 + - Revision 1499 + type: string 1500 + sourceRef: 1501 + description: 1502 + SourceRef is the reference to the Source the chart is 1503 + available at. 1504 + properties: 1505 + apiVersion: 1506 + description: APIVersion of the referent. 1507 + type: string 1508 + kind: 1529 1509 description: |- 1530 - OIDCIdentityMatch specifies options for verifying the certificate identity, 1531 - i.e. the issuer and the subject of the certificate. 1510 + Kind of the referent, valid values are ('HelmRepository', 'GitRepository', 1511 + 'Bucket'). 1512 + enum: 1513 + - HelmRepository 1514 + - GitRepository 1515 + - Bucket 1516 + type: string 1517 + name: 1518 + description: Name of the referent. 1519 + type: string 1520 + required: 1521 + - kind 1522 + - name 1523 + type: object 1524 + suspend: 1525 + description: |- 1526 + Suspend tells the controller to suspend the reconciliation of this 1527 + source. 1528 + type: boolean 1529 + valuesFiles: 1530 + description: |- 1531 + ValuesFiles is an alternative list of values files to use as the chart 1532 + values (values.yaml is not included by default), expected to be a 1533 + relative path in the SourceRef. 1534 + Values files are merged in the order of this list with the last file 1535 + overriding the first. Ignored when omitted. 1536 + items: 1537 + type: string 1538 + type: array 1539 + verify: 1540 + description: |- 1541 + Verify contains the secret name containing the trusted public keys 1542 + used to verify the signature and specifies which provider to use to check 1543 + whether OCI image is authentic. 1544 + This field is only supported when using HelmRepository source with spec.type 'oci'. 1545 + Chart dependencies, which are not bundled in the umbrella chart artifact, are not verified. 1546 + properties: 1547 + matchOIDCIdentity: 1548 + description: |- 1549 + MatchOIDCIdentity specifies the identity matching criteria to use 1550 + while verifying an OCI artifact which was signed using Cosign keyless 1551 + signing. The artifact's identity is deemed to be verified if any of the 1552 + specified matchers match against the identity. 1553 + items: 1554 + description: |- 1555 + OIDCIdentityMatch specifies options for verifying the certificate identity, 1556 + i.e. the issuer and the subject of the certificate. 1557 + properties: 1558 + issuer: 1559 + description: |- 1560 + Issuer specifies the regex pattern to match against to verify 1561 + the OIDC issuer in the Fulcio certificate. The pattern must be a 1562 + valid Go regular expression. 1563 + type: string 1564 + subject: 1565 + description: |- 1566 + Subject specifies the regex pattern to match against to verify 1567 + the identity subject in the Fulcio certificate. The pattern must 1568 + be a valid Go regular expression. 1569 + type: string 1570 + required: 1571 + - issuer 1572 + - subject 1573 + type: object 1574 + type: array 1575 + provider: 1576 + default: cosign 1577 + description: 1578 + Provider specifies the technology used to sign the 1579 + OCI Artifact. 1580 + enum: 1581 + - cosign 1582 + - notation 1583 + type: string 1584 + secretRef: 1585 + description: |- 1586 + SecretRef specifies the Kubernetes Secret containing the 1587 + trusted public keys. 1532 1588 properties: 1533 - issuer: 1534 - description: |- 1535 - Issuer specifies the regex pattern to match against to verify 1536 - the OIDC issuer in the Fulcio certificate. The pattern must be a 1537 - valid Go regular expression. 1538 - type: string 1539 - subject: 1540 - description: |- 1541 - Subject specifies the regex pattern to match against to verify 1542 - the identity subject in the Fulcio certificate. The pattern must 1543 - be a valid Go regular expression. 1589 + name: 1590 + description: Name of the referent. 1544 1591 type: string 1545 1592 required: 1546 - - issuer 1547 - - subject 1593 + - name 1548 1594 type: object 1549 - type: array 1550 - provider: 1551 - default: cosign 1552 - description: Provider specifies the technology used to sign the 1553 - OCI Artifact. 1554 - enum: 1555 - - cosign 1556 - - notation 1557 - type: string 1558 - secretRef: 1559 - description: |- 1560 - SecretRef specifies the Kubernetes Secret containing the 1561 - trusted public keys. 1562 - properties: 1563 - name: 1564 - description: Name of the referent. 1565 - type: string 1566 - required: 1567 - - name 1568 - type: object 1569 - required: 1570 - - provider 1571 - type: object 1572 - version: 1573 - default: '*' 1574 - description: |- 1575 - Version is the chart version semver expression, ignored for charts from 1576 - GitRepository and Bucket sources. Defaults to latest when omitted. 1577 - type: string 1578 - required: 1579 - - chart 1580 - - interval 1581 - - sourceRef 1582 - type: object 1583 - x-kubernetes-validations: 1584 - - message: spec.verify is only supported when spec.sourceRef.kind is 'HelmRepository' 1585 - rule: '!has(self.verify) || self.sourceRef.kind == ''HelmRepository''' 1586 - status: 1587 - default: 1588 - observedGeneration: -1 1589 - description: HelmChartStatus records the observed state of the HelmChart. 1590 - properties: 1591 - artifact: 1592 - description: Artifact represents the output of the last successful 1593 - reconciliation. 1594 - properties: 1595 - digest: 1596 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1597 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1598 - type: string 1599 - lastUpdateTime: 1600 - description: |- 1601 - LastUpdateTime is the timestamp corresponding to the last update of the 1602 - Artifact. 1603 - format: date-time 1604 - type: string 1605 - metadata: 1606 - additionalProperties: 1595 + required: 1596 + - provider 1597 + type: object 1598 + version: 1599 + default: "*" 1600 + description: |- 1601 + Version is the chart version semver expression, ignored for charts from 1602 + GitRepository and Bucket sources. Defaults to latest when omitted. 1603 + type: string 1604 + required: 1605 + - chart 1606 + - interval 1607 + - sourceRef 1608 + type: object 1609 + x-kubernetes-validations: 1610 + - message: spec.verify is only supported when spec.sourceRef.kind is 'HelmRepository' 1611 + rule: "!has(self.verify) || self.sourceRef.kind == 'HelmRepository'" 1612 + status: 1613 + default: 1614 + observedGeneration: -1 1615 + description: HelmChartStatus records the observed state of the HelmChart. 1616 + properties: 1617 + artifact: 1618 + description: 1619 + Artifact represents the output of the last successful 1620 + reconciliation. 1621 + properties: 1622 + digest: 1623 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1624 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1607 1625 type: string 1608 - description: Metadata holds upstream information such as OCI annotations. 1609 - type: object 1610 - path: 1611 - description: |- 1612 - Path is the relative file path of the Artifact. It can be used to locate 1613 - the file in the root of the Artifact storage on the local file system of 1614 - the controller managing the Source. 1615 - type: string 1616 - revision: 1617 - description: |- 1618 - Revision is a human-readable identifier traceable in the origin source 1619 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1620 - type: string 1621 - size: 1622 - description: Size is the number of bytes in the file. 1623 - format: int64 1624 - type: integer 1625 - url: 1626 - description: |- 1627 - URL is the HTTP address of the Artifact as exposed by the controller 1628 - managing the Source. It can be used to retrieve the Artifact for 1629 - consumption, e.g. by another controller applying the Artifact contents. 1630 - type: string 1631 - required: 1632 - - digest 1633 - - lastUpdateTime 1634 - - path 1635 - - revision 1636 - - url 1637 - type: object 1638 - conditions: 1639 - description: Conditions holds the conditions for the HelmChart. 1640 - items: 1641 - description: Condition contains details for one aspect of the current 1642 - state of this API Resource. 1643 - properties: 1644 - lastTransitionTime: 1626 + lastUpdateTime: 1645 1627 description: |- 1646 - lastTransitionTime is the last time the condition transitioned from one status to another. 1647 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 1628 + LastUpdateTime is the timestamp corresponding to the last update of the 1629 + Artifact. 1648 1630 format: date-time 1649 1631 type: string 1650 - message: 1632 + metadata: 1633 + additionalProperties: 1634 + type: string 1635 + description: Metadata holds upstream information such as OCI annotations. 1636 + type: object 1637 + path: 1651 1638 description: |- 1652 - message is a human readable message indicating details about the transition. 1653 - This may be an empty string. 1654 - maxLength: 32768 1639 + Path is the relative file path of the Artifact. It can be used to locate 1640 + the file in the root of the Artifact storage on the local file system of 1641 + the controller managing the Source. 1655 1642 type: string 1656 - observedGeneration: 1643 + revision: 1657 1644 description: |- 1658 - observedGeneration represents the .metadata.generation that the condition was set based upon. 1659 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 1660 - with respect to the current state of the instance. 1645 + Revision is a human-readable identifier traceable in the origin source 1646 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1647 + type: string 1648 + size: 1649 + description: Size is the number of bytes in the file. 1661 1650 format: int64 1662 - minimum: 0 1663 1651 type: integer 1664 - reason: 1652 + url: 1665 1653 description: |- 1666 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 1667 - Producers of specific condition types may define expected values and meanings for this field, 1668 - and whether the values are considered a guaranteed API. 1669 - The value should be a CamelCase string. 1670 - This field may not be empty. 1671 - maxLength: 1024 1672 - minLength: 1 1673 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1674 - type: string 1675 - status: 1676 - description: status of the condition, one of True, False, Unknown. 1677 - enum: 1678 - - "True" 1679 - - "False" 1680 - - Unknown 1681 - type: string 1682 - type: 1683 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 1684 - maxLength: 316 1685 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1654 + URL is the HTTP address of the Artifact as exposed by the controller 1655 + managing the Source. It can be used to retrieve the Artifact for 1656 + consumption, e.g. by another controller applying the Artifact contents. 1686 1657 type: string 1687 1658 required: 1688 - - lastTransitionTime 1689 - - message 1690 - - reason 1691 - - status 1692 - - type 1659 + - digest 1660 + - lastUpdateTime 1661 + - path 1662 + - revision 1663 + - url 1693 1664 type: object 1694 - type: array 1695 - lastHandledReconcileAt: 1696 - description: |- 1697 - LastHandledReconcileAt holds the value of the most recent 1698 - reconcile request value, so a change of the annotation value 1699 - can be detected. 1700 - type: string 1701 - observedChartName: 1702 - description: |- 1703 - ObservedChartName is the last observed chart name as specified by the 1704 - resolved chart reference. 1705 - type: string 1706 - observedGeneration: 1707 - description: |- 1708 - ObservedGeneration is the last observed generation of the HelmChart 1709 - object. 1710 - format: int64 1711 - type: integer 1712 - observedSourceArtifactRevision: 1713 - description: |- 1714 - ObservedSourceArtifactRevision is the last observed Artifact.Revision 1715 - of the HelmChartSpec.SourceRef. 1716 - type: string 1717 - observedValuesFiles: 1718 - description: |- 1719 - ObservedValuesFiles are the observed value files of the last successful 1720 - reconciliation. 1721 - It matches the chart in the last successfully reconciled artifact. 1722 - items: 1665 + conditions: 1666 + description: Conditions holds the conditions for the HelmChart. 1667 + items: 1668 + description: 1669 + Condition contains details for one aspect of the current 1670 + state of this API Resource. 1671 + properties: 1672 + lastTransitionTime: 1673 + description: |- 1674 + lastTransitionTime is the last time the condition transitioned from one status to another. 1675 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 1676 + format: date-time 1677 + type: string 1678 + message: 1679 + description: |- 1680 + message is a human readable message indicating details about the transition. 1681 + This may be an empty string. 1682 + maxLength: 32768 1683 + type: string 1684 + observedGeneration: 1685 + description: |- 1686 + observedGeneration represents the .metadata.generation that the condition was set based upon. 1687 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 1688 + with respect to the current state of the instance. 1689 + format: int64 1690 + minimum: 0 1691 + type: integer 1692 + reason: 1693 + description: |- 1694 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 1695 + Producers of specific condition types may define expected values and meanings for this field, 1696 + and whether the values are considered a guaranteed API. 1697 + The value should be a CamelCase string. 1698 + This field may not be empty. 1699 + maxLength: 1024 1700 + minLength: 1 1701 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1702 + type: string 1703 + status: 1704 + description: status of the condition, one of True, False, Unknown. 1705 + enum: 1706 + - "True" 1707 + - "False" 1708 + - Unknown 1709 + type: string 1710 + type: 1711 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 1712 + maxLength: 316 1713 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1714 + type: string 1715 + required: 1716 + - lastTransitionTime 1717 + - message 1718 + - reason 1719 + - status 1720 + - type 1721 + type: object 1722 + type: array 1723 + lastHandledReconcileAt: 1724 + description: |- 1725 + LastHandledReconcileAt holds the value of the most recent 1726 + reconcile request value, so a change of the annotation value 1727 + can be detected. 1728 + type: string 1729 + observedChartName: 1730 + description: |- 1731 + ObservedChartName is the last observed chart name as specified by the 1732 + resolved chart reference. 1733 + type: string 1734 + observedGeneration: 1735 + description: |- 1736 + ObservedGeneration is the last observed generation of the HelmChart 1737 + object. 1738 + format: int64 1739 + type: integer 1740 + observedSourceArtifactRevision: 1741 + description: |- 1742 + ObservedSourceArtifactRevision is the last observed Artifact.Revision 1743 + of the HelmChartSpec.SourceRef. 1744 + type: string 1745 + observedValuesFiles: 1746 + description: |- 1747 + ObservedValuesFiles are the observed value files of the last successful 1748 + reconciliation. 1749 + It matches the chart in the last successfully reconciled artifact. 1750 + items: 1751 + type: string 1752 + type: array 1753 + url: 1754 + description: |- 1755 + URL is the dynamic fetch link for the latest Artifact. 1756 + It is provided on a "best effort" basis, and using the precise 1757 + BucketStatus.Artifact data is recommended. 1723 1758 type: string 1724 - type: array 1725 - url: 1726 - description: |- 1727 - URL is the dynamic fetch link for the latest Artifact. 1728 - It is provided on a "best effort" basis, and using the precise 1729 - BucketStatus.Artifact data is recommended. 1730 - type: string 1731 - type: object 1732 - type: object 1733 - served: true 1734 - storage: true 1735 - subresources: 1736 - status: {} 1759 + type: object 1760 + type: object 1761 + served: true 1762 + storage: true 1763 + subresources: 1764 + status: {} 1737 1765 --- 1738 1766 apiVersion: apiextensions.k8s.io/v1 1739 1767 kind: CustomResourceDefinition ··· 1753 1781 listKind: HelmRepositoryList 1754 1782 plural: helmrepositories 1755 1783 shortNames: 1756 - - helmrepo 1784 + - helmrepo 1757 1785 singular: helmrepository 1758 1786 scope: Namespaced 1759 1787 versions: 1760 - - additionalPrinterColumns: 1761 - - jsonPath: .spec.url 1762 - name: URL 1763 - type: string 1764 - - jsonPath: .metadata.creationTimestamp 1765 - name: Age 1766 - type: date 1767 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 1768 - name: Ready 1769 - type: string 1770 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 1771 - name: Status 1772 - type: string 1773 - name: v1 1774 - schema: 1775 - openAPIV3Schema: 1776 - description: HelmRepository is the Schema for the helmrepositories API. 1777 - properties: 1778 - apiVersion: 1779 - description: |- 1780 - APIVersion defines the versioned schema of this representation of an object. 1781 - Servers should convert recognized schemas to the latest internal value, and 1782 - may reject unrecognized values. 1783 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 1784 - type: string 1785 - kind: 1786 - description: |- 1787 - Kind is a string value representing the REST resource this object represents. 1788 - Servers may infer this from the endpoint the client submits requests to. 1789 - Cannot be updated. 1790 - In CamelCase. 1791 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1792 - type: string 1793 - metadata: 1794 - type: object 1795 - spec: 1796 - description: |- 1797 - HelmRepositorySpec specifies the required configuration to produce an 1798 - Artifact for a Helm repository index YAML. 1799 - properties: 1800 - accessFrom: 1801 - description: |- 1802 - AccessFrom specifies an Access Control List for allowing cross-namespace 1803 - references to this object. 1804 - NOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092 1805 - properties: 1806 - namespaceSelectors: 1807 - description: |- 1808 - NamespaceSelectors is the list of namespace selectors to which this ACL applies. 1809 - Items in this list are evaluated using a logical OR operation. 1810 - items: 1788 + - additionalPrinterColumns: 1789 + - jsonPath: .spec.url 1790 + name: URL 1791 + type: string 1792 + - jsonPath: .metadata.creationTimestamp 1793 + name: Age 1794 + type: date 1795 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 1796 + name: Ready 1797 + type: string 1798 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 1799 + name: Status 1800 + type: string 1801 + name: v1 1802 + schema: 1803 + openAPIV3Schema: 1804 + description: HelmRepository is the Schema for the helmrepositories API. 1805 + properties: 1806 + apiVersion: 1807 + description: |- 1808 + APIVersion defines the versioned schema of this representation of an object. 1809 + Servers should convert recognized schemas to the latest internal value, and 1810 + may reject unrecognized values. 1811 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 1812 + type: string 1813 + kind: 1814 + description: |- 1815 + Kind is a string value representing the REST resource this object represents. 1816 + Servers may infer this from the endpoint the client submits requests to. 1817 + Cannot be updated. 1818 + In CamelCase. 1819 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 1820 + type: string 1821 + metadata: 1822 + type: object 1823 + spec: 1824 + description: |- 1825 + HelmRepositorySpec specifies the required configuration to produce an 1826 + Artifact for a Helm repository index YAML. 1827 + properties: 1828 + accessFrom: 1829 + description: |- 1830 + AccessFrom specifies an Access Control List for allowing cross-namespace 1831 + references to this object. 1832 + NOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092 1833 + properties: 1834 + namespaceSelectors: 1811 1835 description: |- 1812 - NamespaceSelector selects the namespaces to which this ACL applies. 1813 - An empty map of MatchLabels matches all namespaces in a cluster. 1814 - properties: 1815 - matchLabels: 1816 - additionalProperties: 1817 - type: string 1818 - description: |- 1819 - MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 1820 - map is equivalent to an element of matchExpressions, whose key field is "key", the 1821 - operator is "In", and the values array contains only "value". The requirements are ANDed. 1822 - type: object 1823 - type: object 1824 - type: array 1825 - required: 1826 - - namespaceSelectors 1827 - type: object 1828 - certSecretRef: 1829 - description: |- 1830 - CertSecretRef can be given the name of a Secret containing 1831 - either or both of 1836 + NamespaceSelectors is the list of namespace selectors to which this ACL applies. 1837 + Items in this list are evaluated using a logical OR operation. 1838 + items: 1839 + description: |- 1840 + NamespaceSelector selects the namespaces to which this ACL applies. 1841 + An empty map of MatchLabels matches all namespaces in a cluster. 1842 + properties: 1843 + matchLabels: 1844 + additionalProperties: 1845 + type: string 1846 + description: |- 1847 + MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 1848 + map is equivalent to an element of matchExpressions, whose key field is "key", the 1849 + operator is "In", and the values array contains only "value". The requirements are ANDed. 1850 + type: object 1851 + type: object 1852 + type: array 1853 + required: 1854 + - namespaceSelectors 1855 + type: object 1856 + certSecretRef: 1857 + description: |- 1858 + CertSecretRef can be given the name of a Secret containing 1859 + either or both of 1832 1860 1833 - - a PEM-encoded client certificate (`tls.crt`) and private 1834 - key (`tls.key`); 1835 - - a PEM-encoded CA certificate (`ca.crt`) 1861 + - a PEM-encoded client certificate (`tls.crt`) and private 1862 + key (`tls.key`); 1863 + - a PEM-encoded CA certificate (`ca.crt`) 1836 1864 1837 - and whichever are supplied, will be used for connecting to the 1838 - registry. The client cert and key are useful if you are 1839 - authenticating with a certificate; the CA cert is useful if 1840 - you are using a self-signed server certificate. The Secret must 1841 - be of type `Opaque` or `kubernetes.io/tls`. 1865 + and whichever are supplied, will be used for connecting to the 1866 + registry. The client cert and key are useful if you are 1867 + authenticating with a certificate; the CA cert is useful if 1868 + you are using a self-signed server certificate. The Secret must 1869 + be of type `Opaque` or `kubernetes.io/tls`. 1842 1870 1843 - It takes precedence over the values specified in the Secret referred 1844 - to by `.spec.secretRef`. 1845 - properties: 1846 - name: 1847 - description: Name of the referent. 1848 - type: string 1849 - required: 1850 - - name 1851 - type: object 1852 - insecure: 1853 - description: |- 1854 - Insecure allows connecting to a non-TLS HTTP container registry. 1855 - This field is only taken into account if the .spec.type field is set to 'oci'. 1856 - type: boolean 1857 - interval: 1858 - description: |- 1859 - Interval at which the HelmRepository URL is checked for updates. 1860 - This interval is approximate and may be subject to jitter to ensure 1861 - efficient use of resources. 1862 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1863 - type: string 1864 - passCredentials: 1865 - description: |- 1866 - PassCredentials allows the credentials from the SecretRef to be passed 1867 - on to a host that does not match the host as defined in URL. 1868 - This may be required if the host of the advertised chart URLs in the 1869 - index differ from the defined URL. 1870 - Enabling this should be done with caution, as it can potentially result 1871 - in credentials getting stolen in a MITM-attack. 1872 - type: boolean 1873 - provider: 1874 - default: generic 1875 - description: |- 1876 - Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'. 1877 - This field is optional, and only taken into account if the .spec.type field is set to 'oci'. 1878 - When not specified, defaults to 'generic'. 1879 - enum: 1880 - - generic 1881 - - aws 1882 - - azure 1883 - - gcp 1884 - type: string 1885 - secretRef: 1886 - description: |- 1887 - SecretRef specifies the Secret containing authentication credentials 1888 - for the HelmRepository. 1889 - For HTTP/S basic auth the secret must contain 'username' and 'password' 1890 - fields. 1891 - Support for TLS auth using the 'certFile' and 'keyFile', and/or 'caFile' 1892 - keys is deprecated. Please use `.spec.certSecretRef` instead. 1893 - properties: 1894 - name: 1895 - description: Name of the referent. 1896 - type: string 1897 - required: 1898 - - name 1899 - type: object 1900 - suspend: 1901 - description: |- 1902 - Suspend tells the controller to suspend the reconciliation of this 1903 - HelmRepository. 1904 - type: boolean 1905 - timeout: 1906 - description: |- 1907 - Timeout is used for the index fetch operation for an HTTPS helm repository, 1908 - and for remote OCI Repository operations like pulling for an OCI helm 1909 - chart by the associated HelmChart. 1910 - Its default value is 60s. 1911 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 1912 - type: string 1913 - type: 1914 - description: |- 1915 - Type of the HelmRepository. 1916 - When this field is set to "oci", the URL field value must be prefixed with "oci://". 1917 - enum: 1918 - - default 1919 - - oci 1920 - type: string 1921 - url: 1922 - description: |- 1923 - URL of the Helm repository, a valid URL contains at least a protocol and 1924 - host. 1925 - pattern: ^(http|https|oci)://.*$ 1926 - type: string 1927 - required: 1928 - - url 1929 - type: object 1930 - status: 1931 - default: 1932 - observedGeneration: -1 1933 - description: HelmRepositoryStatus records the observed state of the HelmRepository. 1934 - properties: 1935 - artifact: 1936 - description: Artifact represents the last successful HelmRepository 1937 - reconciliation. 1938 - properties: 1939 - digest: 1940 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1941 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1942 - type: string 1943 - lastUpdateTime: 1944 - description: |- 1945 - LastUpdateTime is the timestamp corresponding to the last update of the 1946 - Artifact. 1947 - format: date-time 1948 - type: string 1949 - metadata: 1950 - additionalProperties: 1871 + It takes precedence over the values specified in the Secret referred 1872 + to by `.spec.secretRef`. 1873 + properties: 1874 + name: 1875 + description: Name of the referent. 1876 + type: string 1877 + required: 1878 + - name 1879 + type: object 1880 + insecure: 1881 + description: |- 1882 + Insecure allows connecting to a non-TLS HTTP container registry. 1883 + This field is only taken into account if the .spec.type field is set to 'oci'. 1884 + type: boolean 1885 + interval: 1886 + description: |- 1887 + Interval at which the HelmRepository URL is checked for updates. 1888 + This interval is approximate and may be subject to jitter to ensure 1889 + efficient use of resources. 1890 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 1891 + type: string 1892 + passCredentials: 1893 + description: |- 1894 + PassCredentials allows the credentials from the SecretRef to be passed 1895 + on to a host that does not match the host as defined in URL. 1896 + This may be required if the host of the advertised chart URLs in the 1897 + index differ from the defined URL. 1898 + Enabling this should be done with caution, as it can potentially result 1899 + in credentials getting stolen in a MITM-attack. 1900 + type: boolean 1901 + provider: 1902 + default: generic 1903 + description: |- 1904 + Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'. 1905 + This field is optional, and only taken into account if the .spec.type field is set to 'oci'. 1906 + When not specified, defaults to 'generic'. 1907 + enum: 1908 + - generic 1909 + - aws 1910 + - azure 1911 + - gcp 1912 + type: string 1913 + secretRef: 1914 + description: |- 1915 + SecretRef specifies the Secret containing authentication credentials 1916 + for the HelmRepository. 1917 + For HTTP/S basic auth the secret must contain 'username' and 'password' 1918 + fields. 1919 + Support for TLS auth using the 'certFile' and 'keyFile', and/or 'caFile' 1920 + keys is deprecated. Please use `.spec.certSecretRef` instead. 1921 + properties: 1922 + name: 1923 + description: Name of the referent. 1951 1924 type: string 1952 - description: Metadata holds upstream information such as OCI annotations. 1953 - type: object 1954 - path: 1955 - description: |- 1956 - Path is the relative file path of the Artifact. It can be used to locate 1957 - the file in the root of the Artifact storage on the local file system of 1958 - the controller managing the Source. 1959 - type: string 1960 - revision: 1961 - description: |- 1962 - Revision is a human-readable identifier traceable in the origin source 1963 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1964 - type: string 1965 - size: 1966 - description: Size is the number of bytes in the file. 1967 - format: int64 1968 - type: integer 1969 - url: 1970 - description: |- 1971 - URL is the HTTP address of the Artifact as exposed by the controller 1972 - managing the Source. It can be used to retrieve the Artifact for 1973 - consumption, e.g. by another controller applying the Artifact contents. 1974 - type: string 1975 - required: 1976 - - digest 1977 - - lastUpdateTime 1978 - - path 1979 - - revision 1925 + required: 1926 + - name 1927 + type: object 1928 + suspend: 1929 + description: |- 1930 + Suspend tells the controller to suspend the reconciliation of this 1931 + HelmRepository. 1932 + type: boolean 1933 + timeout: 1934 + description: |- 1935 + Timeout is used for the index fetch operation for an HTTPS helm repository, 1936 + and for remote OCI Repository operations like pulling for an OCI helm 1937 + chart by the associated HelmChart. 1938 + Its default value is 60s. 1939 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 1940 + type: string 1941 + type: 1942 + description: |- 1943 + Type of the HelmRepository. 1944 + When this field is set to "oci", the URL field value must be prefixed with "oci://". 1945 + enum: 1946 + - default 1947 + - oci 1948 + type: string 1949 + url: 1950 + description: |- 1951 + URL of the Helm repository, a valid URL contains at least a protocol and 1952 + host. 1953 + pattern: ^(http|https|oci)://.*$ 1954 + type: string 1955 + required: 1980 1956 - url 1981 - type: object 1982 - conditions: 1983 - description: Conditions holds the conditions for the HelmRepository. 1984 - items: 1985 - description: Condition contains details for one aspect of the current 1986 - state of this API Resource. 1957 + type: object 1958 + status: 1959 + default: 1960 + observedGeneration: -1 1961 + description: HelmRepositoryStatus records the observed state of the HelmRepository. 1962 + properties: 1963 + artifact: 1964 + description: 1965 + Artifact represents the last successful HelmRepository 1966 + reconciliation. 1987 1967 properties: 1988 - lastTransitionTime: 1968 + digest: 1969 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 1970 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 1971 + type: string 1972 + lastUpdateTime: 1989 1973 description: |- 1990 - lastTransitionTime is the last time the condition transitioned from one status to another. 1991 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 1974 + LastUpdateTime is the timestamp corresponding to the last update of the 1975 + Artifact. 1992 1976 format: date-time 1993 1977 type: string 1994 - message: 1978 + metadata: 1979 + additionalProperties: 1980 + type: string 1981 + description: Metadata holds upstream information such as OCI annotations. 1982 + type: object 1983 + path: 1995 1984 description: |- 1996 - message is a human readable message indicating details about the transition. 1997 - This may be an empty string. 1998 - maxLength: 32768 1985 + Path is the relative file path of the Artifact. It can be used to locate 1986 + the file in the root of the Artifact storage on the local file system of 1987 + the controller managing the Source. 1999 1988 type: string 2000 - observedGeneration: 1989 + revision: 2001 1990 description: |- 2002 - observedGeneration represents the .metadata.generation that the condition was set based upon. 2003 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 2004 - with respect to the current state of the instance. 1991 + Revision is a human-readable identifier traceable in the origin source 1992 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 1993 + type: string 1994 + size: 1995 + description: Size is the number of bytes in the file. 2005 1996 format: int64 2006 - minimum: 0 2007 1997 type: integer 2008 - reason: 1998 + url: 2009 1999 description: |- 2010 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 2011 - Producers of specific condition types may define expected values and meanings for this field, 2012 - and whether the values are considered a guaranteed API. 2013 - The value should be a CamelCase string. 2014 - This field may not be empty. 2015 - maxLength: 1024 2016 - minLength: 1 2017 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 2018 - type: string 2019 - status: 2020 - description: status of the condition, one of True, False, Unknown. 2021 - enum: 2022 - - "True" 2023 - - "False" 2024 - - Unknown 2025 - type: string 2026 - type: 2027 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 2028 - maxLength: 316 2029 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 2000 + URL is the HTTP address of the Artifact as exposed by the controller 2001 + managing the Source. It can be used to retrieve the Artifact for 2002 + consumption, e.g. by another controller applying the Artifact contents. 2030 2003 type: string 2031 2004 required: 2032 - - lastTransitionTime 2033 - - message 2034 - - reason 2035 - - status 2036 - - type 2005 + - digest 2006 + - lastUpdateTime 2007 + - path 2008 + - revision 2009 + - url 2037 2010 type: object 2038 - type: array 2039 - lastHandledReconcileAt: 2040 - description: |- 2041 - LastHandledReconcileAt holds the value of the most recent 2042 - reconcile request value, so a change of the annotation value 2043 - can be detected. 2044 - type: string 2045 - observedGeneration: 2046 - description: |- 2047 - ObservedGeneration is the last observed generation of the HelmRepository 2048 - object. 2049 - format: int64 2050 - type: integer 2051 - url: 2052 - description: |- 2053 - URL is the dynamic fetch link for the latest Artifact. 2054 - It is provided on a "best effort" basis, and using the precise 2055 - HelmRepositoryStatus.Artifact data is recommended. 2056 - type: string 2057 - type: object 2058 - type: object 2059 - served: true 2060 - storage: true 2061 - subresources: 2062 - status: {} 2011 + conditions: 2012 + description: Conditions holds the conditions for the HelmRepository. 2013 + items: 2014 + description: 2015 + Condition contains details for one aspect of the current 2016 + state of this API Resource. 2017 + properties: 2018 + lastTransitionTime: 2019 + description: |- 2020 + lastTransitionTime is the last time the condition transitioned from one status to another. 2021 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 2022 + format: date-time 2023 + type: string 2024 + message: 2025 + description: |- 2026 + message is a human readable message indicating details about the transition. 2027 + This may be an empty string. 2028 + maxLength: 32768 2029 + type: string 2030 + observedGeneration: 2031 + description: |- 2032 + observedGeneration represents the .metadata.generation that the condition was set based upon. 2033 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 2034 + with respect to the current state of the instance. 2035 + format: int64 2036 + minimum: 0 2037 + type: integer 2038 + reason: 2039 + description: |- 2040 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 2041 + Producers of specific condition types may define expected values and meanings for this field, 2042 + and whether the values are considered a guaranteed API. 2043 + The value should be a CamelCase string. 2044 + This field may not be empty. 2045 + maxLength: 1024 2046 + minLength: 1 2047 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 2048 + type: string 2049 + status: 2050 + description: status of the condition, one of True, False, Unknown. 2051 + enum: 2052 + - "True" 2053 + - "False" 2054 + - Unknown 2055 + type: string 2056 + type: 2057 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 2058 + maxLength: 316 2059 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 2060 + type: string 2061 + required: 2062 + - lastTransitionTime 2063 + - message 2064 + - reason 2065 + - status 2066 + - type 2067 + type: object 2068 + type: array 2069 + lastHandledReconcileAt: 2070 + description: |- 2071 + LastHandledReconcileAt holds the value of the most recent 2072 + reconcile request value, so a change of the annotation value 2073 + can be detected. 2074 + type: string 2075 + observedGeneration: 2076 + description: |- 2077 + ObservedGeneration is the last observed generation of the HelmRepository 2078 + object. 2079 + format: int64 2080 + type: integer 2081 + url: 2082 + description: |- 2083 + URL is the dynamic fetch link for the latest Artifact. 2084 + It is provided on a "best effort" basis, and using the precise 2085 + HelmRepositoryStatus.Artifact data is recommended. 2086 + type: string 2087 + type: object 2088 + type: object 2089 + served: true 2090 + storage: true 2091 + subresources: 2092 + status: {} 2063 2093 --- 2064 2094 apiVersion: apiextensions.k8s.io/v1 2065 2095 kind: CustomResourceDefinition ··· 2079 2109 listKind: OCIRepositoryList 2080 2110 plural: ocirepositories 2081 2111 shortNames: 2082 - - ocirepo 2112 + - ocirepo 2083 2113 singular: ocirepository 2084 2114 scope: Namespaced 2085 2115 versions: 2086 - - additionalPrinterColumns: 2087 - - jsonPath: .spec.url 2088 - name: URL 2089 - type: string 2090 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 2091 - name: Ready 2092 - type: string 2093 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 2094 - name: Status 2095 - type: string 2096 - - jsonPath: .metadata.creationTimestamp 2097 - name: Age 2098 - type: date 2099 - name: v1 2100 - schema: 2101 - openAPIV3Schema: 2102 - description: OCIRepository is the Schema for the ocirepositories API 2103 - properties: 2104 - apiVersion: 2105 - description: |- 2106 - APIVersion defines the versioned schema of this representation of an object. 2107 - Servers should convert recognized schemas to the latest internal value, and 2108 - may reject unrecognized values. 2109 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 2110 - type: string 2111 - kind: 2112 - description: |- 2113 - Kind is a string value representing the REST resource this object represents. 2114 - Servers may infer this from the endpoint the client submits requests to. 2115 - Cannot be updated. 2116 - In CamelCase. 2117 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 2118 - type: string 2119 - metadata: 2120 - type: object 2121 - spec: 2122 - description: OCIRepositorySpec defines the desired state of OCIRepository 2123 - properties: 2124 - certSecretRef: 2125 - description: |- 2126 - CertSecretRef can be given the name of a Secret containing 2127 - either or both of 2116 + - additionalPrinterColumns: 2117 + - jsonPath: .spec.url 2118 + name: URL 2119 + type: string 2120 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 2121 + name: Ready 2122 + type: string 2123 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 2124 + name: Status 2125 + type: string 2126 + - jsonPath: .metadata.creationTimestamp 2127 + name: Age 2128 + type: date 2129 + name: v1 2130 + schema: 2131 + openAPIV3Schema: 2132 + description: OCIRepository is the Schema for the ocirepositories API 2133 + properties: 2134 + apiVersion: 2135 + description: |- 2136 + APIVersion defines the versioned schema of this representation of an object. 2137 + Servers should convert recognized schemas to the latest internal value, and 2138 + may reject unrecognized values. 2139 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 2140 + type: string 2141 + kind: 2142 + description: |- 2143 + Kind is a string value representing the REST resource this object represents. 2144 + Servers may infer this from the endpoint the client submits requests to. 2145 + Cannot be updated. 2146 + In CamelCase. 2147 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 2148 + type: string 2149 + metadata: 2150 + type: object 2151 + spec: 2152 + description: OCIRepositorySpec defines the desired state of OCIRepository 2153 + properties: 2154 + certSecretRef: 2155 + description: |- 2156 + CertSecretRef can be given the name of a Secret containing 2157 + either or both of 2128 2158 2129 - - a PEM-encoded client certificate (`tls.crt`) and private 2130 - key (`tls.key`); 2131 - - a PEM-encoded CA certificate (`ca.crt`) 2159 + - a PEM-encoded client certificate (`tls.crt`) and private 2160 + key (`tls.key`); 2161 + - a PEM-encoded CA certificate (`ca.crt`) 2132 2162 2133 - and whichever are supplied, will be used for connecting to the 2134 - registry. The client cert and key are useful if you are 2135 - authenticating with a certificate; the CA cert is useful if 2136 - you are using a self-signed server certificate. The Secret must 2137 - be of type `Opaque` or `kubernetes.io/tls`. 2138 - properties: 2139 - name: 2140 - description: Name of the referent. 2141 - type: string 2142 - required: 2143 - - name 2144 - type: object 2145 - ignore: 2146 - description: |- 2147 - Ignore overrides the set of excluded patterns in the .sourceignore format 2148 - (which is the same as .gitignore). If not provided, a default will be used, 2149 - consult the documentation for your version to find out what those are. 2150 - type: string 2151 - insecure: 2152 - description: Insecure allows connecting to a non-TLS HTTP container 2153 - registry. 2154 - type: boolean 2155 - interval: 2156 - description: |- 2157 - Interval at which the OCIRepository URL is checked for updates. 2158 - This interval is approximate and may be subject to jitter to ensure 2159 - efficient use of resources. 2160 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 2161 - type: string 2162 - layerSelector: 2163 - description: |- 2164 - LayerSelector specifies which layer should be extracted from the OCI artifact. 2165 - When not specified, the first layer found in the artifact is selected. 2166 - properties: 2167 - mediaType: 2168 - description: |- 2169 - MediaType specifies the OCI media type of the layer 2170 - which should be extracted from the OCI Artifact. The 2171 - first layer matching this type is selected. 2172 - type: string 2173 - operation: 2174 - description: |- 2175 - Operation specifies how the selected layer should be processed. 2176 - By default, the layer compressed content is extracted to storage. 2177 - When the operation is set to 'copy', the layer compressed content 2178 - is persisted to storage as it is. 2179 - enum: 2180 - - extract 2181 - - copy 2182 - type: string 2183 - type: object 2184 - provider: 2185 - default: generic 2186 - description: |- 2187 - The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'. 2188 - When not specified, defaults to 'generic'. 2189 - enum: 2190 - - generic 2191 - - aws 2192 - - azure 2193 - - gcp 2194 - type: string 2195 - proxySecretRef: 2196 - description: |- 2197 - ProxySecretRef specifies the Secret containing the proxy configuration 2198 - to use while communicating with the container registry. 2199 - properties: 2200 - name: 2201 - description: Name of the referent. 2202 - type: string 2203 - required: 2204 - - name 2205 - type: object 2206 - ref: 2207 - description: |- 2208 - The OCI reference to pull and monitor for changes, 2209 - defaults to the latest tag. 2210 - properties: 2211 - digest: 2212 - description: |- 2213 - Digest is the image digest to pull, takes precedence over SemVer. 2214 - The value should be in the format 'sha256:<HASH>'. 2215 - type: string 2216 - semver: 2217 - description: |- 2218 - SemVer is the range of tags to pull selecting the latest within 2219 - the range, takes precedence over Tag. 2220 - type: string 2221 - semverFilter: 2222 - description: SemverFilter is a regex pattern to filter the tags 2223 - within the SemVer range. 2224 - type: string 2225 - tag: 2226 - description: Tag is the image tag to pull, defaults to latest. 2227 - type: string 2228 - type: object 2229 - secretRef: 2230 - description: |- 2231 - SecretRef contains the secret name containing the registry login 2232 - credentials to resolve image metadata. 2233 - The secret must be of type kubernetes.io/dockerconfigjson. 2234 - properties: 2235 - name: 2236 - description: Name of the referent. 2237 - type: string 2238 - required: 2239 - - name 2240 - type: object 2241 - serviceAccountName: 2242 - description: |- 2243 - ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate 2244 - the image pull if the service account has attached pull secrets. For more information: 2245 - https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account 2246 - type: string 2247 - suspend: 2248 - description: This flag tells the controller to suspend the reconciliation 2249 - of this source. 2250 - type: boolean 2251 - timeout: 2252 - default: 60s 2253 - description: The timeout for remote OCI Repository operations like 2254 - pulling, defaults to 60s. 2255 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 2256 - type: string 2257 - url: 2258 - description: |- 2259 - URL is a reference to an OCI artifact repository hosted 2260 - on a remote container registry. 2261 - pattern: ^oci://.*$ 2262 - type: string 2263 - verify: 2264 - description: |- 2265 - Verify contains the secret name containing the trusted public keys 2266 - used to verify the signature and specifies which provider to use to check 2267 - whether OCI image is authentic. 2268 - properties: 2269 - matchOIDCIdentity: 2270 - description: |- 2271 - MatchOIDCIdentity specifies the identity matching criteria to use 2272 - while verifying an OCI artifact which was signed using Cosign keyless 2273 - signing. The artifact's identity is deemed to be verified if any of the 2274 - specified matchers match against the identity. 2275 - items: 2163 + and whichever are supplied, will be used for connecting to the 2164 + registry. The client cert and key are useful if you are 2165 + authenticating with a certificate; the CA cert is useful if 2166 + you are using a self-signed server certificate. The Secret must 2167 + be of type `Opaque` or `kubernetes.io/tls`. 2168 + properties: 2169 + name: 2170 + description: Name of the referent. 2171 + type: string 2172 + required: 2173 + - name 2174 + type: object 2175 + ignore: 2176 + description: |- 2177 + Ignore overrides the set of excluded patterns in the .sourceignore format 2178 + (which is the same as .gitignore). If not provided, a default will be used, 2179 + consult the documentation for your version to find out what those are. 2180 + type: string 2181 + insecure: 2182 + description: 2183 + Insecure allows connecting to a non-TLS HTTP container 2184 + registry. 2185 + type: boolean 2186 + interval: 2187 + description: |- 2188 + Interval at which the OCIRepository URL is checked for updates. 2189 + This interval is approximate and may be subject to jitter to ensure 2190 + efficient use of resources. 2191 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 2192 + type: string 2193 + layerSelector: 2194 + description: |- 2195 + LayerSelector specifies which layer should be extracted from the OCI artifact. 2196 + When not specified, the first layer found in the artifact is selected. 2197 + properties: 2198 + mediaType: 2199 + description: |- 2200 + MediaType specifies the OCI media type of the layer 2201 + which should be extracted from the OCI Artifact. The 2202 + first layer matching this type is selected. 2203 + type: string 2204 + operation: 2205 + description: |- 2206 + Operation specifies how the selected layer should be processed. 2207 + By default, the layer compressed content is extracted to storage. 2208 + When the operation is set to 'copy', the layer compressed content 2209 + is persisted to storage as it is. 2210 + enum: 2211 + - extract 2212 + - copy 2213 + type: string 2214 + type: object 2215 + provider: 2216 + default: generic 2217 + description: |- 2218 + The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'. 2219 + When not specified, defaults to 'generic'. 2220 + enum: 2221 + - generic 2222 + - aws 2223 + - azure 2224 + - gcp 2225 + type: string 2226 + proxySecretRef: 2227 + description: |- 2228 + ProxySecretRef specifies the Secret containing the proxy configuration 2229 + to use while communicating with the container registry. 2230 + properties: 2231 + name: 2232 + description: Name of the referent. 2233 + type: string 2234 + required: 2235 + - name 2236 + type: object 2237 + ref: 2238 + description: |- 2239 + The OCI reference to pull and monitor for changes, 2240 + defaults to the latest tag. 2241 + properties: 2242 + digest: 2243 + description: |- 2244 + Digest is the image digest to pull, takes precedence over SemVer. 2245 + The value should be in the format 'sha256:<HASH>'. 2246 + type: string 2247 + semver: 2248 + description: |- 2249 + SemVer is the range of tags to pull selecting the latest within 2250 + the range, takes precedence over Tag. 2251 + type: string 2252 + semverFilter: 2253 + description: 2254 + SemverFilter is a regex pattern to filter the tags 2255 + within the SemVer range. 2256 + type: string 2257 + tag: 2258 + description: Tag is the image tag to pull, defaults to latest. 2259 + type: string 2260 + type: object 2261 + secretRef: 2262 + description: |- 2263 + SecretRef contains the secret name containing the registry login 2264 + credentials to resolve image metadata. 2265 + The secret must be of type kubernetes.io/dockerconfigjson. 2266 + properties: 2267 + name: 2268 + description: Name of the referent. 2269 + type: string 2270 + required: 2271 + - name 2272 + type: object 2273 + serviceAccountName: 2274 + description: |- 2275 + ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate 2276 + the image pull if the service account has attached pull secrets. For more information: 2277 + https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account 2278 + type: string 2279 + suspend: 2280 + description: 2281 + This flag tells the controller to suspend the reconciliation 2282 + of this source. 2283 + type: boolean 2284 + timeout: 2285 + default: 60s 2286 + description: 2287 + The timeout for remote OCI Repository operations like 2288 + pulling, defaults to 60s. 2289 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 2290 + type: string 2291 + url: 2292 + description: |- 2293 + URL is a reference to an OCI artifact repository hosted 2294 + on a remote container registry. 2295 + pattern: ^oci://.*$ 2296 + type: string 2297 + verify: 2298 + description: |- 2299 + Verify contains the secret name containing the trusted public keys 2300 + used to verify the signature and specifies which provider to use to check 2301 + whether OCI image is authentic. 2302 + properties: 2303 + matchOIDCIdentity: 2276 2304 description: |- 2277 - OIDCIdentityMatch specifies options for verifying the certificate identity, 2278 - i.e. the issuer and the subject of the certificate. 2305 + MatchOIDCIdentity specifies the identity matching criteria to use 2306 + while verifying an OCI artifact which was signed using Cosign keyless 2307 + signing. The artifact's identity is deemed to be verified if any of the 2308 + specified matchers match against the identity. 2309 + items: 2310 + description: |- 2311 + OIDCIdentityMatch specifies options for verifying the certificate identity, 2312 + i.e. the issuer and the subject of the certificate. 2313 + properties: 2314 + issuer: 2315 + description: |- 2316 + Issuer specifies the regex pattern to match against to verify 2317 + the OIDC issuer in the Fulcio certificate. The pattern must be a 2318 + valid Go regular expression. 2319 + type: string 2320 + subject: 2321 + description: |- 2322 + Subject specifies the regex pattern to match against to verify 2323 + the identity subject in the Fulcio certificate. The pattern must 2324 + be a valid Go regular expression. 2325 + type: string 2326 + required: 2327 + - issuer 2328 + - subject 2329 + type: object 2330 + type: array 2331 + provider: 2332 + default: cosign 2333 + description: 2334 + Provider specifies the technology used to sign the 2335 + OCI Artifact. 2336 + enum: 2337 + - cosign 2338 + - notation 2339 + type: string 2340 + secretRef: 2341 + description: |- 2342 + SecretRef specifies the Kubernetes Secret containing the 2343 + trusted public keys. 2279 2344 properties: 2280 - issuer: 2281 - description: |- 2282 - Issuer specifies the regex pattern to match against to verify 2283 - the OIDC issuer in the Fulcio certificate. The pattern must be a 2284 - valid Go regular expression. 2285 - type: string 2286 - subject: 2287 - description: |- 2288 - Subject specifies the regex pattern to match against to verify 2289 - the identity subject in the Fulcio certificate. The pattern must 2290 - be a valid Go regular expression. 2345 + name: 2346 + description: Name of the referent. 2291 2347 type: string 2292 2348 required: 2293 - - issuer 2294 - - subject 2349 + - name 2295 2350 type: object 2296 - type: array 2297 - provider: 2298 - default: cosign 2299 - description: Provider specifies the technology used to sign the 2300 - OCI Artifact. 2301 - enum: 2302 - - cosign 2303 - - notation 2304 - type: string 2305 - secretRef: 2306 - description: |- 2307 - SecretRef specifies the Kubernetes Secret containing the 2308 - trusted public keys. 2309 - properties: 2310 - name: 2311 - description: Name of the referent. 2312 - type: string 2313 - required: 2314 - - name 2315 - type: object 2316 - required: 2317 - - provider 2318 - type: object 2319 - required: 2320 - - interval 2321 - - url 2322 - type: object 2323 - status: 2324 - default: 2325 - observedGeneration: -1 2326 - description: OCIRepositoryStatus defines the observed state of OCIRepository 2327 - properties: 2328 - artifact: 2329 - description: Artifact represents the output of the last successful 2330 - OCI Repository sync. 2331 - properties: 2332 - digest: 2333 - description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 2334 - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 2335 - type: string 2336 - lastUpdateTime: 2337 - description: |- 2338 - LastUpdateTime is the timestamp corresponding to the last update of the 2339 - Artifact. 2340 - format: date-time 2341 - type: string 2342 - metadata: 2343 - additionalProperties: 2344 - type: string 2345 - description: Metadata holds upstream information such as OCI annotations. 2346 - type: object 2347 - path: 2348 - description: |- 2349 - Path is the relative file path of the Artifact. It can be used to locate 2350 - the file in the root of the Artifact storage on the local file system of 2351 - the controller managing the Source. 2352 - type: string 2353 - revision: 2354 - description: |- 2355 - Revision is a human-readable identifier traceable in the origin source 2356 - system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 2357 - type: string 2358 - size: 2359 - description: Size is the number of bytes in the file. 2360 - format: int64 2361 - type: integer 2362 - url: 2363 - description: |- 2364 - URL is the HTTP address of the Artifact as exposed by the controller 2365 - managing the Source. It can be used to retrieve the Artifact for 2366 - consumption, e.g. by another controller applying the Artifact contents. 2367 - type: string 2368 - required: 2369 - - digest 2370 - - lastUpdateTime 2371 - - path 2372 - - revision 2351 + required: 2352 + - provider 2353 + type: object 2354 + required: 2355 + - interval 2373 2356 - url 2374 - type: object 2375 - conditions: 2376 - description: Conditions holds the conditions for the OCIRepository. 2377 - items: 2378 - description: Condition contains details for one aspect of the current 2379 - state of this API Resource. 2357 + type: object 2358 + status: 2359 + default: 2360 + observedGeneration: -1 2361 + description: OCIRepositoryStatus defines the observed state of OCIRepository 2362 + properties: 2363 + artifact: 2364 + description: 2365 + Artifact represents the output of the last successful 2366 + OCI Repository sync. 2380 2367 properties: 2381 - lastTransitionTime: 2368 + digest: 2369 + description: Digest is the digest of the file in the form of '<algorithm>:<checksum>'. 2370 + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ 2371 + type: string 2372 + lastUpdateTime: 2382 2373 description: |- 2383 - lastTransitionTime is the last time the condition transitioned from one status to another. 2384 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 2374 + LastUpdateTime is the timestamp corresponding to the last update of the 2375 + Artifact. 2385 2376 format: date-time 2386 2377 type: string 2387 - message: 2378 + metadata: 2379 + additionalProperties: 2380 + type: string 2381 + description: Metadata holds upstream information such as OCI annotations. 2382 + type: object 2383 + path: 2388 2384 description: |- 2389 - message is a human readable message indicating details about the transition. 2390 - This may be an empty string. 2391 - maxLength: 32768 2385 + Path is the relative file path of the Artifact. It can be used to locate 2386 + the file in the root of the Artifact storage on the local file system of 2387 + the controller managing the Source. 2392 2388 type: string 2393 - observedGeneration: 2389 + revision: 2394 2390 description: |- 2395 - observedGeneration represents the .metadata.generation that the condition was set based upon. 2396 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 2397 - with respect to the current state of the instance. 2391 + Revision is a human-readable identifier traceable in the origin source 2392 + system. It can be a Git commit SHA, Git tag, a Helm chart version, etc. 2393 + type: string 2394 + size: 2395 + description: Size is the number of bytes in the file. 2398 2396 format: int64 2399 - minimum: 0 2400 2397 type: integer 2401 - reason: 2398 + url: 2399 + description: |- 2400 + URL is the HTTP address of the Artifact as exposed by the controller 2401 + managing the Source. It can be used to retrieve the Artifact for 2402 + consumption, e.g. by another controller applying the Artifact contents. 2403 + type: string 2404 + required: 2405 + - digest 2406 + - lastUpdateTime 2407 + - path 2408 + - revision 2409 + - url 2410 + type: object 2411 + conditions: 2412 + description: Conditions holds the conditions for the OCIRepository. 2413 + items: 2414 + description: 2415 + Condition contains details for one aspect of the current 2416 + state of this API Resource. 2417 + properties: 2418 + lastTransitionTime: 2419 + description: |- 2420 + lastTransitionTime is the last time the condition transitioned from one status to another. 2421 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 2422 + format: date-time 2423 + type: string 2424 + message: 2425 + description: |- 2426 + message is a human readable message indicating details about the transition. 2427 + This may be an empty string. 2428 + maxLength: 32768 2429 + type: string 2430 + observedGeneration: 2431 + description: |- 2432 + observedGeneration represents the .metadata.generation that the condition was set based upon. 2433 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 2434 + with respect to the current state of the instance. 2435 + format: int64 2436 + minimum: 0 2437 + type: integer 2438 + reason: 2439 + description: |- 2440 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 2441 + Producers of specific condition types may define expected values and meanings for this field, 2442 + and whether the values are considered a guaranteed API. 2443 + The value should be a CamelCase string. 2444 + This field may not be empty. 2445 + maxLength: 1024 2446 + minLength: 1 2447 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 2448 + type: string 2449 + status: 2450 + description: status of the condition, one of True, False, Unknown. 2451 + enum: 2452 + - "True" 2453 + - "False" 2454 + - Unknown 2455 + type: string 2456 + type: 2457 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 2458 + maxLength: 316 2459 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 2460 + type: string 2461 + required: 2462 + - lastTransitionTime 2463 + - message 2464 + - reason 2465 + - status 2466 + - type 2467 + type: object 2468 + type: array 2469 + lastHandledReconcileAt: 2470 + description: |- 2471 + LastHandledReconcileAt holds the value of the most recent 2472 + reconcile request value, so a change of the annotation value 2473 + can be detected. 2474 + type: string 2475 + observedGeneration: 2476 + description: ObservedGeneration is the last observed generation. 2477 + format: int64 2478 + type: integer 2479 + observedIgnore: 2480 + description: |- 2481 + ObservedIgnore is the observed exclusion patterns used for constructing 2482 + the source artifact. 2483 + type: string 2484 + observedLayerSelector: 2485 + description: |- 2486 + ObservedLayerSelector is the observed layer selector used for constructing 2487 + the source artifact. 2488 + properties: 2489 + mediaType: 2402 2490 description: |- 2403 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 2404 - Producers of specific condition types may define expected values and meanings for this field, 2405 - and whether the values are considered a guaranteed API. 2406 - The value should be a CamelCase string. 2407 - This field may not be empty. 2408 - maxLength: 1024 2409 - minLength: 1 2410 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 2491 + MediaType specifies the OCI media type of the layer 2492 + which should be extracted from the OCI Artifact. The 2493 + first layer matching this type is selected. 2411 2494 type: string 2412 - status: 2413 - description: status of the condition, one of True, False, Unknown. 2495 + operation: 2496 + description: |- 2497 + Operation specifies how the selected layer should be processed. 2498 + By default, the layer compressed content is extracted to storage. 2499 + When the operation is set to 'copy', the layer compressed content 2500 + is persisted to storage as it is. 2414 2501 enum: 2415 - - "True" 2416 - - "False" 2417 - - Unknown 2502 + - extract 2503 + - copy 2418 2504 type: string 2419 - type: 2420 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 2421 - maxLength: 316 2422 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 2423 - type: string 2424 - required: 2425 - - lastTransitionTime 2426 - - message 2427 - - reason 2428 - - status 2429 - - type 2430 2505 type: object 2431 - type: array 2432 - lastHandledReconcileAt: 2433 - description: |- 2434 - LastHandledReconcileAt holds the value of the most recent 2435 - reconcile request value, so a change of the annotation value 2436 - can be detected. 2437 - type: string 2438 - observedGeneration: 2439 - description: ObservedGeneration is the last observed generation. 2440 - format: int64 2441 - type: integer 2442 - observedIgnore: 2443 - description: |- 2444 - ObservedIgnore is the observed exclusion patterns used for constructing 2445 - the source artifact. 2446 - type: string 2447 - observedLayerSelector: 2448 - description: |- 2449 - ObservedLayerSelector is the observed layer selector used for constructing 2450 - the source artifact. 2451 - properties: 2452 - mediaType: 2453 - description: |- 2454 - MediaType specifies the OCI media type of the layer 2455 - which should be extracted from the OCI Artifact. The 2456 - first layer matching this type is selected. 2457 - type: string 2458 - operation: 2459 - description: |- 2460 - Operation specifies how the selected layer should be processed. 2461 - By default, the layer compressed content is extracted to storage. 2462 - When the operation is set to 'copy', the layer compressed content 2463 - is persisted to storage as it is. 2464 - enum: 2465 - - extract 2466 - - copy 2467 - type: string 2468 - type: object 2469 - url: 2470 - description: URL is the download link for the artifact output of the 2471 - last OCI Repository sync. 2472 - type: string 2473 - type: object 2474 - type: object 2475 - served: true 2476 - storage: true 2477 - subresources: 2478 - status: {} 2506 + url: 2507 + description: 2508 + URL is the download link for the artifact output of the 2509 + last OCI Repository sync. 2510 + type: string 2511 + type: object 2512 + type: object 2513 + served: true 2514 + storage: true 2515 + subresources: 2516 + status: {} 2479 2517 --- 2480 2518 apiVersion: v1 2481 2519 kind: ServiceAccount ··· 2501 2539 namespace: flux-system 2502 2540 spec: 2503 2541 ports: 2504 - - name: http 2505 - port: 80 2506 - protocol: TCP 2507 - targetPort: http 2542 + - name: http 2543 + port: 80 2544 + protocol: TCP 2545 + targetPort: http 2508 2546 selector: 2509 2547 app: source-controller 2510 2548 type: ClusterIP ··· 2540 2578 app.kubernetes.io/version: v2.8.8 2541 2579 spec: 2542 2580 containers: 2543 - - args: 2544 - - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 2545 - - --watch-all-namespaces=true 2546 - - --log-level=info 2547 - - --log-encoding=json 2548 - - --enable-leader-election 2549 - - --storage-path=/data 2550 - - --storage-adv-addr=source-controller.$(RUNTIME_NAMESPACE).svc.cluster.local. 2551 - env: 2552 - - name: RUNTIME_NAMESPACE 2553 - valueFrom: 2554 - fieldRef: 2555 - fieldPath: metadata.namespace 2556 - - name: TUF_ROOT 2557 - value: /tmp/.sigstore 2558 - - name: GOMEMLIMIT 2559 - valueFrom: 2560 - resourceFieldRef: 2561 - containerName: manager 2562 - resource: limits.memory 2563 - image: ghcr.io/fluxcd/source-controller:v1.8.5 2564 - imagePullPolicy: IfNotPresent 2565 - livenessProbe: 2566 - httpGet: 2567 - path: /healthz 2568 - port: healthz 2569 - name: manager 2570 - ports: 2571 - - containerPort: 9090 2572 - name: http 2573 - protocol: TCP 2574 - - containerPort: 8080 2575 - name: http-prom 2576 - protocol: TCP 2577 - - containerPort: 9440 2578 - name: healthz 2579 - protocol: TCP 2580 - readinessProbe: 2581 - httpGet: 2582 - path: / 2583 - port: http 2584 - resources: 2585 - limits: 2586 - cpu: 1000m 2587 - memory: 1Gi 2588 - requests: 2589 - cpu: 50m 2590 - memory: 64Mi 2591 - securityContext: 2592 - allowPrivilegeEscalation: false 2593 - capabilities: 2594 - drop: 2595 - - ALL 2596 - readOnlyRootFilesystem: true 2597 - runAsNonRoot: true 2598 - seccompProfile: 2599 - type: RuntimeDefault 2600 - volumeMounts: 2601 - - mountPath: /data 2602 - name: data 2603 - - mountPath: /tmp 2604 - name: tmp 2581 + - args: 2582 + - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 2583 + - --watch-all-namespaces=true 2584 + - --log-level=info 2585 + - --log-encoding=json 2586 + - --enable-leader-election 2587 + - --storage-path=/data 2588 + - --storage-adv-addr=source-controller.$(RUNTIME_NAMESPACE).svc.cluster.local. 2589 + env: 2590 + - name: RUNTIME_NAMESPACE 2591 + valueFrom: 2592 + fieldRef: 2593 + fieldPath: metadata.namespace 2594 + - name: TUF_ROOT 2595 + value: /tmp/.sigstore 2596 + - name: GOMEMLIMIT 2597 + valueFrom: 2598 + resourceFieldRef: 2599 + containerName: manager 2600 + resource: limits.memory 2601 + image: ghcr.io/fluxcd/source-controller:v1.8.5 2602 + imagePullPolicy: IfNotPresent 2603 + livenessProbe: 2604 + httpGet: 2605 + path: /healthz 2606 + port: healthz 2607 + name: manager 2608 + ports: 2609 + - containerPort: 9090 2610 + name: http 2611 + protocol: TCP 2612 + - containerPort: 8080 2613 + name: http-prom 2614 + protocol: TCP 2615 + - containerPort: 9440 2616 + name: healthz 2617 + protocol: TCP 2618 + readinessProbe: 2619 + httpGet: 2620 + path: / 2621 + port: http 2622 + resources: 2623 + limits: 2624 + cpu: 1000m 2625 + memory: 1Gi 2626 + requests: 2627 + cpu: 50m 2628 + memory: 64Mi 2629 + securityContext: 2630 + allowPrivilegeEscalation: false 2631 + capabilities: 2632 + drop: 2633 + - ALL 2634 + readOnlyRootFilesystem: true 2635 + runAsNonRoot: true 2636 + seccompProfile: 2637 + type: RuntimeDefault 2638 + volumeMounts: 2639 + - mountPath: /data 2640 + name: data 2641 + - mountPath: /tmp 2642 + name: tmp 2605 2643 nodeSelector: 2606 2644 kubernetes.io/os: linux 2607 2645 priorityClassName: system-cluster-critical ··· 2610 2648 serviceAccountName: source-controller 2611 2649 terminationGracePeriodSeconds: 10 2612 2650 volumes: 2613 - - emptyDir: {} 2614 - name: data 2615 - - emptyDir: {} 2616 - name: tmp 2651 + - emptyDir: {} 2652 + name: data 2653 + - emptyDir: {} 2654 + name: tmp 2617 2655 --- 2618 2656 apiVersion: apiextensions.k8s.io/v1 2619 2657 kind: CustomResourceDefinition ··· 2633 2671 listKind: KustomizationList 2634 2672 plural: kustomizations 2635 2673 shortNames: 2636 - - ks 2674 + - ks 2637 2675 singular: kustomization 2638 2676 scope: Namespaced 2639 2677 versions: 2640 - - additionalPrinterColumns: 2641 - - jsonPath: .metadata.creationTimestamp 2642 - name: Age 2643 - type: date 2644 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 2645 - name: Ready 2646 - type: string 2647 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 2648 - name: Status 2649 - type: string 2650 - name: v1 2651 - schema: 2652 - openAPIV3Schema: 2653 - description: Kustomization is the Schema for the kustomizations API. 2654 - properties: 2655 - apiVersion: 2656 - description: |- 2657 - APIVersion defines the versioned schema of this representation of an object. 2658 - Servers should convert recognized schemas to the latest internal value, and 2659 - may reject unrecognized values. 2660 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 2661 - type: string 2662 - kind: 2663 - description: |- 2664 - Kind is a string value representing the REST resource this object represents. 2665 - Servers may infer this from the endpoint the client submits requests to. 2666 - Cannot be updated. 2667 - In CamelCase. 2668 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 2669 - type: string 2670 - metadata: 2671 - type: object 2672 - spec: 2673 - description: |- 2674 - KustomizationSpec defines the configuration to calculate the desired state 2675 - from a Source using Kustomize. 2676 - properties: 2677 - commonMetadata: 2678 - description: |- 2679 - CommonMetadata specifies the common labels and annotations that are 2680 - applied to all resources. Any existing label or annotation will be 2681 - overridden if its key matches a common one. 2682 - properties: 2683 - annotations: 2684 - additionalProperties: 2678 + - additionalPrinterColumns: 2679 + - jsonPath: .metadata.creationTimestamp 2680 + name: Age 2681 + type: date 2682 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 2683 + name: Ready 2684 + type: string 2685 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 2686 + name: Status 2687 + type: string 2688 + name: v1 2689 + schema: 2690 + openAPIV3Schema: 2691 + description: Kustomization is the Schema for the kustomizations API. 2692 + properties: 2693 + apiVersion: 2694 + description: |- 2695 + APIVersion defines the versioned schema of this representation of an object. 2696 + Servers should convert recognized schemas to the latest internal value, and 2697 + may reject unrecognized values. 2698 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 2699 + type: string 2700 + kind: 2701 + description: |- 2702 + Kind is a string value representing the REST resource this object represents. 2703 + Servers may infer this from the endpoint the client submits requests to. 2704 + Cannot be updated. 2705 + In CamelCase. 2706 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 2707 + type: string 2708 + metadata: 2709 + type: object 2710 + spec: 2711 + description: |- 2712 + KustomizationSpec defines the configuration to calculate the desired state 2713 + from a Source using Kustomize. 2714 + properties: 2715 + commonMetadata: 2716 + description: |- 2717 + CommonMetadata specifies the common labels and annotations that are 2718 + applied to all resources. Any existing label or annotation will be 2719 + overridden if its key matches a common one. 2720 + properties: 2721 + annotations: 2722 + additionalProperties: 2723 + type: string 2724 + description: Annotations to be added to the object's metadata. 2725 + type: object 2726 + labels: 2727 + additionalProperties: 2728 + type: string 2729 + description: Labels to be added to the object's metadata. 2730 + type: object 2731 + type: object 2732 + components: 2733 + description: Components specifies relative paths to kustomize Components. 2734 + items: 2735 + type: string 2736 + type: array 2737 + decryption: 2738 + description: 2739 + Decrypt Kubernetes secrets before applying them on the 2740 + cluster. 2741 + properties: 2742 + provider: 2743 + description: Provider is the name of the decryption engine. 2744 + enum: 2745 + - sops 2685 2746 type: string 2686 - description: Annotations to be added to the object's metadata. 2687 - type: object 2688 - labels: 2689 - additionalProperties: 2747 + secretRef: 2748 + description: |- 2749 + The secret name containing the private OpenPGP keys used for decryption. 2750 + A static credential for a cloud provider defined inside the Secret 2751 + takes priority to secret-less authentication with the ServiceAccountName 2752 + field. 2753 + properties: 2754 + name: 2755 + description: Name of the referent. 2756 + type: string 2757 + required: 2758 + - name 2759 + type: object 2760 + serviceAccountName: 2761 + description: |- 2762 + ServiceAccountName is the name of the service account used to 2763 + authenticate with KMS services from cloud providers. If a 2764 + static credential for a given cloud provider is defined 2765 + inside the Secret referenced by SecretRef, that static 2766 + credential takes priority. 2690 2767 type: string 2691 - description: Labels to be added to the object's metadata. 2692 - type: object 2693 - type: object 2694 - components: 2695 - description: Components specifies relative paths to kustomize Components. 2696 - items: 2768 + required: 2769 + - provider 2770 + type: object 2771 + deletionPolicy: 2772 + description: |- 2773 + DeletionPolicy can be used to control garbage collection when this 2774 + Kustomization is deleted. Valid values are ('MirrorPrune', 'Delete', 2775 + 'WaitForTermination', 'Orphan'). 'MirrorPrune' mirrors the Prune field 2776 + (orphan if false, delete if true). Defaults to 'MirrorPrune'. 2777 + enum: 2778 + - MirrorPrune 2779 + - Delete 2780 + - WaitForTermination 2781 + - Orphan 2697 2782 type: string 2698 - type: array 2699 - decryption: 2700 - description: Decrypt Kubernetes secrets before applying them on the 2701 - cluster. 2702 - properties: 2703 - provider: 2704 - description: Provider is the name of the decryption engine. 2705 - enum: 2706 - - sops 2707 - type: string 2708 - secretRef: 2709 - description: |- 2710 - The secret name containing the private OpenPGP keys used for decryption. 2711 - A static credential for a cloud provider defined inside the Secret 2712 - takes priority to secret-less authentication with the ServiceAccountName 2713 - field. 2783 + dependsOn: 2784 + description: |- 2785 + DependsOn may contain a DependencyReference slice 2786 + with references to Kustomization resources that must be ready before this 2787 + Kustomization can be reconciled. 2788 + items: 2789 + description: 2790 + DependencyReference defines a Kustomization dependency 2791 + on another Kustomization resource. 2714 2792 properties: 2715 2793 name: 2716 2794 description: Name of the referent. 2717 2795 type: string 2796 + namespace: 2797 + description: |- 2798 + Namespace of the referent, defaults to the namespace of the Kustomization 2799 + resource object that contains the reference. 2800 + type: string 2801 + readyExpr: 2802 + description: |- 2803 + ReadyExpr is a CEL expression that can be used to assess the readiness 2804 + of a dependency. When specified, the built-in readiness check 2805 + is replaced by the logic defined in the CEL expression. 2806 + To make the CEL expression additive to the built-in readiness check, 2807 + the feature gate `AdditiveCELDependencyCheck` must be set to `true`. 2808 + type: string 2718 2809 required: 2719 - - name 2810 + - name 2720 2811 type: object 2721 - serviceAccountName: 2722 - description: |- 2723 - ServiceAccountName is the name of the service account used to 2724 - authenticate with KMS services from cloud providers. If a 2725 - static credential for a given cloud provider is defined 2726 - inside the Secret referenced by SecretRef, that static 2727 - credential takes priority. 2728 - type: string 2729 - required: 2730 - - provider 2731 - type: object 2732 - deletionPolicy: 2733 - description: |- 2734 - DeletionPolicy can be used to control garbage collection when this 2735 - Kustomization is deleted. Valid values are ('MirrorPrune', 'Delete', 2736 - 'WaitForTermination', 'Orphan'). 'MirrorPrune' mirrors the Prune field 2737 - (orphan if false, delete if true). Defaults to 'MirrorPrune'. 2738 - enum: 2739 - - MirrorPrune 2740 - - Delete 2741 - - WaitForTermination 2742 - - Orphan 2743 - type: string 2744 - dependsOn: 2745 - description: |- 2746 - DependsOn may contain a DependencyReference slice 2747 - with references to Kustomization resources that must be ready before this 2748 - Kustomization can be reconciled. 2749 - items: 2750 - description: DependencyReference defines a Kustomization dependency 2751 - on another Kustomization resource. 2752 - properties: 2753 - name: 2754 - description: Name of the referent. 2755 - type: string 2756 - namespace: 2757 - description: |- 2758 - Namespace of the referent, defaults to the namespace of the Kustomization 2759 - resource object that contains the reference. 2760 - type: string 2761 - readyExpr: 2762 - description: |- 2763 - ReadyExpr is a CEL expression that can be used to assess the readiness 2764 - of a dependency. When specified, the built-in readiness check 2765 - is replaced by the logic defined in the CEL expression. 2766 - To make the CEL expression additive to the built-in readiness check, 2767 - the feature gate `AdditiveCELDependencyCheck` must be set to `true`. 2768 - type: string 2769 - required: 2770 - - name 2771 - type: object 2772 - type: array 2773 - force: 2774 - default: false 2775 - description: |- 2776 - Force instructs the controller to recreate resources 2777 - when patching fails due to an immutable field change. 2778 - type: boolean 2779 - healthCheckExprs: 2780 - description: |- 2781 - HealthCheckExprs is a list of healthcheck expressions for evaluating the 2782 - health of custom resources using Common Expression Language (CEL). 2783 - The expressions are evaluated only when Wait or HealthChecks are specified. 2784 - items: 2785 - description: CustomHealthCheck defines the health check for custom 2786 - resources. 2787 - properties: 2788 - apiVersion: 2789 - description: APIVersion of the custom resource under evaluation. 2790 - type: string 2791 - current: 2792 - description: |- 2793 - Current is the CEL expression that determines if the status 2794 - of the custom resource has reached the desired state. 2795 - type: string 2796 - failed: 2797 - description: |- 2798 - Failed is the CEL expression that determines if the status 2799 - of the custom resource has failed to reach the desired state. 2800 - type: string 2801 - inProgress: 2802 - description: |- 2803 - InProgress is the CEL expression that determines if the status 2804 - of the custom resource has not yet reached the desired state. 2805 - type: string 2806 - kind: 2807 - description: Kind of the custom resource under evaluation. 2808 - type: string 2809 - required: 2810 - - apiVersion 2811 - - current 2812 - - kind 2813 - type: object 2814 - type: array 2815 - healthChecks: 2816 - description: A list of resources to be included in the health assessment. 2817 - items: 2812 + type: array 2813 + force: 2814 + default: false 2815 + description: |- 2816 + Force instructs the controller to recreate resources 2817 + when patching fails due to an immutable field change. 2818 + type: boolean 2819 + healthCheckExprs: 2818 2820 description: |- 2819 - NamespacedObjectKindReference contains enough information to locate the typed referenced Kubernetes resource object 2820 - in any namespace. 2821 - properties: 2822 - apiVersion: 2823 - description: API version of the referent, if not specified the 2824 - Kubernetes preferred version will be used. 2825 - type: string 2826 - kind: 2827 - description: Kind of the referent. 2828 - type: string 2829 - name: 2830 - description: Name of the referent. 2831 - type: string 2832 - namespace: 2833 - description: Namespace of the referent, when not specified it 2834 - acts as LocalObjectReference. 2835 - type: string 2836 - required: 2837 - - kind 2838 - - name 2839 - type: object 2840 - type: array 2841 - ignoreMissingComponents: 2842 - description: |- 2843 - IgnoreMissingComponents instructs the controller to ignore Components paths 2844 - not found in source by removing them from the generated kustomization.yaml 2845 - before running kustomize build. 2846 - type: boolean 2847 - images: 2848 - description: |- 2849 - Images is a list of (image name, new name, new tag or digest) 2850 - for changing image names, tags or digests. This can also be achieved with a 2851 - patch, but this operator is simpler to specify. 2852 - items: 2853 - description: Image contains an image name, a new name, a new tag 2854 - or digest, which will replace the original name and tag. 2855 - properties: 2856 - digest: 2857 - description: |- 2858 - Digest is the value used to replace the original image tag. 2859 - If digest is present NewTag value is ignored. 2860 - type: string 2861 - name: 2862 - description: Name is a tag-less image name. 2863 - type: string 2864 - newName: 2865 - description: NewName is the value used to replace the original 2866 - name. 2867 - type: string 2868 - newTag: 2869 - description: NewTag is the value used to replace the original 2870 - tag. 2871 - type: string 2872 - required: 2873 - - name 2874 - type: object 2875 - type: array 2876 - interval: 2877 - description: |- 2878 - The interval at which to reconcile the Kustomization. 2879 - This interval is approximate and may be subject to jitter to ensure 2880 - efficient use of resources. 2881 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 2882 - type: string 2883 - kubeConfig: 2884 - description: |- 2885 - The KubeConfig for reconciling the Kustomization on a remote cluster. 2886 - When used in combination with KustomizationSpec.ServiceAccountName, 2887 - forces the controller to act on behalf of that Service Account at the 2888 - target cluster. 2889 - If the --default-service-account flag is set, its value will be used as 2890 - a controller level fallback for when KustomizationSpec.ServiceAccountName 2891 - is empty. 2892 - properties: 2893 - configMapRef: 2821 + HealthCheckExprs is a list of healthcheck expressions for evaluating the 2822 + health of custom resources using Common Expression Language (CEL). 2823 + The expressions are evaluated only when Wait or HealthChecks are specified. 2824 + items: 2825 + description: 2826 + CustomHealthCheck defines the health check for custom 2827 + resources. 2828 + properties: 2829 + apiVersion: 2830 + description: APIVersion of the custom resource under evaluation. 2831 + type: string 2832 + current: 2833 + description: |- 2834 + Current is the CEL expression that determines if the status 2835 + of the custom resource has reached the desired state. 2836 + type: string 2837 + failed: 2838 + description: |- 2839 + Failed is the CEL expression that determines if the status 2840 + of the custom resource has failed to reach the desired state. 2841 + type: string 2842 + inProgress: 2843 + description: |- 2844 + InProgress is the CEL expression that determines if the status 2845 + of the custom resource has not yet reached the desired state. 2846 + type: string 2847 + kind: 2848 + description: Kind of the custom resource under evaluation. 2849 + type: string 2850 + required: 2851 + - apiVersion 2852 + - current 2853 + - kind 2854 + type: object 2855 + type: array 2856 + healthChecks: 2857 + description: A list of resources to be included in the health assessment. 2858 + items: 2894 2859 description: |- 2895 - ConfigMapRef holds an optional name of a ConfigMap that contains 2896 - the following keys: 2897 - 2898 - - `provider`: the provider to use. One of `aws`, `azure`, `gcp`, or 2899 - `generic`. Required. 2900 - - `cluster`: the fully qualified resource name of the Kubernetes 2901 - cluster in the cloud provider API. Not used by the `generic` 2902 - provider. Required when one of `address` or `ca.crt` is not set. 2903 - - `address`: the address of the Kubernetes API server. Required 2904 - for `generic`. For the other providers, if not specified, the 2905 - first address in the cluster resource will be used, and if 2906 - specified, it must match one of the addresses in the cluster 2907 - resource. 2908 - If audiences is not set, will be used as the audience for the 2909 - `generic` provider. 2910 - - `ca.crt`: the optional PEM-encoded CA certificate for the 2911 - Kubernetes API server. If not set, the controller will use the 2912 - CA certificate from the cluster resource. 2913 - - `audiences`: the optional audiences as a list of 2914 - line-break-separated strings for the Kubernetes ServiceAccount 2915 - token. Defaults to the `address` for the `generic` provider, or 2916 - to specific values for the other providers depending on the 2917 - provider. 2918 - - `serviceAccountName`: the optional name of the Kubernetes 2919 - ServiceAccount in the same namespace that should be used 2920 - for authentication. If not specified, the controller 2921 - ServiceAccount will be used. 2922 - 2923 - Mutually exclusive with SecretRef. 2860 + NamespacedObjectKindReference contains enough information to locate the typed referenced Kubernetes resource object 2861 + in any namespace. 2924 2862 properties: 2863 + apiVersion: 2864 + description: 2865 + API version of the referent, if not specified the 2866 + Kubernetes preferred version will be used. 2867 + type: string 2868 + kind: 2869 + description: Kind of the referent. 2870 + type: string 2925 2871 name: 2926 2872 description: Name of the referent. 2927 2873 type: string 2874 + namespace: 2875 + description: 2876 + Namespace of the referent, when not specified it 2877 + acts as LocalObjectReference. 2878 + type: string 2928 2879 required: 2929 - - name 2880 + - kind 2881 + - name 2930 2882 type: object 2931 - secretRef: 2932 - description: |- 2933 - SecretRef holds an optional name of a secret that contains a key with 2934 - the kubeconfig file as the value. If no key is set, the key will default 2935 - to 'value'. Mutually exclusive with ConfigMapRef. 2936 - It is recommended that the kubeconfig is self-contained, and the secret 2937 - is regularly updated if credentials such as a cloud-access-token expire. 2938 - Cloud specific `cmd-path` auth helpers will not function without adding 2939 - binaries and credentials to the Pod that is responsible for reconciling 2940 - Kubernetes resources. Supported only for the generic provider. 2883 + type: array 2884 + ignoreMissingComponents: 2885 + description: |- 2886 + IgnoreMissingComponents instructs the controller to ignore Components paths 2887 + not found in source by removing them from the generated kustomization.yaml 2888 + before running kustomize build. 2889 + type: boolean 2890 + images: 2891 + description: |- 2892 + Images is a list of (image name, new name, new tag or digest) 2893 + for changing image names, tags or digests. This can also be achieved with a 2894 + patch, but this operator is simpler to specify. 2895 + items: 2896 + description: 2897 + Image contains an image name, a new name, a new tag 2898 + or digest, which will replace the original name and tag. 2941 2899 properties: 2942 - key: 2943 - description: Key in the Secret, when not specified an implementation-specific 2944 - default key is used. 2900 + digest: 2901 + description: |- 2902 + Digest is the value used to replace the original image tag. 2903 + If digest is present NewTag value is ignored. 2945 2904 type: string 2946 2905 name: 2947 - description: Name of the Secret. 2906 + description: Name is a tag-less image name. 2907 + type: string 2908 + newName: 2909 + description: 2910 + NewName is the value used to replace the original 2911 + name. 2912 + type: string 2913 + newTag: 2914 + description: 2915 + NewTag is the value used to replace the original 2916 + tag. 2948 2917 type: string 2949 2918 required: 2950 - - name 2919 + - name 2951 2920 type: object 2952 - type: object 2953 - x-kubernetes-validations: 2954 - - message: exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 2955 - must be specified 2956 - rule: has(self.configMapRef) || has(self.secretRef) 2957 - - message: exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 2958 - must be specified 2959 - rule: '!has(self.configMapRef) || !has(self.secretRef)' 2960 - namePrefix: 2961 - description: NamePrefix will prefix the names of all managed resources. 2962 - maxLength: 200 2963 - minLength: 1 2964 - type: string 2965 - nameSuffix: 2966 - description: NameSuffix will suffix the names of all managed resources. 2967 - maxLength: 200 2968 - minLength: 1 2969 - type: string 2970 - patches: 2971 - description: |- 2972 - Strategic merge and JSON patches, defined as inline YAML objects, 2973 - capable of targeting objects based on kind, label and annotation selectors. 2974 - items: 2921 + type: array 2922 + interval: 2923 + description: |- 2924 + The interval at which to reconcile the Kustomization. 2925 + This interval is approximate and may be subject to jitter to ensure 2926 + efficient use of resources. 2927 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 2928 + type: string 2929 + kubeConfig: 2975 2930 description: |- 2976 - Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should 2977 - be applied to. 2931 + The KubeConfig for reconciling the Kustomization on a remote cluster. 2932 + When used in combination with KustomizationSpec.ServiceAccountName, 2933 + forces the controller to act on behalf of that Service Account at the 2934 + target cluster. 2935 + If the --default-service-account flag is set, its value will be used as 2936 + a controller level fallback for when KustomizationSpec.ServiceAccountName 2937 + is empty. 2978 2938 properties: 2979 - patch: 2939 + configMapRef: 2980 2940 description: |- 2981 - Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with 2982 - an array of operation objects. 2983 - type: string 2984 - target: 2985 - description: Target points to the resources that the patch document 2986 - should be applied to. 2941 + ConfigMapRef holds an optional name of a ConfigMap that contains 2942 + the following keys: 2943 + 2944 + - `provider`: the provider to use. One of `aws`, `azure`, `gcp`, or 2945 + `generic`. Required. 2946 + - `cluster`: the fully qualified resource name of the Kubernetes 2947 + cluster in the cloud provider API. Not used by the `generic` 2948 + provider. Required when one of `address` or `ca.crt` is not set. 2949 + - `address`: the address of the Kubernetes API server. Required 2950 + for `generic`. For the other providers, if not specified, the 2951 + first address in the cluster resource will be used, and if 2952 + specified, it must match one of the addresses in the cluster 2953 + resource. 2954 + If audiences is not set, will be used as the audience for the 2955 + `generic` provider. 2956 + - `ca.crt`: the optional PEM-encoded CA certificate for the 2957 + Kubernetes API server. If not set, the controller will use the 2958 + CA certificate from the cluster resource. 2959 + - `audiences`: the optional audiences as a list of 2960 + line-break-separated strings for the Kubernetes ServiceAccount 2961 + token. Defaults to the `address` for the `generic` provider, or 2962 + to specific values for the other providers depending on the 2963 + provider. 2964 + - `serviceAccountName`: the optional name of the Kubernetes 2965 + ServiceAccount in the same namespace that should be used 2966 + for authentication. If not specified, the controller 2967 + ServiceAccount will be used. 2968 + 2969 + Mutually exclusive with SecretRef. 2987 2970 properties: 2988 - annotationSelector: 2989 - description: |- 2990 - AnnotationSelector is a string that follows the label selection expression 2991 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 2992 - It matches with the resource annotations. 2993 - type: string 2994 - group: 2995 - description: |- 2996 - Group is the API group to select resources from. 2997 - Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 2998 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 2999 - type: string 3000 - kind: 3001 - description: |- 3002 - Kind of the API Group to select resources from. 3003 - Together with Group and Version it is capable of unambiguously 3004 - identifying and/or selecting resources. 3005 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3006 - type: string 3007 - labelSelector: 3008 - description: |- 3009 - LabelSelector is a string that follows the label selection expression 3010 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3011 - It matches with the resource labels. 3012 - type: string 3013 2971 name: 3014 - description: Name to match resources with. 2972 + description: Name of the referent. 3015 2973 type: string 3016 - namespace: 3017 - description: Namespace to select resources from. 3018 - type: string 3019 - version: 3020 - description: |- 3021 - Version of the API Group to select resources from. 3022 - Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 3023 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3024 - type: string 2974 + required: 2975 + - name 3025 2976 type: object 3026 - required: 3027 - - patch 3028 - type: object 3029 - type: array 3030 - path: 3031 - description: |- 3032 - Path to the directory containing the kustomization.yaml file, or the 3033 - set of plain YAMLs a kustomization.yaml should be generated for. 3034 - Defaults to 'None', which translates to the root path of the SourceRef. 3035 - type: string 3036 - postBuild: 3037 - description: |- 3038 - PostBuild describes which actions to perform on the YAML manifest 3039 - generated by building the kustomize overlay. 3040 - properties: 3041 - substitute: 3042 - additionalProperties: 3043 - type: string 3044 - description: |- 3045 - Substitute holds a map of key/value pairs. 3046 - The variables defined in your YAML manifests that match any of the keys 3047 - defined in the map will be substituted with the set value. 3048 - Includes support for bash string replacement functions 3049 - e.g. ${var:=default}, ${var:position} and ${var/substring/replacement}. 3050 - type: object 3051 - substituteFrom: 3052 - description: |- 3053 - SubstituteFrom holds references to ConfigMaps and Secrets containing 3054 - the variables and their values to be substituted in the YAML manifests. 3055 - The ConfigMap and the Secret data keys represent the var names, and they 3056 - must match the vars declared in the manifests for the substitution to 3057 - happen. 3058 - items: 2977 + secretRef: 3059 2978 description: |- 3060 - SubstituteReference contains a reference to a resource containing 3061 - the variables name and value. 2979 + SecretRef holds an optional name of a secret that contains a key with 2980 + the kubeconfig file as the value. If no key is set, the key will default 2981 + to 'value'. Mutually exclusive with ConfigMapRef. 2982 + It is recommended that the kubeconfig is self-contained, and the secret 2983 + is regularly updated if credentials such as a cloud-access-token expire. 2984 + Cloud specific `cmd-path` auth helpers will not function without adding 2985 + binaries and credentials to the Pod that is responsible for reconciling 2986 + Kubernetes resources. Supported only for the generic provider. 3062 2987 properties: 3063 - kind: 3064 - description: Kind of the values referent, valid values are 3065 - ('Secret', 'ConfigMap'). 3066 - enum: 3067 - - Secret 3068 - - ConfigMap 2988 + key: 2989 + description: 2990 + Key in the Secret, when not specified an implementation-specific 2991 + default key is used. 3069 2992 type: string 3070 2993 name: 3071 - description: |- 3072 - Name of the values referent. Should reside in the same namespace as the 3073 - referring resource. 3074 - maxLength: 253 3075 - minLength: 1 2994 + description: Name of the Secret. 3076 2995 type: string 3077 - optional: 3078 - default: false 3079 - description: |- 3080 - Optional indicates whether the referenced resource must exist, or whether to 3081 - tolerate its absence. If true and the referenced resource is absent, proceed 3082 - as if the resource was present but empty, without any variables defined. 3083 - type: boolean 3084 2996 required: 3085 - - kind 3086 - - name 2997 + - name 3087 2998 type: object 3088 - type: array 3089 - type: object 3090 - prune: 3091 - description: Prune enables garbage collection. 3092 - type: boolean 3093 - retryInterval: 3094 - description: |- 3095 - The interval at which to retry a previously failed reconciliation. 3096 - When not specified, the controller uses the KustomizationSpec.Interval 3097 - value to retry failures. 3098 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3099 - type: string 3100 - serviceAccountName: 3101 - description: |- 3102 - The name of the Kubernetes service account to impersonate 3103 - when reconciling this Kustomization. 3104 - type: string 3105 - sourceRef: 3106 - description: Reference of the source where the kustomization file 3107 - is. 3108 - properties: 3109 - apiVersion: 3110 - description: API version of the referent. 3111 - type: string 3112 - kind: 3113 - description: Kind of the referent. 3114 - enum: 3115 - - OCIRepository 3116 - - GitRepository 3117 - - Bucket 3118 - - ExternalArtifact 3119 - type: string 3120 - name: 3121 - description: Name of the referent. 3122 - type: string 3123 - namespace: 2999 + type: object 3000 + x-kubernetes-validations: 3001 + - message: 3002 + exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 3003 + must be specified 3004 + rule: has(self.configMapRef) || has(self.secretRef) 3005 + - message: 3006 + exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 3007 + must be specified 3008 + rule: "!has(self.configMapRef) || !has(self.secretRef)" 3009 + namePrefix: 3010 + description: NamePrefix will prefix the names of all managed resources. 3011 + maxLength: 200 3012 + minLength: 1 3013 + type: string 3014 + nameSuffix: 3015 + description: NameSuffix will suffix the names of all managed resources. 3016 + maxLength: 200 3017 + minLength: 1 3018 + type: string 3019 + patches: 3020 + description: |- 3021 + Strategic merge and JSON patches, defined as inline YAML objects, 3022 + capable of targeting objects based on kind, label and annotation selectors. 3023 + items: 3124 3024 description: |- 3125 - Namespace of the referent, defaults to the namespace of the Kubernetes 3126 - resource object that contains the reference. 3127 - type: string 3128 - required: 3129 - - kind 3130 - - name 3131 - type: object 3132 - suspend: 3133 - description: |- 3134 - This flag tells the controller to suspend subsequent kustomize executions, 3135 - it does not apply to already started executions. Defaults to false. 3136 - type: boolean 3137 - targetNamespace: 3138 - description: |- 3139 - TargetNamespace sets or overrides the namespace in the 3140 - kustomization.yaml file. 3141 - maxLength: 63 3142 - minLength: 1 3143 - type: string 3144 - timeout: 3145 - description: |- 3146 - Timeout for validation, apply and health checking operations. 3147 - Defaults to 'Interval' duration. 3148 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3149 - type: string 3150 - wait: 3151 - description: |- 3152 - Wait instructs the controller to check the health of all the reconciled 3153 - resources. When enabled, the HealthChecks are ignored. Defaults to false. 3154 - type: boolean 3155 - required: 3156 - - interval 3157 - - prune 3158 - - sourceRef 3159 - type: object 3160 - status: 3161 - default: 3162 - observedGeneration: -1 3163 - description: KustomizationStatus defines the observed state of a kustomization. 3164 - properties: 3165 - conditions: 3166 - items: 3167 - description: Condition contains details for one aspect of the current 3168 - state of this API Resource. 3025 + Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should 3026 + be applied to. 3027 + properties: 3028 + patch: 3029 + description: |- 3030 + Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with 3031 + an array of operation objects. 3032 + type: string 3033 + target: 3034 + description: 3035 + Target points to the resources that the patch document 3036 + should be applied to. 3037 + properties: 3038 + annotationSelector: 3039 + description: |- 3040 + AnnotationSelector is a string that follows the label selection expression 3041 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3042 + It matches with the resource annotations. 3043 + type: string 3044 + group: 3045 + description: |- 3046 + Group is the API group to select resources from. 3047 + Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 3048 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3049 + type: string 3050 + kind: 3051 + description: |- 3052 + Kind of the API Group to select resources from. 3053 + Together with Group and Version it is capable of unambiguously 3054 + identifying and/or selecting resources. 3055 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3056 + type: string 3057 + labelSelector: 3058 + description: |- 3059 + LabelSelector is a string that follows the label selection expression 3060 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3061 + It matches with the resource labels. 3062 + type: string 3063 + name: 3064 + description: Name to match resources with. 3065 + type: string 3066 + namespace: 3067 + description: Namespace to select resources from. 3068 + type: string 3069 + version: 3070 + description: |- 3071 + Version of the API Group to select resources from. 3072 + Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 3073 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3074 + type: string 3075 + type: object 3076 + required: 3077 + - patch 3078 + type: object 3079 + type: array 3080 + path: 3081 + description: |- 3082 + Path to the directory containing the kustomization.yaml file, or the 3083 + set of plain YAMLs a kustomization.yaml should be generated for. 3084 + Defaults to 'None', which translates to the root path of the SourceRef. 3085 + type: string 3086 + postBuild: 3087 + description: |- 3088 + PostBuild describes which actions to perform on the YAML manifest 3089 + generated by building the kustomize overlay. 3169 3090 properties: 3170 - lastTransitionTime: 3091 + substitute: 3092 + additionalProperties: 3093 + type: string 3171 3094 description: |- 3172 - lastTransitionTime is the last time the condition transitioned from one status to another. 3173 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 3174 - format: date-time 3175 - type: string 3176 - message: 3177 - description: |- 3178 - message is a human readable message indicating details about the transition. 3179 - This may be an empty string. 3180 - maxLength: 32768 3181 - type: string 3182 - observedGeneration: 3183 - description: |- 3184 - observedGeneration represents the .metadata.generation that the condition was set based upon. 3185 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 3186 - with respect to the current state of the instance. 3187 - format: int64 3188 - minimum: 0 3189 - type: integer 3190 - reason: 3095 + Substitute holds a map of key/value pairs. 3096 + The variables defined in your YAML manifests that match any of the keys 3097 + defined in the map will be substituted with the set value. 3098 + Includes support for bash string replacement functions 3099 + e.g. ${var:=default}, ${var:position} and ${var/substring/replacement}. 3100 + type: object 3101 + substituteFrom: 3191 3102 description: |- 3192 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 3193 - Producers of specific condition types may define expected values and meanings for this field, 3194 - and whether the values are considered a guaranteed API. 3195 - The value should be a CamelCase string. 3196 - This field may not be empty. 3197 - maxLength: 1024 3198 - minLength: 1 3199 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 3200 - type: string 3201 - status: 3202 - description: status of the condition, one of True, False, Unknown. 3203 - enum: 3204 - - "True" 3205 - - "False" 3206 - - Unknown 3207 - type: string 3208 - type: 3209 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 3210 - maxLength: 316 3211 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 3212 - type: string 3213 - required: 3214 - - lastTransitionTime 3215 - - message 3216 - - reason 3217 - - status 3218 - - type 3103 + SubstituteFrom holds references to ConfigMaps and Secrets containing 3104 + the variables and their values to be substituted in the YAML manifests. 3105 + The ConfigMap and the Secret data keys represent the var names, and they 3106 + must match the vars declared in the manifests for the substitution to 3107 + happen. 3108 + items: 3109 + description: |- 3110 + SubstituteReference contains a reference to a resource containing 3111 + the variables name and value. 3112 + properties: 3113 + kind: 3114 + description: 3115 + Kind of the values referent, valid values are 3116 + ('Secret', 'ConfigMap'). 3117 + enum: 3118 + - Secret 3119 + - ConfigMap 3120 + type: string 3121 + name: 3122 + description: |- 3123 + Name of the values referent. Should reside in the same namespace as the 3124 + referring resource. 3125 + maxLength: 253 3126 + minLength: 1 3127 + type: string 3128 + optional: 3129 + default: false 3130 + description: |- 3131 + Optional indicates whether the referenced resource must exist, or whether to 3132 + tolerate its absence. If true and the referenced resource is absent, proceed 3133 + as if the resource was present but empty, without any variables defined. 3134 + type: boolean 3135 + required: 3136 + - kind 3137 + - name 3138 + type: object 3139 + type: array 3219 3140 type: object 3220 - type: array 3221 - history: 3222 - description: |- 3223 - History contains a set of snapshots of the last reconciliation attempts 3224 - tracking the revision, the state and the duration of each attempt. 3225 - items: 3141 + prune: 3142 + description: Prune enables garbage collection. 3143 + type: boolean 3144 + retryInterval: 3145 + description: |- 3146 + The interval at which to retry a previously failed reconciliation. 3147 + When not specified, the controller uses the KustomizationSpec.Interval 3148 + value to retry failures. 3149 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3150 + type: string 3151 + serviceAccountName: 3226 3152 description: |- 3227 - Snapshot represents a point-in-time record of a group of resources reconciliation, 3228 - including timing information, status, and a unique digest identifier. 3153 + The name of the Kubernetes service account to impersonate 3154 + when reconciling this Kustomization. 3155 + type: string 3156 + sourceRef: 3157 + description: 3158 + Reference of the source where the kustomization file 3159 + is. 3229 3160 properties: 3230 - digest: 3231 - description: Digest is the checksum in the format `<algo>:<hex>` 3232 - of the resources in this snapshot. 3161 + apiVersion: 3162 + description: API version of the referent. 3233 3163 type: string 3234 - firstReconciled: 3235 - description: FirstReconciled is the time when this revision 3236 - was first reconciled to the cluster. 3237 - format: date-time 3164 + kind: 3165 + description: Kind of the referent. 3166 + enum: 3167 + - OCIRepository 3168 + - GitRepository 3169 + - Bucket 3170 + - ExternalArtifact 3238 3171 type: string 3239 - lastReconciled: 3240 - description: LastReconciled is the time when this revision was 3241 - last reconciled to the cluster. 3242 - format: date-time 3243 - type: string 3244 - lastReconciledDuration: 3245 - description: LastReconciledDuration is time it took to reconcile 3246 - the resources in this revision. 3172 + name: 3173 + description: Name of the referent. 3247 3174 type: string 3248 - lastReconciledStatus: 3249 - description: LastReconciledStatus is the status of the last 3250 - reconciliation. 3175 + namespace: 3176 + description: |- 3177 + Namespace of the referent, defaults to the namespace of the Kubernetes 3178 + resource object that contains the reference. 3251 3179 type: string 3252 - metadata: 3253 - additionalProperties: 3254 - type: string 3255 - description: Metadata contains additional information about 3256 - the snapshot. 3257 - type: object 3258 - totalReconciliations: 3259 - description: TotalReconciliations is the total number of reconciliations 3260 - that have occurred for this snapshot. 3261 - format: int64 3262 - type: integer 3263 3180 required: 3264 - - digest 3265 - - firstReconciled 3266 - - lastReconciled 3267 - - lastReconciledDuration 3268 - - lastReconciledStatus 3269 - - totalReconciliations 3181 + - kind 3182 + - name 3270 3183 type: object 3271 - type: array 3272 - inventory: 3273 - description: |- 3274 - Inventory contains the list of Kubernetes resource object references that 3275 - have been successfully applied. 3276 - properties: 3277 - entries: 3278 - description: Entries of Kubernetes resource object references. 3279 - items: 3280 - description: ResourceRef contains the information necessary 3281 - to locate a resource within a cluster. 3282 - properties: 3283 - id: 3284 - description: |- 3285 - ID is the string representation of the Kubernetes resource object's metadata, 3286 - in the format '<namespace>_<name>_<group>_<kind>'. 3287 - type: string 3288 - v: 3289 - description: Version is the API version of the Kubernetes 3290 - resource object's kind. 3184 + suspend: 3185 + description: |- 3186 + This flag tells the controller to suspend subsequent kustomize executions, 3187 + it does not apply to already started executions. Defaults to false. 3188 + type: boolean 3189 + targetNamespace: 3190 + description: |- 3191 + TargetNamespace sets or overrides the namespace in the 3192 + kustomization.yaml file. 3193 + maxLength: 63 3194 + minLength: 1 3195 + type: string 3196 + timeout: 3197 + description: |- 3198 + Timeout for validation, apply and health checking operations. 3199 + Defaults to 'Interval' duration. 3200 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3201 + type: string 3202 + wait: 3203 + description: |- 3204 + Wait instructs the controller to check the health of all the reconciled 3205 + resources. When enabled, the HealthChecks are ignored. Defaults to false. 3206 + type: boolean 3207 + required: 3208 + - interval 3209 + - prune 3210 + - sourceRef 3211 + type: object 3212 + status: 3213 + default: 3214 + observedGeneration: -1 3215 + description: KustomizationStatus defines the observed state of a kustomization. 3216 + properties: 3217 + conditions: 3218 + items: 3219 + description: 3220 + Condition contains details for one aspect of the current 3221 + state of this API Resource. 3222 + properties: 3223 + lastTransitionTime: 3224 + description: |- 3225 + lastTransitionTime is the last time the condition transitioned from one status to another. 3226 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 3227 + format: date-time 3228 + type: string 3229 + message: 3230 + description: |- 3231 + message is a human readable message indicating details about the transition. 3232 + This may be an empty string. 3233 + maxLength: 32768 3234 + type: string 3235 + observedGeneration: 3236 + description: |- 3237 + observedGeneration represents the .metadata.generation that the condition was set based upon. 3238 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 3239 + with respect to the current state of the instance. 3240 + format: int64 3241 + minimum: 0 3242 + type: integer 3243 + reason: 3244 + description: |- 3245 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 3246 + Producers of specific condition types may define expected values and meanings for this field, 3247 + and whether the values are considered a guaranteed API. 3248 + The value should be a CamelCase string. 3249 + This field may not be empty. 3250 + maxLength: 1024 3251 + minLength: 1 3252 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 3253 + type: string 3254 + status: 3255 + description: status of the condition, one of True, False, Unknown. 3256 + enum: 3257 + - "True" 3258 + - "False" 3259 + - Unknown 3260 + type: string 3261 + type: 3262 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 3263 + maxLength: 316 3264 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 3265 + type: string 3266 + required: 3267 + - lastTransitionTime 3268 + - message 3269 + - reason 3270 + - status 3271 + - type 3272 + type: object 3273 + type: array 3274 + history: 3275 + description: |- 3276 + History contains a set of snapshots of the last reconciliation attempts 3277 + tracking the revision, the state and the duration of each attempt. 3278 + items: 3279 + description: |- 3280 + Snapshot represents a point-in-time record of a group of resources reconciliation, 3281 + including timing information, status, and a unique digest identifier. 3282 + properties: 3283 + digest: 3284 + description: 3285 + Digest is the checksum in the format `<algo>:<hex>` 3286 + of the resources in this snapshot. 3287 + type: string 3288 + firstReconciled: 3289 + description: 3290 + FirstReconciled is the time when this revision 3291 + was first reconciled to the cluster. 3292 + format: date-time 3293 + type: string 3294 + lastReconciled: 3295 + description: 3296 + LastReconciled is the time when this revision was 3297 + last reconciled to the cluster. 3298 + format: date-time 3299 + type: string 3300 + lastReconciledDuration: 3301 + description: 3302 + LastReconciledDuration is time it took to reconcile 3303 + the resources in this revision. 3304 + type: string 3305 + lastReconciledStatus: 3306 + description: 3307 + LastReconciledStatus is the status of the last 3308 + reconciliation. 3309 + type: string 3310 + metadata: 3311 + additionalProperties: 3291 3312 type: string 3292 - required: 3293 - - id 3294 - - v 3295 - type: object 3296 - type: array 3297 - required: 3298 - - entries 3299 - type: object 3300 - lastAppliedOriginRevision: 3301 - description: |- 3302 - The last successfully applied origin revision. 3303 - Equals the origin revision of the applied Artifact from the referenced Source. 3304 - Usually present on the Metadata of the applied Artifact and depends on the 3305 - Source type, e.g. for OCI it's the value associated with the key 3306 - "org.opencontainers.image.revision". 3307 - type: string 3308 - lastAppliedRevision: 3309 - description: |- 3310 - The last successfully applied revision. 3311 - Equals the Revision of the applied Artifact from the referenced Source. 3312 - type: string 3313 - lastAttemptedRevision: 3314 - description: LastAttemptedRevision is the revision of the last reconciliation 3315 - attempt. 3316 - type: string 3317 - lastHandledReconcileAt: 3318 - description: |- 3319 - LastHandledReconcileAt holds the value of the most recent 3320 - reconcile request value, so a change of the annotation value 3321 - can be detected. 3322 - type: string 3323 - observedGeneration: 3324 - description: ObservedGeneration is the last reconciled generation. 3325 - format: int64 3326 - type: integer 3327 - type: object 3328 - type: object 3329 - served: true 3330 - storage: true 3331 - subresources: 3332 - status: {} 3313 + description: 3314 + Metadata contains additional information about 3315 + the snapshot. 3316 + type: object 3317 + totalReconciliations: 3318 + description: 3319 + TotalReconciliations is the total number of reconciliations 3320 + that have occurred for this snapshot. 3321 + format: int64 3322 + type: integer 3323 + required: 3324 + - digest 3325 + - firstReconciled 3326 + - lastReconciled 3327 + - lastReconciledDuration 3328 + - lastReconciledStatus 3329 + - totalReconciliations 3330 + type: object 3331 + type: array 3332 + inventory: 3333 + description: |- 3334 + Inventory contains the list of Kubernetes resource object references that 3335 + have been successfully applied. 3336 + properties: 3337 + entries: 3338 + description: Entries of Kubernetes resource object references. 3339 + items: 3340 + description: 3341 + ResourceRef contains the information necessary 3342 + to locate a resource within a cluster. 3343 + properties: 3344 + id: 3345 + description: |- 3346 + ID is the string representation of the Kubernetes resource object's metadata, 3347 + in the format '<namespace>_<name>_<group>_<kind>'. 3348 + type: string 3349 + v: 3350 + description: 3351 + Version is the API version of the Kubernetes 3352 + resource object's kind. 3353 + type: string 3354 + required: 3355 + - id 3356 + - v 3357 + type: object 3358 + type: array 3359 + required: 3360 + - entries 3361 + type: object 3362 + lastAppliedOriginRevision: 3363 + description: |- 3364 + The last successfully applied origin revision. 3365 + Equals the origin revision of the applied Artifact from the referenced Source. 3366 + Usually present on the Metadata of the applied Artifact and depends on the 3367 + Source type, e.g. for OCI it's the value associated with the key 3368 + "org.opencontainers.image.revision". 3369 + type: string 3370 + lastAppliedRevision: 3371 + description: |- 3372 + The last successfully applied revision. 3373 + Equals the Revision of the applied Artifact from the referenced Source. 3374 + type: string 3375 + lastAttemptedRevision: 3376 + description: 3377 + LastAttemptedRevision is the revision of the last reconciliation 3378 + attempt. 3379 + type: string 3380 + lastHandledReconcileAt: 3381 + description: |- 3382 + LastHandledReconcileAt holds the value of the most recent 3383 + reconcile request value, so a change of the annotation value 3384 + can be detected. 3385 + type: string 3386 + observedGeneration: 3387 + description: ObservedGeneration is the last reconciled generation. 3388 + format: int64 3389 + type: integer 3390 + type: object 3391 + type: object 3392 + served: true 3393 + storage: true 3394 + subresources: 3395 + status: {} 3333 3396 --- 3334 3397 apiVersion: v1 3335 3398 kind: ServiceAccount ··· 3371 3434 app.kubernetes.io/version: v2.8.8 3372 3435 spec: 3373 3436 containers: 3374 - - args: 3375 - - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 3376 - - --watch-all-namespaces=true 3377 - - --log-level=info 3378 - - --log-encoding=json 3379 - - --enable-leader-election 3380 - env: 3381 - - name: RUNTIME_NAMESPACE 3382 - valueFrom: 3383 - fieldRef: 3384 - fieldPath: metadata.namespace 3385 - - name: GOMEMLIMIT 3386 - valueFrom: 3387 - resourceFieldRef: 3388 - containerName: manager 3389 - resource: limits.memory 3390 - image: ghcr.io/fluxcd/kustomize-controller:v1.8.5 3391 - imagePullPolicy: IfNotPresent 3392 - livenessProbe: 3393 - httpGet: 3394 - path: /healthz 3395 - port: healthz 3396 - name: manager 3397 - ports: 3398 - - containerPort: 8080 3399 - name: http-prom 3400 - protocol: TCP 3401 - - containerPort: 9440 3402 - name: healthz 3403 - protocol: TCP 3404 - readinessProbe: 3405 - httpGet: 3406 - path: /readyz 3407 - port: healthz 3408 - resources: 3409 - limits: 3410 - cpu: 1000m 3411 - memory: 1Gi 3412 - requests: 3413 - cpu: 100m 3414 - memory: 64Mi 3415 - securityContext: 3416 - allowPrivilegeEscalation: false 3417 - capabilities: 3418 - drop: 3419 - - ALL 3420 - readOnlyRootFilesystem: true 3421 - runAsNonRoot: true 3422 - seccompProfile: 3423 - type: RuntimeDefault 3424 - volumeMounts: 3425 - - mountPath: /tmp 3426 - name: temp 3437 + - args: 3438 + - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 3439 + - --watch-all-namespaces=true 3440 + - --log-level=info 3441 + - --log-encoding=json 3442 + - --enable-leader-election 3443 + env: 3444 + - name: RUNTIME_NAMESPACE 3445 + valueFrom: 3446 + fieldRef: 3447 + fieldPath: metadata.namespace 3448 + - name: GOMEMLIMIT 3449 + valueFrom: 3450 + resourceFieldRef: 3451 + containerName: manager 3452 + resource: limits.memory 3453 + image: ghcr.io/fluxcd/kustomize-controller:v1.8.5 3454 + imagePullPolicy: IfNotPresent 3455 + livenessProbe: 3456 + httpGet: 3457 + path: /healthz 3458 + port: healthz 3459 + name: manager 3460 + ports: 3461 + - containerPort: 8080 3462 + name: http-prom 3463 + protocol: TCP 3464 + - containerPort: 9440 3465 + name: healthz 3466 + protocol: TCP 3467 + readinessProbe: 3468 + httpGet: 3469 + path: /readyz 3470 + port: healthz 3471 + resources: 3472 + limits: 3473 + cpu: 1000m 3474 + memory: 1Gi 3475 + requests: 3476 + cpu: 100m 3477 + memory: 64Mi 3478 + securityContext: 3479 + allowPrivilegeEscalation: false 3480 + capabilities: 3481 + drop: 3482 + - ALL 3483 + readOnlyRootFilesystem: true 3484 + runAsNonRoot: true 3485 + seccompProfile: 3486 + type: RuntimeDefault 3487 + volumeMounts: 3488 + - mountPath: /tmp 3489 + name: temp 3427 3490 nodeSelector: 3428 3491 kubernetes.io/os: linux 3429 3492 priorityClassName: system-cluster-critical ··· 3432 3495 serviceAccountName: kustomize-controller 3433 3496 terminationGracePeriodSeconds: 60 3434 3497 volumes: 3435 - - emptyDir: {} 3436 - name: temp 3498 + - emptyDir: {} 3499 + name: temp 3437 3500 --- 3438 3501 apiVersion: apiextensions.k8s.io/v1 3439 3502 kind: CustomResourceDefinition ··· 3453 3516 listKind: HelmReleaseList 3454 3517 plural: helmreleases 3455 3518 shortNames: 3456 - - hr 3519 + - hr 3457 3520 singular: helmrelease 3458 3521 scope: Namespaced 3459 3522 versions: 3460 - - additionalPrinterColumns: 3461 - - jsonPath: .metadata.creationTimestamp 3462 - name: Age 3463 - type: date 3464 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 3465 - name: Ready 3466 - type: string 3467 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 3468 - name: Status 3469 - type: string 3470 - name: v2 3471 - schema: 3472 - openAPIV3Schema: 3473 - description: HelmRelease is the Schema for the helmreleases API 3474 - properties: 3475 - apiVersion: 3476 - description: |- 3477 - APIVersion defines the versioned schema of this representation of an object. 3478 - Servers should convert recognized schemas to the latest internal value, and 3479 - may reject unrecognized values. 3480 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 3481 - type: string 3482 - kind: 3483 - description: |- 3484 - Kind is a string value representing the REST resource this object represents. 3485 - Servers may infer this from the endpoint the client submits requests to. 3486 - Cannot be updated. 3487 - In CamelCase. 3488 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 3489 - type: string 3490 - metadata: 3491 - type: object 3492 - spec: 3493 - description: HelmReleaseSpec defines the desired state of a Helm release. 3494 - properties: 3495 - chart: 3496 - description: |- 3497 - Chart defines the template of the v1.HelmChart that should be created 3498 - for this HelmRelease. 3499 - properties: 3500 - metadata: 3501 - description: ObjectMeta holds the template for metadata like labels 3502 - and annotations. 3503 - properties: 3504 - annotations: 3505 - additionalProperties: 3506 - type: string 3507 - description: |- 3508 - Annotations is an unstructured key value map stored with a resource that may be 3509 - set by external tools to store and retrieve arbitrary metadata. They are not 3510 - queryable and should be preserved when modifying objects. 3511 - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ 3512 - type: object 3513 - labels: 3514 - additionalProperties: 3515 - type: string 3516 - description: |- 3517 - Map of string keys and values that can be used to organize and categorize 3518 - (scope and select) objects. 3519 - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ 3520 - type: object 3521 - type: object 3522 - spec: 3523 - description: Spec holds the template for the v1.HelmChartSpec 3524 - for this HelmRelease. 3525 - properties: 3526 - chart: 3527 - description: The name or path the Helm chart is available 3528 - at in the SourceRef. 3529 - maxLength: 2048 3530 - minLength: 1 3531 - type: string 3532 - ignoreMissingValuesFiles: 3533 - description: IgnoreMissingValuesFiles controls whether to 3534 - silently ignore missing values files rather than failing. 3535 - type: boolean 3536 - interval: 3537 - description: |- 3538 - Interval at which to check the v1.Source for updates. Defaults to 3539 - 'HelmReleaseSpec.Interval'. 3540 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3541 - type: string 3542 - reconcileStrategy: 3543 - default: ChartVersion 3544 - description: |- 3545 - Determines what enables the creation of a new artifact. Valid values are 3546 - ('ChartVersion', 'Revision'). 3547 - See the documentation of the values for an explanation on their behavior. 3548 - Defaults to ChartVersion when omitted. 3549 - enum: 3550 - - ChartVersion 3551 - - Revision 3552 - type: string 3553 - sourceRef: 3554 - description: The name and namespace of the v1.Source the chart 3555 - is available at. 3556 - properties: 3557 - apiVersion: 3558 - description: APIVersion of the referent. 3523 + - additionalPrinterColumns: 3524 + - jsonPath: .metadata.creationTimestamp 3525 + name: Age 3526 + type: date 3527 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 3528 + name: Ready 3529 + type: string 3530 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 3531 + name: Status 3532 + type: string 3533 + name: v2 3534 + schema: 3535 + openAPIV3Schema: 3536 + description: HelmRelease is the Schema for the helmreleases API 3537 + properties: 3538 + apiVersion: 3539 + description: |- 3540 + APIVersion defines the versioned schema of this representation of an object. 3541 + Servers should convert recognized schemas to the latest internal value, and 3542 + may reject unrecognized values. 3543 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 3544 + type: string 3545 + kind: 3546 + description: |- 3547 + Kind is a string value representing the REST resource this object represents. 3548 + Servers may infer this from the endpoint the client submits requests to. 3549 + Cannot be updated. 3550 + In CamelCase. 3551 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 3552 + type: string 3553 + metadata: 3554 + type: object 3555 + spec: 3556 + description: HelmReleaseSpec defines the desired state of a Helm release. 3557 + properties: 3558 + chart: 3559 + description: |- 3560 + Chart defines the template of the v1.HelmChart that should be created 3561 + for this HelmRelease. 3562 + properties: 3563 + metadata: 3564 + description: 3565 + ObjectMeta holds the template for metadata like labels 3566 + and annotations. 3567 + properties: 3568 + annotations: 3569 + additionalProperties: 3559 3570 type: string 3560 - kind: 3561 - description: Kind of the referent. 3562 - enum: 3563 - - HelmRepository 3564 - - GitRepository 3565 - - Bucket 3571 + description: |- 3572 + Annotations is an unstructured key value map stored with a resource that may be 3573 + set by external tools to store and retrieve arbitrary metadata. They are not 3574 + queryable and should be preserved when modifying objects. 3575 + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ 3576 + type: object 3577 + labels: 3578 + additionalProperties: 3566 3579 type: string 3567 - name: 3568 - description: Name of the referent. 3569 - maxLength: 253 3570 - minLength: 1 3571 - type: string 3572 - namespace: 3573 - description: Namespace of the referent. 3574 - maxLength: 63 3575 - minLength: 1 3576 - type: string 3577 - required: 3578 - - kind 3579 - - name 3580 - type: object 3581 - valuesFiles: 3582 - description: |- 3583 - Alternative list of values files to use as the chart values (values.yaml 3584 - is not included by default), expected to be a relative path in the SourceRef. 3585 - Values files are merged in the order of this list with the last file overriding 3586 - the first. Ignored when omitted. 3587 - items: 3580 + description: |- 3581 + Map of string keys and values that can be used to organize and categorize 3582 + (scope and select) objects. 3583 + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ 3584 + type: object 3585 + type: object 3586 + spec: 3587 + description: 3588 + Spec holds the template for the v1.HelmChartSpec 3589 + for this HelmRelease. 3590 + properties: 3591 + chart: 3592 + description: 3593 + The name or path the Helm chart is available 3594 + at in the SourceRef. 3595 + maxLength: 2048 3596 + minLength: 1 3588 3597 type: string 3589 - type: array 3590 - verify: 3591 - description: |- 3592 - Verify contains the secret name containing the trusted public keys 3593 - used to verify the signature and specifies which provider to use to check 3594 - whether OCI image is authentic. 3595 - This field is only supported for OCI sources. 3596 - Chart dependencies, which are not bundled in the umbrella chart artifact, 3597 - are not verified. 3598 - properties: 3599 - provider: 3600 - default: cosign 3601 - description: Provider specifies the technology used to 3602 - sign the OCI Helm chart. 3603 - enum: 3604 - - cosign 3605 - - notation 3606 - type: string 3607 - secretRef: 3608 - description: |- 3609 - SecretRef specifies the Kubernetes Secret containing the 3610 - trusted public keys. 3611 - properties: 3612 - name: 3613 - description: Name of the referent. 3614 - type: string 3615 - required: 3616 - - name 3617 - type: object 3618 - required: 3619 - - provider 3620 - type: object 3621 - version: 3622 - default: '*' 3623 - description: |- 3624 - Version semver expression, ignored for charts from v1.GitRepository and 3625 - v1beta2.Bucket sources. Defaults to latest when omitted. 3626 - type: string 3627 - required: 3628 - - chart 3629 - - sourceRef 3630 - type: object 3631 - required: 3632 - - spec 3633 - type: object 3634 - chartRef: 3635 - description: |- 3636 - ChartRef holds a reference to a source controller resource containing the 3637 - Helm chart artifact. 3638 - properties: 3639 - apiVersion: 3640 - description: APIVersion of the referent. 3641 - type: string 3642 - kind: 3643 - description: Kind of the referent. 3644 - enum: 3645 - - OCIRepository 3646 - - HelmChart 3647 - - ExternalArtifact 3648 - type: string 3649 - name: 3650 - description: Name of the referent. 3651 - maxLength: 253 3652 - minLength: 1 3653 - type: string 3654 - namespace: 3655 - description: |- 3656 - Namespace of the referent, defaults to the namespace of the Kubernetes 3657 - resource object that contains the reference. 3658 - maxLength: 63 3659 - minLength: 1 3660 - type: string 3661 - required: 3662 - - kind 3663 - - name 3664 - type: object 3665 - commonMetadata: 3666 - description: |- 3667 - CommonMetadata specifies the common labels and annotations that are 3668 - applied to all resources. Any existing label or annotation will be 3669 - overridden if its key matches a common one. 3670 - properties: 3671 - annotations: 3672 - additionalProperties: 3673 - type: string 3674 - description: Annotations to be added to the object's metadata. 3675 - type: object 3676 - labels: 3677 - additionalProperties: 3678 - type: string 3679 - description: Labels to be added to the object's metadata. 3680 - type: object 3681 - type: object 3682 - dependsOn: 3683 - description: |- 3684 - DependsOn may contain a DependencyReference slice with 3685 - references to HelmRelease resources that must be ready before this HelmRelease 3686 - can be reconciled. 3687 - items: 3688 - description: DependencyReference defines a HelmRelease dependency 3689 - on another HelmRelease resource. 3690 - properties: 3691 - name: 3692 - description: Name of the referent. 3693 - type: string 3694 - namespace: 3695 - description: |- 3696 - Namespace of the referent, defaults to the namespace of the HelmRelease 3697 - resource object that contains the reference. 3698 - type: string 3699 - readyExpr: 3700 - description: |- 3701 - ReadyExpr is a CEL expression that can be used to assess the readiness 3702 - of a dependency. When specified, the built-in readiness check 3703 - is replaced by the logic defined in the CEL expression. 3704 - To make the CEL expression additive to the built-in readiness check, 3705 - the feature gate `AdditiveCELDependencyCheck` must be set to `true`. 3706 - type: string 3707 - required: 3708 - - name 3709 - type: object 3710 - type: array 3711 - driftDetection: 3712 - description: |- 3713 - DriftDetection holds the configuration for detecting and handling 3714 - differences between the manifest in the Helm storage and the resources 3715 - currently existing in the cluster. 3716 - properties: 3717 - ignore: 3718 - description: |- 3719 - Ignore contains a list of rules for specifying which changes to ignore 3720 - during diffing. 3721 - items: 3722 - description: |- 3723 - IgnoreRule defines a rule to selectively disregard specific changes during 3724 - the drift detection process. 3725 - properties: 3726 - paths: 3598 + ignoreMissingValuesFiles: 3599 + description: 3600 + IgnoreMissingValuesFiles controls whether to 3601 + silently ignore missing values files rather than failing. 3602 + type: boolean 3603 + interval: 3727 3604 description: |- 3728 - Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from 3729 - consideration in a Kubernetes object. 3730 - items: 3731 - type: string 3732 - type: array 3733 - target: 3605 + Interval at which to check the v1.Source for updates. Defaults to 3606 + 'HelmReleaseSpec.Interval'. 3607 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3608 + type: string 3609 + reconcileStrategy: 3610 + default: ChartVersion 3734 3611 description: |- 3735 - Target is a selector for specifying Kubernetes objects to which this 3736 - rule applies. 3737 - If Target is not set, the Paths will be ignored for all Kubernetes 3738 - objects within the manifest of the Helm release. 3612 + Determines what enables the creation of a new artifact. Valid values are 3613 + ('ChartVersion', 'Revision'). 3614 + See the documentation of the values for an explanation on their behavior. 3615 + Defaults to ChartVersion when omitted. 3616 + enum: 3617 + - ChartVersion 3618 + - Revision 3619 + type: string 3620 + sourceRef: 3621 + description: 3622 + The name and namespace of the v1.Source the chart 3623 + is available at. 3739 3624 properties: 3740 - annotationSelector: 3741 - description: |- 3742 - AnnotationSelector is a string that follows the label selection expression 3743 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3744 - It matches with the resource annotations. 3745 - type: string 3746 - group: 3747 - description: |- 3748 - Group is the API group to select resources from. 3749 - Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 3750 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3625 + apiVersion: 3626 + description: APIVersion of the referent. 3751 3627 type: string 3752 3628 kind: 3753 - description: |- 3754 - Kind of the API Group to select resources from. 3755 - Together with Group and Version it is capable of unambiguously 3756 - identifying and/or selecting resources. 3757 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3758 - type: string 3759 - labelSelector: 3760 - description: |- 3761 - LabelSelector is a string that follows the label selection expression 3762 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3763 - It matches with the resource labels. 3629 + description: Kind of the referent. 3630 + enum: 3631 + - HelmRepository 3632 + - GitRepository 3633 + - Bucket 3764 3634 type: string 3765 3635 name: 3766 - description: Name to match resources with. 3636 + description: Name of the referent. 3637 + maxLength: 253 3638 + minLength: 1 3767 3639 type: string 3768 3640 namespace: 3769 - description: Namespace to select resources from. 3641 + description: Namespace of the referent. 3642 + maxLength: 63 3643 + minLength: 1 3770 3644 type: string 3771 - version: 3772 - description: |- 3773 - Version of the API Group to select resources from. 3774 - Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 3775 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3645 + required: 3646 + - kind 3647 + - name 3648 + type: object 3649 + valuesFiles: 3650 + description: |- 3651 + Alternative list of values files to use as the chart values (values.yaml 3652 + is not included by default), expected to be a relative path in the SourceRef. 3653 + Values files are merged in the order of this list with the last file overriding 3654 + the first. Ignored when omitted. 3655 + items: 3656 + type: string 3657 + type: array 3658 + verify: 3659 + description: |- 3660 + Verify contains the secret name containing the trusted public keys 3661 + used to verify the signature and specifies which provider to use to check 3662 + whether OCI image is authentic. 3663 + This field is only supported for OCI sources. 3664 + Chart dependencies, which are not bundled in the umbrella chart artifact, 3665 + are not verified. 3666 + properties: 3667 + provider: 3668 + default: cosign 3669 + description: 3670 + Provider specifies the technology used to 3671 + sign the OCI Helm chart. 3672 + enum: 3673 + - cosign 3674 + - notation 3776 3675 type: string 3676 + secretRef: 3677 + description: |- 3678 + SecretRef specifies the Kubernetes Secret containing the 3679 + trusted public keys. 3680 + properties: 3681 + name: 3682 + description: Name of the referent. 3683 + type: string 3684 + required: 3685 + - name 3686 + type: object 3687 + required: 3688 + - provider 3777 3689 type: object 3690 + version: 3691 + default: "*" 3692 + description: |- 3693 + Version semver expression, ignored for charts from v1.GitRepository and 3694 + v1beta2.Bucket sources. Defaults to latest when omitted. 3695 + type: string 3778 3696 required: 3779 - - paths 3697 + - chart 3698 + - sourceRef 3780 3699 type: object 3781 - type: array 3782 - mode: 3783 - description: |- 3784 - Mode defines how differences should be handled between the Helm manifest 3785 - and the manifest currently applied to the cluster. 3786 - If not explicitly set, it defaults to DiffModeDisabled. 3787 - enum: 3788 - - enabled 3789 - - warn 3790 - - disabled 3791 - type: string 3792 - type: object 3793 - healthCheckExprs: 3794 - description: |- 3795 - HealthCheckExprs is a list of healthcheck expressions for evaluating the 3796 - health of custom resources using Common Expression Language (CEL). 3797 - The expressions are evaluated only when the specific Helm action 3798 - taking place has wait enabled, i.e. DisableWait is false, and the 3799 - 'poller' WaitStrategy is used. 3800 - items: 3801 - description: CustomHealthCheck defines the health check for custom 3802 - resources. 3700 + required: 3701 + - spec 3702 + type: object 3703 + chartRef: 3704 + description: |- 3705 + ChartRef holds a reference to a source controller resource containing the 3706 + Helm chart artifact. 3803 3707 properties: 3804 3708 apiVersion: 3805 - description: APIVersion of the custom resource under evaluation. 3709 + description: APIVersion of the referent. 3806 3710 type: string 3807 - current: 3808 - description: |- 3809 - Current is the CEL expression that determines if the status 3810 - of the custom resource has reached the desired state. 3711 + kind: 3712 + description: Kind of the referent. 3713 + enum: 3714 + - OCIRepository 3715 + - HelmChart 3716 + - ExternalArtifact 3811 3717 type: string 3812 - failed: 3813 - description: |- 3814 - Failed is the CEL expression that determines if the status 3815 - of the custom resource has failed to reach the desired state. 3718 + name: 3719 + description: Name of the referent. 3720 + maxLength: 253 3721 + minLength: 1 3816 3722 type: string 3817 - inProgress: 3723 + namespace: 3818 3724 description: |- 3819 - InProgress is the CEL expression that determines if the status 3820 - of the custom resource has not yet reached the desired state. 3821 - type: string 3822 - kind: 3823 - description: Kind of the custom resource under evaluation. 3725 + Namespace of the referent, defaults to the namespace of the Kubernetes 3726 + resource object that contains the reference. 3727 + maxLength: 63 3728 + minLength: 1 3824 3729 type: string 3825 3730 required: 3826 - - apiVersion 3827 - - current 3828 - - kind 3731 + - kind 3732 + - name 3829 3733 type: object 3830 - type: array 3831 - install: 3832 - description: Install holds the configuration for Helm install actions 3833 - for this HelmRelease. 3834 - properties: 3835 - crds: 3836 - description: |- 3837 - CRDs upgrade CRDs from the Helm Chart's crds directory according 3838 - to the CRD upgrade policy provided here. Valid values are `Skip`, 3839 - `Create` or `CreateReplace`. Default is `Create` and if omitted 3840 - CRDs are installed but not updated. 3841 - 3842 - Skip: do neither install nor replace (update) any CRDs. 3843 - 3844 - Create: new CRDs are created, existing CRDs are neither updated nor deleted. 3845 - 3846 - CreateReplace: new CRDs are created, existing CRDs are updated (replaced) 3847 - but not deleted. 3848 - 3849 - By default, CRDs are applied (installed) during Helm install action. 3850 - With this option users can opt in to CRD replace existing CRDs on Helm 3851 - install actions, which is not (yet) natively supported by Helm. 3852 - https://helm.sh/docs/chart_best_practices/custom_resource_definitions. 3853 - enum: 3854 - - Skip 3855 - - Create 3856 - - CreateReplace 3857 - type: string 3858 - createNamespace: 3859 - description: |- 3860 - CreateNamespace tells the Helm install action to create the 3861 - HelmReleaseSpec.TargetNamespace if it does not exist yet. 3862 - On uninstall, the namespace will not be garbage collected. 3863 - type: boolean 3864 - disableHooks: 3865 - description: DisableHooks prevents hooks from running during the 3866 - Helm install action. 3867 - type: boolean 3868 - disableOpenAPIValidation: 3869 - description: |- 3870 - DisableOpenAPIValidation prevents the Helm install action from validating 3871 - rendered templates against the Kubernetes OpenAPI Schema. 3872 - type: boolean 3873 - disableSchemaValidation: 3874 - description: |- 3875 - DisableSchemaValidation prevents the Helm install action from validating 3876 - the values against the JSON Schema. 3877 - type: boolean 3878 - disableTakeOwnership: 3879 - description: |- 3880 - DisableTakeOwnership disables taking ownership of existing resources 3881 - during the Helm install action. Defaults to false. 3882 - type: boolean 3883 - disableWait: 3884 - description: |- 3885 - DisableWait disables the waiting for resources to be ready after a Helm 3886 - install has been performed. 3887 - type: boolean 3888 - disableWaitForJobs: 3889 - description: |- 3890 - DisableWaitForJobs disables waiting for jobs to complete after a Helm 3891 - install has been performed. 3892 - type: boolean 3893 - remediation: 3894 - description: |- 3895 - Remediation holds the remediation configuration for when the Helm install 3896 - action for the HelmRelease fails. The default is to not perform any action. 3897 - properties: 3898 - ignoreTestFailures: 3899 - description: |- 3900 - IgnoreTestFailures tells the controller to skip remediation when the Helm 3901 - tests are run after an install action but fail. Defaults to 3902 - 'Test.IgnoreFailures'. 3903 - type: boolean 3904 - remediateLastFailure: 3905 - description: |- 3906 - RemediateLastFailure tells the controller to remediate the last failure, when 3907 - no retries remain. Defaults to 'false'. 3908 - type: boolean 3909 - retries: 3910 - description: |- 3911 - Retries is the number of retries that should be attempted on failures before 3912 - bailing. Remediation, using an uninstall, is performed between each attempt. 3913 - Defaults to '0', a negative integer equals to unlimited retries. 3914 - type: integer 3915 - type: object 3916 - replace: 3917 - description: |- 3918 - Replace tells the Helm install action to re-use the 'ReleaseName', but only 3919 - if that name is a deleted release which remains in the history. 3920 - type: boolean 3921 - serverSideApply: 3922 - description: |- 3923 - ServerSideApply enables server-side apply for resources during install. 3924 - Defaults to true (or false when UseHelm3Defaults feature gate is enabled). 3925 - type: boolean 3926 - skipCRDs: 3927 - description: |- 3928 - SkipCRDs tells the Helm install action to not install any CRDs. By default, 3929 - CRDs are installed if not already present. 3930 - 3931 - Deprecated use CRD policy (`crds`) attribute with value `Skip` instead. 3932 - type: boolean 3933 - strategy: 3934 - description: |- 3935 - Strategy defines the install strategy to use for this HelmRelease. 3936 - Defaults to 'RemediateOnFailure', or 'RetryOnFailure' when the 3937 - DefaultToRetryOnFailure feature gate is enabled. 3938 - properties: 3939 - name: 3940 - description: Name of the install strategy. 3941 - enum: 3942 - - RemediateOnFailure 3943 - - RetryOnFailure 3734 + commonMetadata: 3735 + description: |- 3736 + CommonMetadata specifies the common labels and annotations that are 3737 + applied to all resources. Any existing label or annotation will be 3738 + overridden if its key matches a common one. 3739 + properties: 3740 + annotations: 3741 + additionalProperties: 3944 3742 type: string 3945 - retryInterval: 3946 - description: |- 3947 - RetryInterval is the interval at which to retry a failed install. 3948 - Can be used only when Name is set to RetryOnFailure. 3949 - Defaults to '5m'. 3950 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3743 + description: Annotations to be added to the object's metadata. 3744 + type: object 3745 + labels: 3746 + additionalProperties: 3951 3747 type: string 3952 - required: 3953 - - name 3954 - type: object 3955 - x-kubernetes-validations: 3956 - - message: .retryInterval cannot be set when .name is 'RemediateOnFailure' 3957 - rule: '!has(self.retryInterval) || self.name != ''RemediateOnFailure''' 3958 - timeout: 3959 - description: |- 3960 - Timeout is the time to wait for any individual Kubernetes operation (like 3961 - Jobs for hooks) during the performance of a Helm install action. Defaults to 3962 - 'HelmReleaseSpec.Timeout'. 3963 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3964 - type: string 3965 - type: object 3966 - interval: 3967 - description: Interval at which to reconcile the Helm release. 3968 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 3969 - type: string 3970 - kubeConfig: 3971 - description: |- 3972 - KubeConfig for reconciling the HelmRelease on a remote cluster. 3973 - When used in combination with HelmReleaseSpec.ServiceAccountName, 3974 - forces the controller to act on behalf of that Service Account at the 3975 - target cluster. 3976 - If the --default-service-account flag is set, its value will be used as 3977 - a controller level fallback for when HelmReleaseSpec.ServiceAccountName 3978 - is empty. 3979 - properties: 3980 - configMapRef: 3981 - description: |- 3982 - ConfigMapRef holds an optional name of a ConfigMap that contains 3983 - the following keys: 3984 - 3985 - - `provider`: the provider to use. One of `aws`, `azure`, `gcp`, or 3986 - `generic`. Required. 3987 - - `cluster`: the fully qualified resource name of the Kubernetes 3988 - cluster in the cloud provider API. Not used by the `generic` 3989 - provider. Required when one of `address` or `ca.crt` is not set. 3990 - - `address`: the address of the Kubernetes API server. Required 3991 - for `generic`. For the other providers, if not specified, the 3992 - first address in the cluster resource will be used, and if 3993 - specified, it must match one of the addresses in the cluster 3994 - resource. 3995 - If audiences is not set, will be used as the audience for the 3996 - `generic` provider. 3997 - - `ca.crt`: the optional PEM-encoded CA certificate for the 3998 - Kubernetes API server. If not set, the controller will use the 3999 - CA certificate from the cluster resource. 4000 - - `audiences`: the optional audiences as a list of 4001 - line-break-separated strings for the Kubernetes ServiceAccount 4002 - token. Defaults to the `address` for the `generic` provider, or 4003 - to specific values for the other providers depending on the 4004 - provider. 4005 - - `serviceAccountName`: the optional name of the Kubernetes 4006 - ServiceAccount in the same namespace that should be used 4007 - for authentication. If not specified, the controller 4008 - ServiceAccount will be used. 4009 - 4010 - Mutually exclusive with SecretRef. 3748 + description: Labels to be added to the object's metadata. 3749 + type: object 3750 + type: object 3751 + dependsOn: 3752 + description: |- 3753 + DependsOn may contain a DependencyReference slice with 3754 + references to HelmRelease resources that must be ready before this HelmRelease 3755 + can be reconciled. 3756 + items: 3757 + description: 3758 + DependencyReference defines a HelmRelease dependency 3759 + on another HelmRelease resource. 4011 3760 properties: 4012 3761 name: 4013 3762 description: Name of the referent. 4014 3763 type: string 4015 - required: 4016 - - name 4017 - type: object 4018 - secretRef: 4019 - description: |- 4020 - SecretRef holds an optional name of a secret that contains a key with 4021 - the kubeconfig file as the value. If no key is set, the key will default 4022 - to 'value'. Mutually exclusive with ConfigMapRef. 4023 - It is recommended that the kubeconfig is self-contained, and the secret 4024 - is regularly updated if credentials such as a cloud-access-token expire. 4025 - Cloud specific `cmd-path` auth helpers will not function without adding 4026 - binaries and credentials to the Pod that is responsible for reconciling 4027 - Kubernetes resources. Supported only for the generic provider. 4028 - properties: 4029 - key: 4030 - description: Key in the Secret, when not specified an implementation-specific 4031 - default key is used. 3764 + namespace: 3765 + description: |- 3766 + Namespace of the referent, defaults to the namespace of the HelmRelease 3767 + resource object that contains the reference. 4032 3768 type: string 4033 - name: 4034 - description: Name of the Secret. 3769 + readyExpr: 3770 + description: |- 3771 + ReadyExpr is a CEL expression that can be used to assess the readiness 3772 + of a dependency. When specified, the built-in readiness check 3773 + is replaced by the logic defined in the CEL expression. 3774 + To make the CEL expression additive to the built-in readiness check, 3775 + the feature gate `AdditiveCELDependencyCheck` must be set to `true`. 4035 3776 type: string 4036 3777 required: 4037 - - name 3778 + - name 4038 3779 type: object 4039 - type: object 4040 - x-kubernetes-validations: 4041 - - message: exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 4042 - must be specified 4043 - rule: has(self.configMapRef) || has(self.secretRef) 4044 - - message: exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 4045 - must be specified 4046 - rule: '!has(self.configMapRef) || !has(self.secretRef)' 4047 - maxHistory: 4048 - description: |- 4049 - MaxHistory is the number of revisions saved by Helm for this HelmRelease. 4050 - Use '0' for an unlimited number of revisions; defaults to '5'. 4051 - type: integer 4052 - persistentClient: 4053 - description: |- 4054 - PersistentClient tells the controller to use a persistent Kubernetes 4055 - client for this release. When enabled, the client will be reused for the 4056 - duration of the reconciliation, instead of being created and destroyed 4057 - for each (step of a) Helm action. 4058 - 4059 - This can improve performance, but may cause issues with some Helm charts 4060 - that for example do create Custom Resource Definitions during installation 4061 - outside Helm's CRD lifecycle hooks, which are then not observed to be 4062 - available by e.g. post-install hooks. 4063 - 4064 - If not set, it defaults to true. 4065 - type: boolean 4066 - postRenderers: 4067 - description: |- 4068 - PostRenderers holds an array of Helm PostRenderers, which will be applied in order 4069 - of their definition. 4070 - items: 4071 - description: PostRenderer contains a Helm PostRenderer specification. 3780 + type: array 3781 + driftDetection: 3782 + description: |- 3783 + DriftDetection holds the configuration for detecting and handling 3784 + differences between the manifest in the Helm storage and the resources 3785 + currently existing in the cluster. 4072 3786 properties: 4073 - kustomize: 4074 - description: Kustomization to apply as PostRenderer. 4075 - properties: 4076 - images: 4077 - description: |- 4078 - Images is a list of (image name, new name, new tag or digest) 4079 - for changing image names, tags or digests. This can also be achieved with a 4080 - patch, but this operator is simpler to specify. 4081 - items: 4082 - description: Image contains an image name, a new name, 4083 - a new tag or digest, which will replace the original 4084 - name and tag. 3787 + ignore: 3788 + description: |- 3789 + Ignore contains a list of rules for specifying which changes to ignore 3790 + during diffing. 3791 + items: 3792 + description: |- 3793 + IgnoreRule defines a rule to selectively disregard specific changes during 3794 + the drift detection process. 3795 + properties: 3796 + paths: 3797 + description: |- 3798 + Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from 3799 + consideration in a Kubernetes object. 3800 + items: 3801 + type: string 3802 + type: array 3803 + target: 3804 + description: |- 3805 + Target is a selector for specifying Kubernetes objects to which this 3806 + rule applies. 3807 + If Target is not set, the Paths will be ignored for all Kubernetes 3808 + objects within the manifest of the Helm release. 4085 3809 properties: 4086 - digest: 3810 + annotationSelector: 3811 + description: |- 3812 + AnnotationSelector is a string that follows the label selection expression 3813 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3814 + It matches with the resource annotations. 3815 + type: string 3816 + group: 3817 + description: |- 3818 + Group is the API group to select resources from. 3819 + Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 3820 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 3821 + type: string 3822 + kind: 4087 3823 description: |- 4088 - Digest is the value used to replace the original image tag. 4089 - If digest is present NewTag value is ignored. 3824 + Kind of the API Group to select resources from. 3825 + Together with Group and Version it is capable of unambiguously 3826 + identifying and/or selecting resources. 3827 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4090 3828 type: string 4091 - name: 4092 - description: Name is a tag-less image name. 3829 + labelSelector: 3830 + description: |- 3831 + LabelSelector is a string that follows the label selection expression 3832 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 3833 + It matches with the resource labels. 4093 3834 type: string 4094 - newName: 4095 - description: NewName is the value used to replace 4096 - the original name. 3835 + name: 3836 + description: Name to match resources with. 4097 3837 type: string 4098 - newTag: 4099 - description: NewTag is the value used to replace the 4100 - original tag. 3838 + namespace: 3839 + description: Namespace to select resources from. 4101 3840 type: string 4102 - required: 4103 - - name 4104 - type: object 4105 - type: array 4106 - patches: 4107 - description: |- 4108 - Strategic merge and JSON patches, defined as inline YAML objects, 4109 - capable of targeting objects based on kind, label and annotation selectors. 4110 - items: 4111 - description: |- 4112 - Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should 4113 - be applied to. 4114 - properties: 4115 - patch: 3841 + version: 4116 3842 description: |- 4117 - Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with 4118 - an array of operation objects. 3843 + Version of the API Group to select resources from. 3844 + Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 3845 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4119 3846 type: string 4120 - target: 4121 - description: Target points to the resources that the 4122 - patch document should be applied to. 4123 - properties: 4124 - annotationSelector: 4125 - description: |- 4126 - AnnotationSelector is a string that follows the label selection expression 4127 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 4128 - It matches with the resource annotations. 4129 - type: string 4130 - group: 4131 - description: |- 4132 - Group is the API group to select resources from. 4133 - Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 4134 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4135 - type: string 4136 - kind: 4137 - description: |- 4138 - Kind of the API Group to select resources from. 4139 - Together with Group and Version it is capable of unambiguously 4140 - identifying and/or selecting resources. 4141 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4142 - type: string 4143 - labelSelector: 4144 - description: |- 4145 - LabelSelector is a string that follows the label selection expression 4146 - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 4147 - It matches with the resource labels. 4148 - type: string 4149 - name: 4150 - description: Name to match resources with. 4151 - type: string 4152 - namespace: 4153 - description: Namespace to select resources from. 4154 - type: string 4155 - version: 4156 - description: |- 4157 - Version of the API Group to select resources from. 4158 - Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 4159 - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4160 - type: string 4161 - type: object 4162 - required: 4163 - - patch 4164 3847 type: object 4165 - type: array 4166 - type: object 3848 + required: 3849 + - paths 3850 + type: object 3851 + type: array 3852 + mode: 3853 + description: |- 3854 + Mode defines how differences should be handled between the Helm manifest 3855 + and the manifest currently applied to the cluster. 3856 + If not explicitly set, it defaults to DiffModeDisabled. 3857 + enum: 3858 + - enabled 3859 + - warn 3860 + - disabled 3861 + type: string 4167 3862 type: object 4168 - type: array 4169 - releaseName: 4170 - description: |- 4171 - ReleaseName used for the Helm release. Defaults to a composition of 4172 - '[TargetNamespace-]Name'. 4173 - maxLength: 53 4174 - minLength: 1 4175 - type: string 4176 - rollback: 4177 - description: Rollback holds the configuration for Helm rollback actions 4178 - for this HelmRelease. 4179 - properties: 4180 - cleanupOnFail: 4181 - description: |- 4182 - CleanupOnFail allows deletion of new resources created during the Helm 4183 - rollback action when it fails. 4184 - type: boolean 4185 - disableHooks: 4186 - description: DisableHooks prevents hooks from running during the 4187 - Helm rollback action. 4188 - type: boolean 4189 - disableWait: 4190 - description: |- 4191 - DisableWait disables the waiting for resources to be ready after a Helm 4192 - rollback has been performed. 4193 - type: boolean 4194 - disableWaitForJobs: 4195 - description: |- 4196 - DisableWaitForJobs disables waiting for jobs to complete after a Helm 4197 - rollback has been performed. 4198 - type: boolean 4199 - force: 4200 - description: |- 4201 - Force forces resource updates through a replacement strategy 4202 - that avoids 3-way merge conflicts on client-side apply. 4203 - This field is ignored for server-side apply (which always 4204 - forces conflicts with other field managers). 4205 - type: boolean 4206 - recreate: 4207 - description: |- 4208 - Recreate performs pod restarts for any managed workloads. 3863 + healthCheckExprs: 3864 + description: |- 3865 + HealthCheckExprs is a list of healthcheck expressions for evaluating the 3866 + health of custom resources using Common Expression Language (CEL). 3867 + The expressions are evaluated only when the specific Helm action 3868 + taking place has wait enabled, i.e. DisableWait is false, and the 3869 + 'poller' WaitStrategy is used. 3870 + items: 3871 + description: 3872 + CustomHealthCheck defines the health check for custom 3873 + resources. 3874 + properties: 3875 + apiVersion: 3876 + description: APIVersion of the custom resource under evaluation. 3877 + type: string 3878 + current: 3879 + description: |- 3880 + Current is the CEL expression that determines if the status 3881 + of the custom resource has reached the desired state. 3882 + type: string 3883 + failed: 3884 + description: |- 3885 + Failed is the CEL expression that determines if the status 3886 + of the custom resource has failed to reach the desired state. 3887 + type: string 3888 + inProgress: 3889 + description: |- 3890 + InProgress is the CEL expression that determines if the status 3891 + of the custom resource has not yet reached the desired state. 3892 + type: string 3893 + kind: 3894 + description: Kind of the custom resource under evaluation. 3895 + type: string 3896 + required: 3897 + - apiVersion 3898 + - current 3899 + - kind 3900 + type: object 3901 + type: array 3902 + install: 3903 + description: 3904 + Install holds the configuration for Helm install actions 3905 + for this HelmRelease. 3906 + properties: 3907 + crds: 3908 + description: |- 3909 + CRDs upgrade CRDs from the Helm Chart's crds directory according 3910 + to the CRD upgrade policy provided here. Valid values are `Skip`, 3911 + `Create` or `CreateReplace`. Default is `Create` and if omitted 3912 + CRDs are installed but not updated. 3913 + 3914 + Skip: do neither install nor replace (update) any CRDs. 3915 + 3916 + Create: new CRDs are created, existing CRDs are neither updated nor deleted. 3917 + 3918 + CreateReplace: new CRDs are created, existing CRDs are updated (replaced) 3919 + but not deleted. 4209 3920 4210 - Deprecated: This behavior was deprecated in Helm 3: 4211 - - Deprecation: https://github.com/helm/helm/pull/6463 4212 - - Removal: https://github.com/helm/helm/pull/31023 4213 - After helm-controller was upgraded to the Helm 4 SDK, 4214 - this field is no longer functional and will print a 4215 - warning if set to true. It will also be removed in a 4216 - future release. 4217 - type: boolean 4218 - serverSideApply: 4219 - description: |- 4220 - ServerSideApply enables server-side apply for resources during rollback. 4221 - Can be "enabled", "disabled", or "auto". 4222 - When "auto", server-side apply usage will be based on the release's previous usage. 4223 - Defaults to "auto". 4224 - enum: 4225 - - enabled 4226 - - disabled 4227 - - auto 4228 - type: string 4229 - timeout: 4230 - description: |- 4231 - Timeout is the time to wait for any individual Kubernetes operation (like 4232 - Jobs for hooks) during the performance of a Helm rollback action. Defaults to 4233 - 'HelmReleaseSpec.Timeout'. 4234 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4235 - type: string 4236 - type: object 4237 - serviceAccountName: 4238 - description: |- 4239 - The name of the Kubernetes service account to impersonate 4240 - when reconciling this HelmRelease. 4241 - maxLength: 253 4242 - minLength: 1 4243 - type: string 4244 - storageNamespace: 4245 - description: |- 4246 - StorageNamespace used for the Helm storage. 4247 - Defaults to the namespace of the HelmRelease. 4248 - maxLength: 63 4249 - minLength: 1 4250 - type: string 4251 - suspend: 4252 - description: |- 4253 - Suspend tells the controller to suspend reconciliation for this HelmRelease, 4254 - it does not apply to already started reconciliations. Defaults to false. 4255 - type: boolean 4256 - targetNamespace: 4257 - description: |- 4258 - TargetNamespace to target when performing operations for the HelmRelease. 4259 - Defaults to the namespace of the HelmRelease. 4260 - maxLength: 63 4261 - minLength: 1 4262 - type: string 4263 - test: 4264 - description: Test holds the configuration for Helm test actions for 4265 - this HelmRelease. 4266 - properties: 4267 - enable: 4268 - description: |- 4269 - Enable enables Helm test actions for this HelmRelease after an Helm install 4270 - or upgrade action has been performed. 4271 - type: boolean 4272 - filters: 4273 - description: Filters is a list of tests to run or exclude from 4274 - running. 4275 - items: 4276 - description: Filter holds the configuration for individual Helm 4277 - test filters. 3921 + By default, CRDs are applied (installed) during Helm install action. 3922 + With this option users can opt in to CRD replace existing CRDs on Helm 3923 + install actions, which is not (yet) natively supported by Helm. 3924 + https://helm.sh/docs/chart_best_practices/custom_resource_definitions. 3925 + enum: 3926 + - Skip 3927 + - Create 3928 + - CreateReplace 3929 + type: string 3930 + createNamespace: 3931 + description: |- 3932 + CreateNamespace tells the Helm install action to create the 3933 + HelmReleaseSpec.TargetNamespace if it does not exist yet. 3934 + On uninstall, the namespace will not be garbage collected. 3935 + type: boolean 3936 + disableHooks: 3937 + description: 3938 + DisableHooks prevents hooks from running during the 3939 + Helm install action. 3940 + type: boolean 3941 + disableOpenAPIValidation: 3942 + description: |- 3943 + DisableOpenAPIValidation prevents the Helm install action from validating 3944 + rendered templates against the Kubernetes OpenAPI Schema. 3945 + type: boolean 3946 + disableSchemaValidation: 3947 + description: |- 3948 + DisableSchemaValidation prevents the Helm install action from validating 3949 + the values against the JSON Schema. 3950 + type: boolean 3951 + disableTakeOwnership: 3952 + description: |- 3953 + DisableTakeOwnership disables taking ownership of existing resources 3954 + during the Helm install action. Defaults to false. 3955 + type: boolean 3956 + disableWait: 3957 + description: |- 3958 + DisableWait disables the waiting for resources to be ready after a Helm 3959 + install has been performed. 3960 + type: boolean 3961 + disableWaitForJobs: 3962 + description: |- 3963 + DisableWaitForJobs disables waiting for jobs to complete after a Helm 3964 + install has been performed. 3965 + type: boolean 3966 + remediation: 3967 + description: |- 3968 + Remediation holds the remediation configuration for when the Helm install 3969 + action for the HelmRelease fails. The default is to not perform any action. 4278 3970 properties: 4279 - exclude: 4280 - description: Exclude specifies whether the named test should 4281 - be excluded. 3971 + ignoreTestFailures: 3972 + description: |- 3973 + IgnoreTestFailures tells the controller to skip remediation when the Helm 3974 + tests are run after an install action but fail. Defaults to 3975 + 'Test.IgnoreFailures'. 3976 + type: boolean 3977 + remediateLastFailure: 3978 + description: |- 3979 + RemediateLastFailure tells the controller to remediate the last failure, when 3980 + no retries remain. Defaults to 'false'. 4282 3981 type: boolean 3982 + retries: 3983 + description: |- 3984 + Retries is the number of retries that should be attempted on failures before 3985 + bailing. Remediation, using an uninstall, is performed between each attempt. 3986 + Defaults to '0', a negative integer equals to unlimited retries. 3987 + type: integer 3988 + type: object 3989 + replace: 3990 + description: |- 3991 + Replace tells the Helm install action to re-use the 'ReleaseName', but only 3992 + if that name is a deleted release which remains in the history. 3993 + type: boolean 3994 + serverSideApply: 3995 + description: |- 3996 + ServerSideApply enables server-side apply for resources during install. 3997 + Defaults to true (or false when UseHelm3Defaults feature gate is enabled). 3998 + type: boolean 3999 + skipCRDs: 4000 + description: |- 4001 + SkipCRDs tells the Helm install action to not install any CRDs. By default, 4002 + CRDs are installed if not already present. 4003 + 4004 + Deprecated use CRD policy (`crds`) attribute with value `Skip` instead. 4005 + type: boolean 4006 + strategy: 4007 + description: |- 4008 + Strategy defines the install strategy to use for this HelmRelease. 4009 + Defaults to 'RemediateOnFailure', or 'RetryOnFailure' when the 4010 + DefaultToRetryOnFailure feature gate is enabled. 4011 + properties: 4283 4012 name: 4284 - description: Name is the name of the test. 4285 - maxLength: 253 4286 - minLength: 1 4013 + description: Name of the install strategy. 4014 + enum: 4015 + - RemediateOnFailure 4016 + - RetryOnFailure 4017 + type: string 4018 + retryInterval: 4019 + description: |- 4020 + RetryInterval is the interval at which to retry a failed install. 4021 + Can be used only when Name is set to RetryOnFailure. 4022 + Defaults to '5m'. 4023 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4287 4024 type: string 4288 4025 required: 4289 - - name 4026 + - name 4290 4027 type: object 4291 - type: array 4292 - ignoreFailures: 4293 - description: |- 4294 - IgnoreFailures tells the controller to skip remediation when the Helm tests 4295 - are run but fail. Can be overwritten for tests run after install or upgrade 4296 - actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'. 4297 - type: boolean 4298 - timeout: 4299 - description: |- 4300 - Timeout is the time to wait for any individual Kubernetes operation during 4301 - the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'. 4302 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4303 - type: string 4304 - type: object 4305 - timeout: 4306 - description: |- 4307 - Timeout is the time to wait for any individual Kubernetes operation (like Jobs 4308 - for hooks) during the performance of a Helm action. Defaults to '5m0s'. 4309 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4310 - type: string 4311 - uninstall: 4312 - description: Uninstall holds the configuration for Helm uninstall 4313 - actions for this HelmRelease. 4314 - properties: 4315 - deletionPropagation: 4316 - default: background 4317 - description: |- 4318 - DeletionPropagation specifies the deletion propagation policy when 4319 - a Helm uninstall is performed. 4320 - enum: 4321 - - background 4322 - - foreground 4323 - - orphan 4324 - type: string 4325 - disableHooks: 4326 - description: DisableHooks prevents hooks from running during the 4327 - Helm rollback action. 4328 - type: boolean 4329 - disableWait: 4330 - description: |- 4331 - DisableWait disables waiting for all the resources to be deleted after 4332 - a Helm uninstall is performed. 4333 - type: boolean 4334 - keepHistory: 4335 - description: |- 4336 - KeepHistory tells Helm to remove all associated resources and mark the 4337 - release as deleted, but retain the release history. 4338 - type: boolean 4339 - timeout: 4340 - description: |- 4341 - Timeout is the time to wait for any individual Kubernetes operation (like 4342 - Jobs for hooks) during the performance of a Helm uninstall action. Defaults 4343 - to 'HelmReleaseSpec.Timeout'. 4344 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4345 - type: string 4346 - type: object 4347 - upgrade: 4348 - description: Upgrade holds the configuration for Helm upgrade actions 4349 - for this HelmRelease. 4350 - properties: 4351 - cleanupOnFail: 4352 - description: |- 4353 - CleanupOnFail allows deletion of new resources created during the Helm 4354 - upgrade action when it fails. 4355 - type: boolean 4356 - crds: 4357 - description: |- 4358 - CRDs upgrade CRDs from the Helm Chart's crds directory according 4359 - to the CRD upgrade policy provided here. Valid values are `Skip`, 4360 - `Create` or `CreateReplace`. Default is `Skip` and if omitted 4361 - CRDs are neither installed nor upgraded. 4028 + x-kubernetes-validations: 4029 + - message: .retryInterval cannot be set when .name is 'RemediateOnFailure' 4030 + rule: "!has(self.retryInterval) || self.name != 'RemediateOnFailure'" 4031 + timeout: 4032 + description: |- 4033 + Timeout is the time to wait for any individual Kubernetes operation (like 4034 + Jobs for hooks) during the performance of a Helm install action. Defaults to 4035 + 'HelmReleaseSpec.Timeout'. 4036 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4037 + type: string 4038 + type: object 4039 + interval: 4040 + description: Interval at which to reconcile the Helm release. 4041 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4042 + type: string 4043 + kubeConfig: 4044 + description: |- 4045 + KubeConfig for reconciling the HelmRelease on a remote cluster. 4046 + When used in combination with HelmReleaseSpec.ServiceAccountName, 4047 + forces the controller to act on behalf of that Service Account at the 4048 + target cluster. 4049 + If the --default-service-account flag is set, its value will be used as 4050 + a controller level fallback for when HelmReleaseSpec.ServiceAccountName 4051 + is empty. 4052 + properties: 4053 + configMapRef: 4054 + description: |- 4055 + ConfigMapRef holds an optional name of a ConfigMap that contains 4056 + the following keys: 4362 4057 4363 - Skip: do neither install nor replace (update) any CRDs. 4058 + - `provider`: the provider to use. One of `aws`, `azure`, `gcp`, or 4059 + `generic`. Required. 4060 + - `cluster`: the fully qualified resource name of the Kubernetes 4061 + cluster in the cloud provider API. Not used by the `generic` 4062 + provider. Required when one of `address` or `ca.crt` is not set. 4063 + - `address`: the address of the Kubernetes API server. Required 4064 + for `generic`. For the other providers, if not specified, the 4065 + first address in the cluster resource will be used, and if 4066 + specified, it must match one of the addresses in the cluster 4067 + resource. 4068 + If audiences is not set, will be used as the audience for the 4069 + `generic` provider. 4070 + - `ca.crt`: the optional PEM-encoded CA certificate for the 4071 + Kubernetes API server. If not set, the controller will use the 4072 + CA certificate from the cluster resource. 4073 + - `audiences`: the optional audiences as a list of 4074 + line-break-separated strings for the Kubernetes ServiceAccount 4075 + token. Defaults to the `address` for the `generic` provider, or 4076 + to specific values for the other providers depending on the 4077 + provider. 4078 + - `serviceAccountName`: the optional name of the Kubernetes 4079 + ServiceAccount in the same namespace that should be used 4080 + for authentication. If not specified, the controller 4081 + ServiceAccount will be used. 4364 4082 4365 - Create: new CRDs are created, existing CRDs are neither updated nor deleted. 4083 + Mutually exclusive with SecretRef. 4084 + properties: 4085 + name: 4086 + description: Name of the referent. 4087 + type: string 4088 + required: 4089 + - name 4090 + type: object 4091 + secretRef: 4092 + description: |- 4093 + SecretRef holds an optional name of a secret that contains a key with 4094 + the kubeconfig file as the value. If no key is set, the key will default 4095 + to 'value'. Mutually exclusive with ConfigMapRef. 4096 + It is recommended that the kubeconfig is self-contained, and the secret 4097 + is regularly updated if credentials such as a cloud-access-token expire. 4098 + Cloud specific `cmd-path` auth helpers will not function without adding 4099 + binaries and credentials to the Pod that is responsible for reconciling 4100 + Kubernetes resources. Supported only for the generic provider. 4101 + properties: 4102 + key: 4103 + description: 4104 + Key in the Secret, when not specified an implementation-specific 4105 + default key is used. 4106 + type: string 4107 + name: 4108 + description: Name of the Secret. 4109 + type: string 4110 + required: 4111 + - name 4112 + type: object 4113 + type: object 4114 + x-kubernetes-validations: 4115 + - message: 4116 + exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 4117 + must be specified 4118 + rule: has(self.configMapRef) || has(self.secretRef) 4119 + - message: 4120 + exactly one of spec.kubeConfig.configMapRef or spec.kubeConfig.secretRef 4121 + must be specified 4122 + rule: "!has(self.configMapRef) || !has(self.secretRef)" 4123 + maxHistory: 4124 + description: |- 4125 + MaxHistory is the number of revisions saved by Helm for this HelmRelease. 4126 + Use '0' for an unlimited number of revisions; defaults to '5'. 4127 + type: integer 4128 + persistentClient: 4129 + description: |- 4130 + PersistentClient tells the controller to use a persistent Kubernetes 4131 + client for this release. When enabled, the client will be reused for the 4132 + duration of the reconciliation, instead of being created and destroyed 4133 + for each (step of a) Helm action. 4366 4134 4367 - CreateReplace: new CRDs are created, existing CRDs are updated (replaced) 4368 - but not deleted. 4135 + This can improve performance, but may cause issues with some Helm charts 4136 + that for example do create Custom Resource Definitions during installation 4137 + outside Helm's CRD lifecycle hooks, which are then not observed to be 4138 + available by e.g. post-install hooks. 4369 4139 4370 - By default, CRDs are not applied during Helm upgrade action. With this 4371 - option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm. 4372 - https://helm.sh/docs/chart_best_practices/custom_resource_definitions. 4373 - enum: 4374 - - Skip 4375 - - Create 4376 - - CreateReplace 4377 - type: string 4378 - disableHooks: 4379 - description: DisableHooks prevents hooks from running during the 4380 - Helm upgrade action. 4381 - type: boolean 4382 - disableOpenAPIValidation: 4383 - description: |- 4384 - DisableOpenAPIValidation prevents the Helm upgrade action from validating 4385 - rendered templates against the Kubernetes OpenAPI Schema. 4386 - type: boolean 4387 - disableSchemaValidation: 4388 - description: |- 4389 - DisableSchemaValidation prevents the Helm upgrade action from validating 4390 - the values against the JSON Schema. 4391 - type: boolean 4392 - disableTakeOwnership: 4393 - description: |- 4394 - DisableTakeOwnership disables taking ownership of existing resources 4395 - during the Helm upgrade action. Defaults to false. 4396 - type: boolean 4397 - disableWait: 4398 - description: |- 4399 - DisableWait disables the waiting for resources to be ready after a Helm 4400 - upgrade has been performed. 4401 - type: boolean 4402 - disableWaitForJobs: 4403 - description: |- 4404 - DisableWaitForJobs disables waiting for jobs to complete after a Helm 4405 - upgrade has been performed. 4406 - type: boolean 4407 - force: 4408 - description: |- 4409 - Force forces resource updates through a replacement strategy 4410 - that avoids 3-way merge conflicts on client-side apply. 4411 - This field is ignored for server-side apply (which always 4412 - forces conflicts with other field managers). 4413 - type: boolean 4414 - preserveValues: 4415 - description: |- 4416 - PreserveValues will make Helm reuse the last release's values and merge in 4417 - overrides from 'Values'. Setting this flag makes the HelmRelease 4418 - non-declarative. 4419 - type: boolean 4420 - remediation: 4421 - description: |- 4422 - Remediation holds the remediation configuration for when the Helm upgrade 4423 - action for the HelmRelease fails. The default is to not perform any action. 4140 + If not set, it defaults to true. 4141 + type: boolean 4142 + postRenderers: 4143 + description: |- 4144 + PostRenderers holds an array of Helm PostRenderers, which will be applied in order 4145 + of their definition. 4146 + items: 4147 + description: PostRenderer contains a Helm PostRenderer specification. 4424 4148 properties: 4425 - ignoreTestFailures: 4426 - description: |- 4427 - IgnoreTestFailures tells the controller to skip remediation when the Helm 4428 - tests are run after an upgrade action but fail. 4429 - Defaults to 'Test.IgnoreFailures'. 4430 - type: boolean 4431 - remediateLastFailure: 4432 - description: |- 4433 - RemediateLastFailure tells the controller to remediate the last failure, when 4434 - no retries remain. Defaults to 'false' unless 'Retries' is greater than 0. 4435 - type: boolean 4436 - retries: 4437 - description: |- 4438 - Retries is the number of retries that should be attempted on failures before 4439 - bailing. Remediation, using 'Strategy', is performed between each attempt. 4440 - Defaults to '0', a negative integer equals to unlimited retries. 4441 - type: integer 4442 - strategy: 4443 - description: Strategy to use for failure remediation. Defaults 4444 - to 'rollback'. 4445 - enum: 4446 - - rollback 4447 - - uninstall 4448 - type: string 4149 + kustomize: 4150 + description: Kustomization to apply as PostRenderer. 4151 + properties: 4152 + images: 4153 + description: |- 4154 + Images is a list of (image name, new name, new tag or digest) 4155 + for changing image names, tags or digests. This can also be achieved with a 4156 + patch, but this operator is simpler to specify. 4157 + items: 4158 + description: 4159 + Image contains an image name, a new name, 4160 + a new tag or digest, which will replace the original 4161 + name and tag. 4162 + properties: 4163 + digest: 4164 + description: |- 4165 + Digest is the value used to replace the original image tag. 4166 + If digest is present NewTag value is ignored. 4167 + type: string 4168 + name: 4169 + description: Name is a tag-less image name. 4170 + type: string 4171 + newName: 4172 + description: 4173 + NewName is the value used to replace 4174 + the original name. 4175 + type: string 4176 + newTag: 4177 + description: 4178 + NewTag is the value used to replace the 4179 + original tag. 4180 + type: string 4181 + required: 4182 + - name 4183 + type: object 4184 + type: array 4185 + patches: 4186 + description: |- 4187 + Strategic merge and JSON patches, defined as inline YAML objects, 4188 + capable of targeting objects based on kind, label and annotation selectors. 4189 + items: 4190 + description: |- 4191 + Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should 4192 + be applied to. 4193 + properties: 4194 + patch: 4195 + description: |- 4196 + Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with 4197 + an array of operation objects. 4198 + type: string 4199 + target: 4200 + description: 4201 + Target points to the resources that the 4202 + patch document should be applied to. 4203 + properties: 4204 + annotationSelector: 4205 + description: |- 4206 + AnnotationSelector is a string that follows the label selection expression 4207 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 4208 + It matches with the resource annotations. 4209 + type: string 4210 + group: 4211 + description: |- 4212 + Group is the API group to select resources from. 4213 + Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. 4214 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4215 + type: string 4216 + kind: 4217 + description: |- 4218 + Kind of the API Group to select resources from. 4219 + Together with Group and Version it is capable of unambiguously 4220 + identifying and/or selecting resources. 4221 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4222 + type: string 4223 + labelSelector: 4224 + description: |- 4225 + LabelSelector is a string that follows the label selection expression 4226 + https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api 4227 + It matches with the resource labels. 4228 + type: string 4229 + name: 4230 + description: Name to match resources with. 4231 + type: string 4232 + namespace: 4233 + description: Namespace to select resources from. 4234 + type: string 4235 + version: 4236 + description: |- 4237 + Version of the API Group to select resources from. 4238 + Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. 4239 + https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md 4240 + type: string 4241 + type: object 4242 + required: 4243 + - patch 4244 + type: object 4245 + type: array 4246 + type: object 4449 4247 type: object 4450 - serverSideApply: 4451 - description: |- 4452 - ServerSideApply enables server-side apply for resources during upgrade. 4453 - Can be "enabled", "disabled", or "auto". 4454 - When "auto", server-side apply usage will be based on the release's previous usage. 4455 - Defaults to "auto". 4456 - enum: 4457 - - enabled 4458 - - disabled 4459 - - auto 4460 - type: string 4461 - strategy: 4462 - description: |- 4463 - Strategy defines the upgrade strategy to use for this HelmRelease. 4464 - Defaults to 'RemediateOnFailure', or 'RetryOnFailure' when the 4465 - DefaultToRetryOnFailure feature gate is enabled. 4466 - properties: 4467 - name: 4468 - description: Name of the upgrade strategy. 4469 - enum: 4470 - - RemediateOnFailure 4471 - - RetryOnFailure 4472 - type: string 4473 - retryInterval: 4474 - description: |- 4475 - RetryInterval is the interval at which to retry a failed upgrade. 4476 - Can be used only when Name is set to RetryOnFailure. 4477 - Defaults to '5m'. 4478 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4479 - type: string 4480 - required: 4481 - - name 4482 - type: object 4483 - x-kubernetes-validations: 4484 - - message: .retryInterval can only be set when .name is 'RetryOnFailure' 4485 - rule: '!has(self.retryInterval) || self.name == ''RetryOnFailure''' 4486 - timeout: 4487 - description: |- 4488 - Timeout is the time to wait for any individual Kubernetes operation (like 4489 - Jobs for hooks) during the performance of a Helm upgrade action. Defaults to 4490 - 'HelmReleaseSpec.Timeout'. 4491 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4492 - type: string 4493 - type: object 4494 - values: 4495 - description: Values holds the values for this Helm release. 4496 - x-kubernetes-preserve-unknown-fields: true 4497 - valuesFrom: 4498 - description: |- 4499 - ValuesFrom holds references to resources containing Helm values for this HelmRelease, 4500 - and information about how they should be merged. 4501 - items: 4248 + type: array 4249 + releaseName: 4502 4250 description: |- 4503 - ValuesReference contains a reference to a resource containing Helm values, 4504 - and optionally the key they can be found at. 4251 + ReleaseName used for the Helm release. Defaults to a composition of 4252 + '[TargetNamespace-]Name'. 4253 + maxLength: 53 4254 + minLength: 1 4255 + type: string 4256 + rollback: 4257 + description: 4258 + Rollback holds the configuration for Helm rollback actions 4259 + for this HelmRelease. 4505 4260 properties: 4506 - kind: 4507 - description: Kind of the values referent, valid values are ('Secret', 4508 - 'ConfigMap'). 4261 + cleanupOnFail: 4262 + description: |- 4263 + CleanupOnFail allows deletion of new resources created during the Helm 4264 + rollback action when it fails. 4265 + type: boolean 4266 + disableHooks: 4267 + description: 4268 + DisableHooks prevents hooks from running during the 4269 + Helm rollback action. 4270 + type: boolean 4271 + disableWait: 4272 + description: |- 4273 + DisableWait disables the waiting for resources to be ready after a Helm 4274 + rollback has been performed. 4275 + type: boolean 4276 + disableWaitForJobs: 4277 + description: |- 4278 + DisableWaitForJobs disables waiting for jobs to complete after a Helm 4279 + rollback has been performed. 4280 + type: boolean 4281 + force: 4282 + description: |- 4283 + Force forces resource updates through a replacement strategy 4284 + that avoids 3-way merge conflicts on client-side apply. 4285 + This field is ignored for server-side apply (which always 4286 + forces conflicts with other field managers). 4287 + type: boolean 4288 + recreate: 4289 + description: |- 4290 + Recreate performs pod restarts for any managed workloads. 4291 + 4292 + Deprecated: This behavior was deprecated in Helm 3: 4293 + - Deprecation: https://github.com/helm/helm/pull/6463 4294 + - Removal: https://github.com/helm/helm/pull/31023 4295 + After helm-controller was upgraded to the Helm 4 SDK, 4296 + this field is no longer functional and will print a 4297 + warning if set to true. It will also be removed in a 4298 + future release. 4299 + type: boolean 4300 + serverSideApply: 4301 + description: |- 4302 + ServerSideApply enables server-side apply for resources during rollback. 4303 + Can be "enabled", "disabled", or "auto". 4304 + When "auto", server-side apply usage will be based on the release's previous usage. 4305 + Defaults to "auto". 4509 4306 enum: 4510 - - Secret 4511 - - ConfigMap 4307 + - enabled 4308 + - disabled 4309 + - auto 4512 4310 type: string 4513 - name: 4311 + timeout: 4514 4312 description: |- 4515 - Name of the values referent. Should reside in the same namespace as the 4516 - referring resource. 4517 - maxLength: 253 4518 - minLength: 1 4313 + Timeout is the time to wait for any individual Kubernetes operation (like 4314 + Jobs for hooks) during the performance of a Helm rollback action. Defaults to 4315 + 'HelmReleaseSpec.Timeout'. 4316 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4519 4317 type: string 4520 - optional: 4318 + type: object 4319 + serviceAccountName: 4320 + description: |- 4321 + The name of the Kubernetes service account to impersonate 4322 + when reconciling this HelmRelease. 4323 + maxLength: 253 4324 + minLength: 1 4325 + type: string 4326 + storageNamespace: 4327 + description: |- 4328 + StorageNamespace used for the Helm storage. 4329 + Defaults to the namespace of the HelmRelease. 4330 + maxLength: 63 4331 + minLength: 1 4332 + type: string 4333 + suspend: 4334 + description: |- 4335 + Suspend tells the controller to suspend reconciliation for this HelmRelease, 4336 + it does not apply to already started reconciliations. Defaults to false. 4337 + type: boolean 4338 + targetNamespace: 4339 + description: |- 4340 + TargetNamespace to target when performing operations for the HelmRelease. 4341 + Defaults to the namespace of the HelmRelease. 4342 + maxLength: 63 4343 + minLength: 1 4344 + type: string 4345 + test: 4346 + description: 4347 + Test holds the configuration for Helm test actions for 4348 + this HelmRelease. 4349 + properties: 4350 + enable: 4521 4351 description: |- 4522 - Optional marks this ValuesReference as optional. When set, a not found error 4523 - for the values reference is ignored, but any ValuesKey, TargetPath or 4524 - transient error will still result in a reconciliation failure. 4352 + Enable enables Helm test actions for this HelmRelease after an Helm install 4353 + or upgrade action has been performed. 4525 4354 type: boolean 4526 - targetPath: 4355 + filters: 4356 + description: 4357 + Filters is a list of tests to run or exclude from 4358 + running. 4359 + items: 4360 + description: 4361 + Filter holds the configuration for individual Helm 4362 + test filters. 4363 + properties: 4364 + exclude: 4365 + description: 4366 + Exclude specifies whether the named test should 4367 + be excluded. 4368 + type: boolean 4369 + name: 4370 + description: Name is the name of the test. 4371 + maxLength: 253 4372 + minLength: 1 4373 + type: string 4374 + required: 4375 + - name 4376 + type: object 4377 + type: array 4378 + ignoreFailures: 4527 4379 description: |- 4528 - TargetPath is the YAML dot notation path the value should be merged at. When 4529 - set, the ValuesKey is expected to be a single flat value. Defaults to 'None', 4530 - which results in the values getting merged at the root. 4531 - maxLength: 250 4532 - pattern: ^([a-zA-Z0-9_\-.\\\/]|\[[0-9]{1,5}\])+$ 4533 - type: string 4534 - valuesKey: 4380 + IgnoreFailures tells the controller to skip remediation when the Helm tests 4381 + are run but fail. Can be overwritten for tests run after install or upgrade 4382 + actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'. 4383 + type: boolean 4384 + timeout: 4535 4385 description: |- 4536 - ValuesKey is the data key where the values.yaml or a specific value can be 4537 - found at. Defaults to 'values.yaml'. 4538 - maxLength: 253 4539 - pattern: ^[\-._a-zA-Z0-9]+$ 4386 + Timeout is the time to wait for any individual Kubernetes operation during 4387 + the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'. 4388 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4540 4389 type: string 4541 - required: 4542 - - kind 4543 - - name 4544 4390 type: object 4545 - type: array 4546 - waitStrategy: 4547 - description: |- 4548 - WaitStrategy defines Helm's wait strategy for waiting for applied 4549 - resources to become ready. 4550 - properties: 4551 - name: 4552 - description: |- 4553 - Name is Helm's wait strategy for waiting for applied resources to 4554 - become ready. One of 'poller' or 'legacy'. The 'poller' strategy uses 4555 - kstatus to poll resource statuses, while the 'legacy' strategy uses 4556 - Helm v3's waiting logic. 4557 - Defaults to 'poller', or to 'legacy' when UseHelm3Defaults feature 4558 - gate is enabled. 4559 - enum: 4560 - - poller 4561 - - legacy 4562 - type: string 4563 - required: 4564 - - name 4565 - type: object 4566 - required: 4567 - - interval 4568 - type: object 4569 - x-kubernetes-validations: 4570 - - message: either chart or chartRef must be set 4571 - rule: (has(self.chart) && !has(self.chartRef)) || (!has(self.chart) 4572 - && has(self.chartRef)) 4573 - status: 4574 - default: 4575 - observedGeneration: -1 4576 - description: HelmReleaseStatus defines the observed state of a HelmRelease. 4577 - properties: 4578 - conditions: 4579 - description: Conditions holds the conditions for the HelmRelease. 4580 - items: 4581 - description: Condition contains details for one aspect of the current 4582 - state of this API Resource. 4391 + timeout: 4392 + description: |- 4393 + Timeout is the time to wait for any individual Kubernetes operation (like Jobs 4394 + for hooks) during the performance of a Helm action. Defaults to '5m0s'. 4395 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4396 + type: string 4397 + uninstall: 4398 + description: 4399 + Uninstall holds the configuration for Helm uninstall 4400 + actions for this HelmRelease. 4583 4401 properties: 4584 - lastTransitionTime: 4402 + deletionPropagation: 4403 + default: background 4585 4404 description: |- 4586 - lastTransitionTime is the last time the condition transitioned from one status to another. 4587 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 4588 - format: date-time 4405 + DeletionPropagation specifies the deletion propagation policy when 4406 + a Helm uninstall is performed. 4407 + enum: 4408 + - background 4409 + - foreground 4410 + - orphan 4589 4411 type: string 4590 - message: 4412 + disableHooks: 4413 + description: 4414 + DisableHooks prevents hooks from running during the 4415 + Helm rollback action. 4416 + type: boolean 4417 + disableWait: 4591 4418 description: |- 4592 - message is a human readable message indicating details about the transition. 4593 - This may be an empty string. 4594 - maxLength: 32768 4595 - type: string 4596 - observedGeneration: 4419 + DisableWait disables waiting for all the resources to be deleted after 4420 + a Helm uninstall is performed. 4421 + type: boolean 4422 + keepHistory: 4597 4423 description: |- 4598 - observedGeneration represents the .metadata.generation that the condition was set based upon. 4599 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 4600 - with respect to the current state of the instance. 4601 - format: int64 4602 - minimum: 0 4603 - type: integer 4604 - reason: 4424 + KeepHistory tells Helm to remove all associated resources and mark the 4425 + release as deleted, but retain the release history. 4426 + type: boolean 4427 + timeout: 4605 4428 description: |- 4606 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 4607 - Producers of specific condition types may define expected values and meanings for this field, 4608 - and whether the values are considered a guaranteed API. 4609 - The value should be a CamelCase string. 4610 - This field may not be empty. 4611 - maxLength: 1024 4612 - minLength: 1 4613 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 4614 - type: string 4615 - status: 4616 - description: status of the condition, one of True, False, Unknown. 4617 - enum: 4618 - - "True" 4619 - - "False" 4620 - - Unknown 4621 - type: string 4622 - type: 4623 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 4624 - maxLength: 316 4625 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 4429 + Timeout is the time to wait for any individual Kubernetes operation (like 4430 + Jobs for hooks) during the performance of a Helm uninstall action. Defaults 4431 + to 'HelmReleaseSpec.Timeout'. 4432 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4626 4433 type: string 4627 - required: 4628 - - lastTransitionTime 4629 - - message 4630 - - reason 4631 - - status 4632 - - type 4633 4434 type: object 4634 - type: array 4635 - failures: 4636 - description: |- 4637 - Failures is the reconciliation failure count against the latest desired 4638 - state. It is reset after a successful reconciliation. 4639 - format: int64 4640 - type: integer 4641 - helmChart: 4642 - description: |- 4643 - HelmChart is the namespaced name of the HelmChart resource created by 4644 - the controller for the HelmRelease. 4645 - type: string 4646 - history: 4647 - description: |- 4648 - History holds the history of Helm releases performed for this HelmRelease 4649 - up to the last successfully completed release. 4650 - items: 4651 - description: |- 4652 - Snapshot captures a point-in-time copy of the status information for a Helm release, 4653 - as managed by the controller. 4435 + upgrade: 4436 + description: 4437 + Upgrade holds the configuration for Helm upgrade actions 4438 + for this HelmRelease. 4654 4439 properties: 4655 - action: 4656 - description: Action is the action that resulted in this snapshot 4657 - being created. 4440 + cleanupOnFail: 4441 + description: |- 4442 + CleanupOnFail allows deletion of new resources created during the Helm 4443 + upgrade action when it fails. 4444 + type: boolean 4445 + crds: 4446 + description: |- 4447 + CRDs upgrade CRDs from the Helm Chart's crds directory according 4448 + to the CRD upgrade policy provided here. Valid values are `Skip`, 4449 + `Create` or `CreateReplace`. Default is `Skip` and if omitted 4450 + CRDs are neither installed nor upgraded. 4451 + 4452 + Skip: do neither install nor replace (update) any CRDs. 4453 + 4454 + Create: new CRDs are created, existing CRDs are neither updated nor deleted. 4455 + 4456 + CreateReplace: new CRDs are created, existing CRDs are updated (replaced) 4457 + but not deleted. 4458 + 4459 + By default, CRDs are not applied during Helm upgrade action. With this 4460 + option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm. 4461 + https://helm.sh/docs/chart_best_practices/custom_resource_definitions. 4462 + enum: 4463 + - Skip 4464 + - Create 4465 + - CreateReplace 4658 4466 type: string 4659 - apiVersion: 4467 + disableHooks: 4468 + description: 4469 + DisableHooks prevents hooks from running during the 4470 + Helm upgrade action. 4471 + type: boolean 4472 + disableOpenAPIValidation: 4473 + description: |- 4474 + DisableOpenAPIValidation prevents the Helm upgrade action from validating 4475 + rendered templates against the Kubernetes OpenAPI Schema. 4476 + type: boolean 4477 + disableSchemaValidation: 4478 + description: |- 4479 + DisableSchemaValidation prevents the Helm upgrade action from validating 4480 + the values against the JSON Schema. 4481 + type: boolean 4482 + disableTakeOwnership: 4483 + description: |- 4484 + DisableTakeOwnership disables taking ownership of existing resources 4485 + during the Helm upgrade action. Defaults to false. 4486 + type: boolean 4487 + disableWait: 4488 + description: |- 4489 + DisableWait disables the waiting for resources to be ready after a Helm 4490 + upgrade has been performed. 4491 + type: boolean 4492 + disableWaitForJobs: 4660 4493 description: |- 4661 - APIVersion is the API version of the Snapshot. 4662 - When the calculation method of the Digest field is changed, this 4663 - field will be used to distinguish between the old and new methods. 4664 - type: string 4665 - appVersion: 4666 - description: AppVersion is the chart app version of the release 4667 - object in storage. 4668 - type: string 4669 - chartName: 4670 - description: ChartName is the chart name of the release object 4671 - in storage. 4672 - type: string 4673 - chartVersion: 4494 + DisableWaitForJobs disables waiting for jobs to complete after a Helm 4495 + upgrade has been performed. 4496 + type: boolean 4497 + force: 4498 + description: |- 4499 + Force forces resource updates through a replacement strategy 4500 + that avoids 3-way merge conflicts on client-side apply. 4501 + This field is ignored for server-side apply (which always 4502 + forces conflicts with other field managers). 4503 + type: boolean 4504 + preserveValues: 4505 + description: |- 4506 + PreserveValues will make Helm reuse the last release's values and merge in 4507 + overrides from 'Values'. Setting this flag makes the HelmRelease 4508 + non-declarative. 4509 + type: boolean 4510 + remediation: 4511 + description: |- 4512 + Remediation holds the remediation configuration for when the Helm upgrade 4513 + action for the HelmRelease fails. The default is to not perform any action. 4514 + properties: 4515 + ignoreTestFailures: 4516 + description: |- 4517 + IgnoreTestFailures tells the controller to skip remediation when the Helm 4518 + tests are run after an upgrade action but fail. 4519 + Defaults to 'Test.IgnoreFailures'. 4520 + type: boolean 4521 + remediateLastFailure: 4522 + description: |- 4523 + RemediateLastFailure tells the controller to remediate the last failure, when 4524 + no retries remain. Defaults to 'false' unless 'Retries' is greater than 0. 4525 + type: boolean 4526 + retries: 4527 + description: |- 4528 + Retries is the number of retries that should be attempted on failures before 4529 + bailing. Remediation, using 'Strategy', is performed between each attempt. 4530 + Defaults to '0', a negative integer equals to unlimited retries. 4531 + type: integer 4532 + strategy: 4533 + description: 4534 + Strategy to use for failure remediation. Defaults 4535 + to 'rollback'. 4536 + enum: 4537 + - rollback 4538 + - uninstall 4539 + type: string 4540 + type: object 4541 + serverSideApply: 4674 4542 description: |- 4675 - ChartVersion is the chart version of the release object in 4676 - storage. 4543 + ServerSideApply enables server-side apply for resources during upgrade. 4544 + Can be "enabled", "disabled", or "auto". 4545 + When "auto", server-side apply usage will be based on the release's previous usage. 4546 + Defaults to "auto". 4547 + enum: 4548 + - enabled 4549 + - disabled 4550 + - auto 4677 4551 type: string 4678 - configDigest: 4552 + strategy: 4679 4553 description: |- 4680 - ConfigDigest is the checksum of the config (better known as 4681 - "values") of the release object in storage. 4682 - It has the format of `<algo>:<checksum>`. 4683 - type: string 4684 - deleted: 4685 - description: Deleted is when the release was deleted. 4686 - format: date-time 4687 - type: string 4688 - digest: 4554 + Strategy defines the upgrade strategy to use for this HelmRelease. 4555 + Defaults to 'RemediateOnFailure', or 'RetryOnFailure' when the 4556 + DefaultToRetryOnFailure feature gate is enabled. 4557 + properties: 4558 + name: 4559 + description: Name of the upgrade strategy. 4560 + enum: 4561 + - RemediateOnFailure 4562 + - RetryOnFailure 4563 + type: string 4564 + retryInterval: 4565 + description: |- 4566 + RetryInterval is the interval at which to retry a failed upgrade. 4567 + Can be used only when Name is set to RetryOnFailure. 4568 + Defaults to '5m'. 4569 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4570 + type: string 4571 + required: 4572 + - name 4573 + type: object 4574 + x-kubernetes-validations: 4575 + - message: .retryInterval can only be set when .name is 'RetryOnFailure' 4576 + rule: "!has(self.retryInterval) || self.name == 'RetryOnFailure'" 4577 + timeout: 4689 4578 description: |- 4690 - Digest is the checksum of the release object in storage. 4691 - It has the format of `<algo>:<checksum>`. 4579 + Timeout is the time to wait for any individual Kubernetes operation (like 4580 + Jobs for hooks) during the performance of a Helm upgrade action. Defaults to 4581 + 'HelmReleaseSpec.Timeout'. 4582 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 4692 4583 type: string 4693 - firstDeployed: 4694 - description: FirstDeployed is when the release was first deployed. 4695 - format: date-time 4696 - type: string 4697 - lastDeployed: 4698 - description: LastDeployed is when the release was last deployed. 4699 - format: date-time 4700 - type: string 4584 + type: object 4585 + values: 4586 + description: Values holds the values for this Helm release. 4587 + x-kubernetes-preserve-unknown-fields: true 4588 + valuesFrom: 4589 + description: |- 4590 + ValuesFrom holds references to resources containing Helm values for this HelmRelease, 4591 + and information about how they should be merged. 4592 + items: 4593 + description: |- 4594 + ValuesReference contains a reference to a resource containing Helm values, 4595 + and optionally the key they can be found at. 4596 + properties: 4597 + kind: 4598 + description: 4599 + Kind of the values referent, valid values are ('Secret', 4600 + 'ConfigMap'). 4601 + enum: 4602 + - Secret 4603 + - ConfigMap 4604 + type: string 4605 + name: 4606 + description: |- 4607 + Name of the values referent. Should reside in the same namespace as the 4608 + referring resource. 4609 + maxLength: 253 4610 + minLength: 1 4611 + type: string 4612 + optional: 4613 + description: |- 4614 + Optional marks this ValuesReference as optional. When set, a not found error 4615 + for the values reference is ignored, but any ValuesKey, TargetPath or 4616 + transient error will still result in a reconciliation failure. 4617 + type: boolean 4618 + targetPath: 4619 + description: |- 4620 + TargetPath is the YAML dot notation path the value should be merged at. When 4621 + set, the ValuesKey is expected to be a single flat value. Defaults to 'None', 4622 + which results in the values getting merged at the root. 4623 + maxLength: 250 4624 + pattern: ^([a-zA-Z0-9_\-.\\\/]|\[[0-9]{1,5}\])+$ 4625 + type: string 4626 + valuesKey: 4627 + description: |- 4628 + ValuesKey is the data key where the values.yaml or a specific value can be 4629 + found at. Defaults to 'values.yaml'. 4630 + maxLength: 253 4631 + pattern: ^[\-._a-zA-Z0-9]+$ 4632 + type: string 4633 + required: 4634 + - kind 4635 + - name 4636 + type: object 4637 + type: array 4638 + waitStrategy: 4639 + description: |- 4640 + WaitStrategy defines Helm's wait strategy for waiting for applied 4641 + resources to become ready. 4642 + properties: 4701 4643 name: 4702 - description: Name is the name of the release. 4644 + description: |- 4645 + Name is Helm's wait strategy for waiting for applied resources to 4646 + become ready. One of 'poller' or 'legacy'. The 'poller' strategy uses 4647 + kstatus to poll resource statuses, while the 'legacy' strategy uses 4648 + Helm v3's waiting logic. 4649 + Defaults to 'poller', or to 'legacy' when UseHelm3Defaults feature 4650 + gate is enabled. 4651 + enum: 4652 + - poller 4653 + - legacy 4703 4654 type: string 4704 - namespace: 4705 - description: Namespace is the namespace the release is deployed 4706 - to. 4707 - type: string 4708 - ociDigest: 4709 - description: OCIDigest is the digest of the OCI artifact associated 4710 - with the release. 4711 - type: string 4712 - status: 4713 - description: Status is the current state of the release. 4714 - type: string 4715 - testHooks: 4716 - additionalProperties: 4655 + required: 4656 + - name 4657 + type: object 4658 + required: 4659 + - interval 4660 + type: object 4661 + x-kubernetes-validations: 4662 + - message: either chart or chartRef must be set 4663 + rule: 4664 + (has(self.chart) && !has(self.chartRef)) || (!has(self.chart) 4665 + && has(self.chartRef)) 4666 + status: 4667 + default: 4668 + observedGeneration: -1 4669 + description: HelmReleaseStatus defines the observed state of a HelmRelease. 4670 + properties: 4671 + conditions: 4672 + description: Conditions holds the conditions for the HelmRelease. 4673 + items: 4674 + description: 4675 + Condition contains details for one aspect of the current 4676 + state of this API Resource. 4677 + properties: 4678 + lastTransitionTime: 4717 4679 description: |- 4718 - TestHookStatus holds the status information for a test hook as observed 4719 - to be run by the controller. 4680 + lastTransitionTime is the last time the condition transitioned from one status to another. 4681 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 4682 + format: date-time 4683 + type: string 4684 + message: 4685 + description: |- 4686 + message is a human readable message indicating details about the transition. 4687 + This may be an empty string. 4688 + maxLength: 32768 4689 + type: string 4690 + observedGeneration: 4691 + description: |- 4692 + observedGeneration represents the .metadata.generation that the condition was set based upon. 4693 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 4694 + with respect to the current state of the instance. 4695 + format: int64 4696 + minimum: 0 4697 + type: integer 4698 + reason: 4699 + description: |- 4700 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 4701 + Producers of specific condition types may define expected values and meanings for this field, 4702 + and whether the values are considered a guaranteed API. 4703 + The value should be a CamelCase string. 4704 + This field may not be empty. 4705 + maxLength: 1024 4706 + minLength: 1 4707 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 4708 + type: string 4709 + status: 4710 + description: status of the condition, one of True, False, Unknown. 4711 + enum: 4712 + - "True" 4713 + - "False" 4714 + - Unknown 4715 + type: string 4716 + type: 4717 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 4718 + maxLength: 316 4719 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 4720 + type: string 4721 + required: 4722 + - lastTransitionTime 4723 + - message 4724 + - reason 4725 + - status 4726 + - type 4727 + type: object 4728 + type: array 4729 + failures: 4730 + description: |- 4731 + Failures is the reconciliation failure count against the latest desired 4732 + state. It is reset after a successful reconciliation. 4733 + format: int64 4734 + type: integer 4735 + helmChart: 4736 + description: |- 4737 + HelmChart is the namespaced name of the HelmChart resource created by 4738 + the controller for the HelmRelease. 4739 + type: string 4740 + history: 4741 + description: |- 4742 + History holds the history of Helm releases performed for this HelmRelease 4743 + up to the last successfully completed release. 4744 + items: 4745 + description: |- 4746 + Snapshot captures a point-in-time copy of the status information for a Helm release, 4747 + as managed by the controller. 4748 + properties: 4749 + action: 4750 + description: 4751 + Action is the action that resulted in this snapshot 4752 + being created. 4753 + type: string 4754 + apiVersion: 4755 + description: |- 4756 + APIVersion is the API version of the Snapshot. 4757 + When the calculation method of the Digest field is changed, this 4758 + field will be used to distinguish between the old and new methods. 4759 + type: string 4760 + appVersion: 4761 + description: 4762 + AppVersion is the chart app version of the release 4763 + object in storage. 4764 + type: string 4765 + chartName: 4766 + description: 4767 + ChartName is the chart name of the release object 4768 + in storage. 4769 + type: string 4770 + chartVersion: 4771 + description: |- 4772 + ChartVersion is the chart version of the release object in 4773 + storage. 4774 + type: string 4775 + configDigest: 4776 + description: |- 4777 + ConfigDigest is the checksum of the config (better known as 4778 + "values") of the release object in storage. 4779 + It has the format of `<algo>:<checksum>`. 4780 + type: string 4781 + deleted: 4782 + description: Deleted is when the release was deleted. 4783 + format: date-time 4784 + type: string 4785 + digest: 4786 + description: |- 4787 + Digest is the checksum of the release object in storage. 4788 + It has the format of `<algo>:<checksum>`. 4789 + type: string 4790 + firstDeployed: 4791 + description: FirstDeployed is when the release was first deployed. 4792 + format: date-time 4793 + type: string 4794 + lastDeployed: 4795 + description: LastDeployed is when the release was last deployed. 4796 + format: date-time 4797 + type: string 4798 + name: 4799 + description: Name is the name of the release. 4800 + type: string 4801 + namespace: 4802 + description: 4803 + Namespace is the namespace the release is deployed 4804 + to. 4805 + type: string 4806 + ociDigest: 4807 + description: 4808 + OCIDigest is the digest of the OCI artifact associated 4809 + with the release. 4810 + type: string 4811 + status: 4812 + description: Status is the current state of the release. 4813 + type: string 4814 + testHooks: 4815 + additionalProperties: 4816 + description: |- 4817 + TestHookStatus holds the status information for a test hook as observed 4818 + to be run by the controller. 4819 + properties: 4820 + lastCompleted: 4821 + description: 4822 + LastCompleted is the time the test hook last 4823 + completed. 4824 + format: date-time 4825 + type: string 4826 + lastStarted: 4827 + description: 4828 + LastStarted is the time the test hook was 4829 + last started. 4830 + format: date-time 4831 + type: string 4832 + phase: 4833 + description: Phase the test hook was observed to be in. 4834 + type: string 4835 + type: object 4836 + description: |- 4837 + TestHooks is the list of test hooks for the release as observed to be 4838 + run by the controller. 4839 + type: object 4840 + version: 4841 + description: 4842 + Version is the version of the release object in 4843 + storage. 4844 + type: integer 4845 + required: 4846 + - chartName 4847 + - chartVersion 4848 + - configDigest 4849 + - digest 4850 + - firstDeployed 4851 + - lastDeployed 4852 + - name 4853 + - namespace 4854 + - status 4855 + - version 4856 + type: object 4857 + type: array 4858 + installFailures: 4859 + description: |- 4860 + InstallFailures is the install failure count against the latest desired 4861 + state. It is reset after a successful reconciliation. 4862 + format: int64 4863 + type: integer 4864 + inventory: 4865 + description: |- 4866 + Inventory contains the list of Kubernetes resource object references 4867 + that have been applied for this release. 4868 + properties: 4869 + entries: 4870 + description: Entries of Kubernetes resource object references. 4871 + items: 4872 + description: 4873 + ResourceRef contains the information necessary 4874 + to locate a resource within a cluster. 4720 4875 properties: 4721 - lastCompleted: 4722 - description: LastCompleted is the time the test hook last 4723 - completed. 4724 - format: date-time 4876 + id: 4877 + description: |- 4878 + ID is the string representation of the Kubernetes resource object's metadata, 4879 + in the format '<namespace>_<name>_<group>_<kind>'. 4725 4880 type: string 4726 - lastStarted: 4727 - description: LastStarted is the time the test hook was 4728 - last started. 4729 - format: date-time 4730 - type: string 4731 - phase: 4732 - description: Phase the test hook was observed to be in. 4881 + v: 4882 + description: 4883 + Version is the API version of the Kubernetes 4884 + resource object's kind. 4733 4885 type: string 4886 + required: 4887 + - id 4888 + - v 4734 4889 type: object 4735 - description: |- 4736 - TestHooks is the list of test hooks for the release as observed to be 4737 - run by the controller. 4738 - type: object 4739 - version: 4740 - description: Version is the version of the release object in 4741 - storage. 4742 - type: integer 4890 + type: array 4743 4891 required: 4744 - - chartName 4745 - - chartVersion 4746 - - configDigest 4747 - - digest 4748 - - firstDeployed 4749 - - lastDeployed 4750 - - name 4751 - - namespace 4752 - - status 4753 - - version 4892 + - entries 4754 4893 type: object 4755 - type: array 4756 - installFailures: 4757 - description: |- 4758 - InstallFailures is the install failure count against the latest desired 4759 - state. It is reset after a successful reconciliation. 4760 - format: int64 4761 - type: integer 4762 - inventory: 4763 - description: |- 4764 - Inventory contains the list of Kubernetes resource object references 4765 - that have been applied for this release. 4766 - properties: 4767 - entries: 4768 - description: Entries of Kubernetes resource object references. 4769 - items: 4770 - description: ResourceRef contains the information necessary 4771 - to locate a resource within a cluster. 4772 - properties: 4773 - id: 4774 - description: |- 4775 - ID is the string representation of the Kubernetes resource object's metadata, 4776 - in the format '<namespace>_<name>_<group>_<kind>'. 4777 - type: string 4778 - v: 4779 - description: Version is the API version of the Kubernetes 4780 - resource object's kind. 4781 - type: string 4782 - required: 4783 - - id 4784 - - v 4785 - type: object 4786 - type: array 4787 - required: 4788 - - entries 4789 - type: object 4790 - lastAttemptedConfigDigest: 4791 - description: |- 4792 - LastAttemptedConfigDigest is the digest for the config (better known as 4793 - "values") of the last reconciliation attempt. 4794 - type: string 4795 - lastAttemptedGeneration: 4796 - description: |- 4797 - LastAttemptedGeneration is the last generation the controller attempted 4798 - to reconcile. 4799 - format: int64 4800 - type: integer 4801 - lastAttemptedReleaseAction: 4802 - description: |- 4803 - LastAttemptedReleaseAction is the last release action performed for this 4804 - HelmRelease. It is used to determine the active retry or remediation 4805 - strategy. 4806 - enum: 4807 - - install 4808 - - upgrade 4809 - type: string 4810 - lastAttemptedReleaseActionDuration: 4811 - description: |- 4812 - LastAttemptedReleaseActionDuration is the duration of the last 4813 - release action performed for this HelmRelease. 4814 - type: string 4815 - lastAttemptedRevision: 4816 - description: |- 4817 - LastAttemptedRevision is the Source revision of the last reconciliation 4818 - attempt. For OCIRepository sources, the 12 first characters of the digest are 4819 - appended to the chart version e.g. "1.2.3+1234567890ab". 4820 - type: string 4821 - lastAttemptedRevisionDigest: 4822 - description: |- 4823 - LastAttemptedRevisionDigest is the digest of the last reconciliation attempt. 4824 - This is only set for OCIRepository sources. 4825 - type: string 4826 - lastAttemptedValuesChecksum: 4827 - description: |- 4828 - LastAttemptedValuesChecksum is the SHA1 checksum for the values of the last 4829 - reconciliation attempt. 4894 + lastAttemptedConfigDigest: 4895 + description: |- 4896 + LastAttemptedConfigDigest is the digest for the config (better known as 4897 + "values") of the last reconciliation attempt. 4898 + type: string 4899 + lastAttemptedGeneration: 4900 + description: |- 4901 + LastAttemptedGeneration is the last generation the controller attempted 4902 + to reconcile. 4903 + format: int64 4904 + type: integer 4905 + lastAttemptedReleaseAction: 4906 + description: |- 4907 + LastAttemptedReleaseAction is the last release action performed for this 4908 + HelmRelease. It is used to determine the active retry or remediation 4909 + strategy. 4910 + enum: 4911 + - install 4912 + - upgrade 4913 + type: string 4914 + lastAttemptedReleaseActionDuration: 4915 + description: |- 4916 + LastAttemptedReleaseActionDuration is the duration of the last 4917 + release action performed for this HelmRelease. 4918 + type: string 4919 + lastAttemptedRevision: 4920 + description: |- 4921 + LastAttemptedRevision is the Source revision of the last reconciliation 4922 + attempt. For OCIRepository sources, the 12 first characters of the digest are 4923 + appended to the chart version e.g. "1.2.3+1234567890ab". 4924 + type: string 4925 + lastAttemptedRevisionDigest: 4926 + description: |- 4927 + LastAttemptedRevisionDigest is the digest of the last reconciliation attempt. 4928 + This is only set for OCIRepository sources. 4929 + type: string 4930 + lastAttemptedValuesChecksum: 4931 + description: |- 4932 + LastAttemptedValuesChecksum is the SHA1 checksum for the values of the last 4933 + reconciliation attempt. 4830 4934 4831 - Deprecated: Use LastAttemptedConfigDigest instead. 4832 - type: string 4833 - lastHandledForceAt: 4834 - description: |- 4835 - LastHandledForceAt holds the value of the most recent 4836 - force request value, so a change of the annotation value 4837 - can be detected. 4838 - type: string 4839 - lastHandledReconcileAt: 4840 - description: |- 4841 - LastHandledReconcileAt holds the value of the most recent 4842 - reconcile request value, so a change of the annotation value 4843 - can be detected. 4844 - type: string 4845 - lastHandledResetAt: 4846 - description: |- 4847 - LastHandledResetAt holds the value of the most recent reset request 4848 - value, so a change of the annotation value can be detected. 4849 - type: string 4850 - lastReleaseRevision: 4851 - description: |- 4852 - LastReleaseRevision is the revision of the last successful Helm release. 4935 + Deprecated: Use LastAttemptedConfigDigest instead. 4936 + type: string 4937 + lastHandledForceAt: 4938 + description: |- 4939 + LastHandledForceAt holds the value of the most recent 4940 + force request value, so a change of the annotation value 4941 + can be detected. 4942 + type: string 4943 + lastHandledReconcileAt: 4944 + description: |- 4945 + LastHandledReconcileAt holds the value of the most recent 4946 + reconcile request value, so a change of the annotation value 4947 + can be detected. 4948 + type: string 4949 + lastHandledResetAt: 4950 + description: |- 4951 + LastHandledResetAt holds the value of the most recent reset request 4952 + value, so a change of the annotation value can be detected. 4953 + type: string 4954 + lastReleaseRevision: 4955 + description: |- 4956 + LastReleaseRevision is the revision of the last successful Helm release. 4853 4957 4854 - Deprecated: Use History instead. 4855 - type: integer 4856 - observedCommonMetadataDigest: 4857 - description: |- 4858 - ObservedCommonMetadataDigest is the digest for the common metadata of 4859 - the last successful reconciliation attempt. 4860 - type: string 4861 - observedGeneration: 4862 - description: ObservedGeneration is the last observed generation. 4863 - format: int64 4864 - type: integer 4865 - observedPostRenderersDigest: 4866 - description: |- 4867 - ObservedPostRenderersDigest is the digest for the post-renderers of 4868 - the last successful reconciliation attempt. 4869 - type: string 4870 - storageNamespace: 4871 - description: |- 4872 - StorageNamespace is the namespace of the Helm release storage for the 4873 - current release. 4874 - maxLength: 63 4875 - minLength: 1 4876 - type: string 4877 - upgradeFailures: 4878 - description: |- 4879 - UpgradeFailures is the upgrade failure count against the latest desired 4880 - state. It is reset after a successful reconciliation. 4881 - format: int64 4882 - type: integer 4883 - type: object 4884 - type: object 4885 - served: true 4886 - storage: true 4887 - subresources: 4888 - status: {} 4958 + Deprecated: Use History instead. 4959 + type: integer 4960 + observedCommonMetadataDigest: 4961 + description: |- 4962 + ObservedCommonMetadataDigest is the digest for the common metadata of 4963 + the last successful reconciliation attempt. 4964 + type: string 4965 + observedGeneration: 4966 + description: ObservedGeneration is the last observed generation. 4967 + format: int64 4968 + type: integer 4969 + observedPostRenderersDigest: 4970 + description: |- 4971 + ObservedPostRenderersDigest is the digest for the post-renderers of 4972 + the last successful reconciliation attempt. 4973 + type: string 4974 + storageNamespace: 4975 + description: |- 4976 + StorageNamespace is the namespace of the Helm release storage for the 4977 + current release. 4978 + maxLength: 63 4979 + minLength: 1 4980 + type: string 4981 + upgradeFailures: 4982 + description: |- 4983 + UpgradeFailures is the upgrade failure count against the latest desired 4984 + state. It is reset after a successful reconciliation. 4985 + format: int64 4986 + type: integer 4987 + type: object 4988 + type: object 4989 + served: true 4990 + storage: true 4991 + subresources: 4992 + status: {} 4889 4993 --- 4890 4994 apiVersion: v1 4891 4995 kind: ServiceAccount ··· 4927 5031 app.kubernetes.io/version: v2.8.8 4928 5032 spec: 4929 5033 containers: 4930 - - args: 4931 - - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 4932 - - --watch-all-namespaces=true 4933 - - --log-level=info 4934 - - --log-encoding=json 4935 - - --enable-leader-election 4936 - env: 4937 - - name: RUNTIME_NAMESPACE 4938 - valueFrom: 4939 - fieldRef: 4940 - fieldPath: metadata.namespace 4941 - - name: GOMEMLIMIT 4942 - valueFrom: 4943 - resourceFieldRef: 4944 - containerName: manager 4945 - resource: limits.memory 4946 - image: ghcr.io/fluxcd/helm-controller:v1.5.5 4947 - imagePullPolicy: IfNotPresent 4948 - livenessProbe: 4949 - httpGet: 4950 - path: /healthz 4951 - port: healthz 4952 - name: manager 4953 - ports: 4954 - - containerPort: 8080 4955 - name: http-prom 4956 - protocol: TCP 4957 - - containerPort: 9440 4958 - name: healthz 4959 - protocol: TCP 4960 - readinessProbe: 4961 - httpGet: 4962 - path: /readyz 4963 - port: healthz 4964 - resources: 4965 - limits: 4966 - cpu: 1000m 4967 - memory: 1Gi 4968 - requests: 4969 - cpu: 100m 4970 - memory: 64Mi 4971 - securityContext: 4972 - allowPrivilegeEscalation: false 4973 - capabilities: 4974 - drop: 4975 - - ALL 4976 - readOnlyRootFilesystem: true 4977 - runAsNonRoot: true 4978 - seccompProfile: 4979 - type: RuntimeDefault 4980 - volumeMounts: 4981 - - mountPath: /tmp 4982 - name: temp 5034 + - args: 5035 + - --events-addr=http://notification-controller.$(RUNTIME_NAMESPACE).svc.cluster.local./ 5036 + - --watch-all-namespaces=true 5037 + - --log-level=info 5038 + - --log-encoding=json 5039 + - --enable-leader-election 5040 + env: 5041 + - name: RUNTIME_NAMESPACE 5042 + valueFrom: 5043 + fieldRef: 5044 + fieldPath: metadata.namespace 5045 + - name: GOMEMLIMIT 5046 + valueFrom: 5047 + resourceFieldRef: 5048 + containerName: manager 5049 + resource: limits.memory 5050 + image: ghcr.io/fluxcd/helm-controller:v1.5.5 5051 + imagePullPolicy: IfNotPresent 5052 + livenessProbe: 5053 + httpGet: 5054 + path: /healthz 5055 + port: healthz 5056 + name: manager 5057 + ports: 5058 + - containerPort: 8080 5059 + name: http-prom 5060 + protocol: TCP 5061 + - containerPort: 9440 5062 + name: healthz 5063 + protocol: TCP 5064 + readinessProbe: 5065 + httpGet: 5066 + path: /readyz 5067 + port: healthz 5068 + resources: 5069 + limits: 5070 + cpu: 1000m 5071 + memory: 1Gi 5072 + requests: 5073 + cpu: 100m 5074 + memory: 64Mi 5075 + securityContext: 5076 + allowPrivilegeEscalation: false 5077 + capabilities: 5078 + drop: 5079 + - ALL 5080 + readOnlyRootFilesystem: true 5081 + runAsNonRoot: true 5082 + seccompProfile: 5083 + type: RuntimeDefault 5084 + volumeMounts: 5085 + - mountPath: /tmp 5086 + name: temp 4983 5087 nodeSelector: 4984 5088 kubernetes.io/os: linux 4985 5089 priorityClassName: system-cluster-critical ··· 4988 5092 serviceAccountName: helm-controller 4989 5093 terminationGracePeriodSeconds: 600 4990 5094 volumes: 4991 - - emptyDir: {} 4992 - name: temp 5095 + - emptyDir: {} 5096 + name: temp 4993 5097 --- 4994 5098 apiVersion: apiextensions.k8s.io/v1 4995 5099 kind: CustomResourceDefinition ··· 5011 5115 singular: alert 5012 5116 scope: Namespaced 5013 5117 versions: 5014 - - additionalPrinterColumns: 5015 - - jsonPath: .metadata.creationTimestamp 5016 - name: Age 5017 - type: date 5018 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 5019 - name: Ready 5020 - type: string 5021 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 5022 - name: Status 5023 - type: string 5024 - deprecated: true 5025 - deprecationWarning: v1beta2 Alert is deprecated, upgrade to v1beta3 5026 - name: v1beta2 5027 - schema: 5028 - openAPIV3Schema: 5029 - description: Alert is the Schema for the alerts API 5030 - properties: 5031 - apiVersion: 5032 - description: |- 5033 - APIVersion defines the versioned schema of this representation of an object. 5034 - Servers should convert recognized schemas to the latest internal value, and 5035 - may reject unrecognized values. 5036 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5037 - type: string 5038 - kind: 5039 - description: |- 5040 - Kind is a string value representing the REST resource this object represents. 5041 - Servers may infer this from the endpoint the client submits requests to. 5042 - Cannot be updated. 5043 - In CamelCase. 5044 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5045 - type: string 5046 - metadata: 5047 - type: object 5048 - spec: 5049 - description: AlertSpec defines an alerting rule for events involving a 5050 - list of objects. 5051 - properties: 5052 - eventMetadata: 5053 - additionalProperties: 5118 + - additionalPrinterColumns: 5119 + - jsonPath: .metadata.creationTimestamp 5120 + name: Age 5121 + type: date 5122 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 5123 + name: Ready 5124 + type: string 5125 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 5126 + name: Status 5127 + type: string 5128 + deprecated: true 5129 + deprecationWarning: v1beta2 Alert is deprecated, upgrade to v1beta3 5130 + name: v1beta2 5131 + schema: 5132 + openAPIV3Schema: 5133 + description: Alert is the Schema for the alerts API 5134 + properties: 5135 + apiVersion: 5136 + description: |- 5137 + APIVersion defines the versioned schema of this representation of an object. 5138 + Servers should convert recognized schemas to the latest internal value, and 5139 + may reject unrecognized values. 5140 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5141 + type: string 5142 + kind: 5143 + description: |- 5144 + Kind is a string value representing the REST resource this object represents. 5145 + Servers may infer this from the endpoint the client submits requests to. 5146 + Cannot be updated. 5147 + In CamelCase. 5148 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5149 + type: string 5150 + metadata: 5151 + type: object 5152 + spec: 5153 + description: 5154 + AlertSpec defines an alerting rule for events involving a 5155 + list of objects. 5156 + properties: 5157 + eventMetadata: 5158 + additionalProperties: 5159 + type: string 5160 + description: |- 5161 + EventMetadata is an optional field for adding metadata to events dispatched by the 5162 + controller. This can be used for enhancing the context of the event. If a field 5163 + would override one already present on the original event as generated by the emitter, 5164 + then the override doesn't happen, i.e. the original value is preserved, and an info 5165 + log is printed. 5166 + type: object 5167 + eventSeverity: 5168 + default: info 5169 + description: |- 5170 + EventSeverity specifies how to filter events based on severity. 5171 + If set to 'info' no events will be filtered. 5172 + enum: 5173 + - info 5174 + - error 5054 5175 type: string 5055 - description: |- 5056 - EventMetadata is an optional field for adding metadata to events dispatched by the 5057 - controller. This can be used for enhancing the context of the event. If a field 5058 - would override one already present on the original event as generated by the emitter, 5059 - then the override doesn't happen, i.e. the original value is preserved, and an info 5060 - log is printed. 5061 - type: object 5062 - eventSeverity: 5063 - default: info 5064 - description: |- 5065 - EventSeverity specifies how to filter events based on severity. 5066 - If set to 'info' no events will be filtered. 5067 - enum: 5068 - - info 5069 - - error 5070 - type: string 5071 - eventSources: 5072 - description: |- 5073 - EventSources specifies how to filter events based 5074 - on the involved object kind, name and namespace. 5075 - items: 5176 + eventSources: 5177 + description: |- 5178 + EventSources specifies how to filter events based 5179 + on the involved object kind, name and namespace. 5180 + items: 5181 + description: |- 5182 + CrossNamespaceObjectReference contains enough information to let you locate the 5183 + typed referenced object at cluster level 5184 + properties: 5185 + apiVersion: 5186 + description: API version of the referent 5187 + type: string 5188 + kind: 5189 + description: Kind of the referent 5190 + enum: 5191 + - Bucket 5192 + - GitRepository 5193 + - Kustomization 5194 + - HelmRelease 5195 + - HelmChart 5196 + - HelmRepository 5197 + - ImageRepository 5198 + - ImagePolicy 5199 + - ImageUpdateAutomation 5200 + - OCIRepository 5201 + - ArtifactGenerator 5202 + - ExternalArtifact 5203 + type: string 5204 + matchLabels: 5205 + additionalProperties: 5206 + type: string 5207 + description: |- 5208 + MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 5209 + map is equivalent to an element of matchExpressions, whose key field is "key", the 5210 + operator is "In", and the values array contains only "value". The requirements are ANDed. 5211 + MatchLabels requires the name to be set to `*`. 5212 + type: object 5213 + name: 5214 + description: |- 5215 + Name of the referent 5216 + If multiple resources are targeted `*` may be set. 5217 + maxLength: 253 5218 + minLength: 1 5219 + type: string 5220 + namespace: 5221 + description: Namespace of the referent 5222 + maxLength: 253 5223 + minLength: 1 5224 + type: string 5225 + required: 5226 + - kind 5227 + - name 5228 + type: object 5229 + type: array 5230 + exclusionList: 5231 + description: |- 5232 + ExclusionList specifies a list of Golang regular expressions 5233 + to be used for excluding messages. 5234 + items: 5235 + type: string 5236 + type: array 5237 + inclusionList: 5076 5238 description: |- 5077 - CrossNamespaceObjectReference contains enough information to let you locate the 5078 - typed referenced object at cluster level 5239 + InclusionList specifies a list of Golang regular expressions 5240 + to be used for including messages. 5241 + items: 5242 + type: string 5243 + type: array 5244 + providerRef: 5245 + description: 5246 + ProviderRef specifies which Provider this Alert should 5247 + use. 5079 5248 properties: 5080 - apiVersion: 5081 - description: API version of the referent 5082 - type: string 5083 - kind: 5084 - description: Kind of the referent 5085 - enum: 5086 - - Bucket 5087 - - GitRepository 5088 - - Kustomization 5089 - - HelmRelease 5090 - - HelmChart 5091 - - HelmRepository 5092 - - ImageRepository 5093 - - ImagePolicy 5094 - - ImageUpdateAutomation 5095 - - OCIRepository 5096 - - ArtifactGenerator 5097 - - ExternalArtifact 5098 - type: string 5099 - matchLabels: 5100 - additionalProperties: 5101 - type: string 5102 - description: |- 5103 - MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 5104 - map is equivalent to an element of matchExpressions, whose key field is "key", the 5105 - operator is "In", and the values array contains only "value". The requirements are ANDed. 5106 - MatchLabels requires the name to be set to `*`. 5107 - type: object 5108 5249 name: 5109 - description: |- 5110 - Name of the referent 5111 - If multiple resources are targeted `*` may be set. 5112 - maxLength: 253 5113 - minLength: 1 5114 - type: string 5115 - namespace: 5116 - description: Namespace of the referent 5117 - maxLength: 253 5118 - minLength: 1 5250 + description: Name of the referent. 5119 5251 type: string 5120 5252 required: 5121 - - kind 5122 - - name 5253 + - name 5123 5254 type: object 5124 - type: array 5125 - exclusionList: 5126 - description: |- 5127 - ExclusionList specifies a list of Golang regular expressions 5128 - to be used for excluding messages. 5129 - items: 5255 + summary: 5256 + description: 5257 + Summary holds a short description of the impact and affected 5258 + cluster. 5259 + maxLength: 255 5130 5260 type: string 5131 - type: array 5132 - inclusionList: 5133 - description: |- 5134 - InclusionList specifies a list of Golang regular expressions 5135 - to be used for including messages. 5136 - items: 5261 + suspend: 5262 + description: |- 5263 + Suspend tells the controller to suspend subsequent 5264 + events handling for this Alert. 5265 + type: boolean 5266 + required: 5267 + - eventSources 5268 + - providerRef 5269 + type: object 5270 + status: 5271 + default: 5272 + observedGeneration: -1 5273 + description: AlertStatus defines the observed state of the Alert. 5274 + properties: 5275 + conditions: 5276 + description: Conditions holds the conditions for the Alert. 5277 + items: 5278 + description: 5279 + Condition contains details for one aspect of the current 5280 + state of this API Resource. 5281 + properties: 5282 + lastTransitionTime: 5283 + description: |- 5284 + lastTransitionTime is the last time the condition transitioned from one status to another. 5285 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 5286 + format: date-time 5287 + type: string 5288 + message: 5289 + description: |- 5290 + message is a human readable message indicating details about the transition. 5291 + This may be an empty string. 5292 + maxLength: 32768 5293 + type: string 5294 + observedGeneration: 5295 + description: |- 5296 + observedGeneration represents the .metadata.generation that the condition was set based upon. 5297 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 5298 + with respect to the current state of the instance. 5299 + format: int64 5300 + minimum: 0 5301 + type: integer 5302 + reason: 5303 + description: |- 5304 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 5305 + Producers of specific condition types may define expected values and meanings for this field, 5306 + and whether the values are considered a guaranteed API. 5307 + The value should be a CamelCase string. 5308 + This field may not be empty. 5309 + maxLength: 1024 5310 + minLength: 1 5311 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 5312 + type: string 5313 + status: 5314 + description: status of the condition, one of True, False, Unknown. 5315 + enum: 5316 + - "True" 5317 + - "False" 5318 + - Unknown 5319 + type: string 5320 + type: 5321 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 5322 + maxLength: 316 5323 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 5324 + type: string 5325 + required: 5326 + - lastTransitionTime 5327 + - message 5328 + - reason 5329 + - status 5330 + - type 5331 + type: object 5332 + type: array 5333 + lastHandledReconcileAt: 5334 + description: |- 5335 + LastHandledReconcileAt holds the value of the most recent 5336 + reconcile request value, so a change of the annotation value 5337 + can be detected. 5137 5338 type: string 5138 - type: array 5139 - providerRef: 5140 - description: ProviderRef specifies which Provider this Alert should 5141 - use. 5142 - properties: 5143 - name: 5144 - description: Name of the referent. 5339 + observedGeneration: 5340 + description: ObservedGeneration is the last observed generation. 5341 + format: int64 5342 + type: integer 5343 + type: object 5344 + type: object 5345 + served: true 5346 + storage: false 5347 + subresources: 5348 + status: {} 5349 + - additionalPrinterColumns: 5350 + - jsonPath: .metadata.creationTimestamp 5351 + name: Age 5352 + type: date 5353 + name: v1beta3 5354 + schema: 5355 + openAPIV3Schema: 5356 + description: Alert is the Schema for the alerts API 5357 + properties: 5358 + apiVersion: 5359 + description: |- 5360 + APIVersion defines the versioned schema of this representation of an object. 5361 + Servers should convert recognized schemas to the latest internal value, and 5362 + may reject unrecognized values. 5363 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5364 + type: string 5365 + kind: 5366 + description: |- 5367 + Kind is a string value representing the REST resource this object represents. 5368 + Servers may infer this from the endpoint the client submits requests to. 5369 + Cannot be updated. 5370 + In CamelCase. 5371 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5372 + type: string 5373 + metadata: 5374 + type: object 5375 + spec: 5376 + description: 5377 + AlertSpec defines an alerting rule for events involving a 5378 + list of objects. 5379 + properties: 5380 + eventMetadata: 5381 + additionalProperties: 5145 5382 type: string 5146 - required: 5147 - - name 5148 - type: object 5149 - summary: 5150 - description: Summary holds a short description of the impact and affected 5151 - cluster. 5152 - maxLength: 255 5153 - type: string 5154 - suspend: 5155 - description: |- 5156 - Suspend tells the controller to suspend subsequent 5157 - events handling for this Alert. 5158 - type: boolean 5159 - required: 5160 - - eventSources 5161 - - providerRef 5162 - type: object 5163 - status: 5164 - default: 5165 - observedGeneration: -1 5166 - description: AlertStatus defines the observed state of the Alert. 5167 - properties: 5168 - conditions: 5169 - description: Conditions holds the conditions for the Alert. 5170 - items: 5171 - description: Condition contains details for one aspect of the current 5172 - state of this API Resource. 5173 - properties: 5174 - lastTransitionTime: 5175 - description: |- 5176 - lastTransitionTime is the last time the condition transitioned from one status to another. 5177 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 5178 - format: date-time 5179 - type: string 5180 - message: 5181 - description: |- 5182 - message is a human readable message indicating details about the transition. 5183 - This may be an empty string. 5184 - maxLength: 32768 5185 - type: string 5186 - observedGeneration: 5187 - description: |- 5188 - observedGeneration represents the .metadata.generation that the condition was set based upon. 5189 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 5190 - with respect to the current state of the instance. 5191 - format: int64 5192 - minimum: 0 5193 - type: integer 5194 - reason: 5195 - description: |- 5196 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 5197 - Producers of specific condition types may define expected values and meanings for this field, 5198 - and whether the values are considered a guaranteed API. 5199 - The value should be a CamelCase string. 5200 - This field may not be empty. 5201 - maxLength: 1024 5202 - minLength: 1 5203 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 5204 - type: string 5205 - status: 5206 - description: status of the condition, one of True, False, Unknown. 5207 - enum: 5208 - - "True" 5209 - - "False" 5210 - - Unknown 5211 - type: string 5212 - type: 5213 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 5214 - maxLength: 316 5215 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 5216 - type: string 5217 - required: 5218 - - lastTransitionTime 5219 - - message 5220 - - reason 5221 - - status 5222 - - type 5383 + description: |- 5384 + EventMetadata is an optional field for adding metadata to events dispatched by the 5385 + controller. This can be used for enhancing the context of the event. If a field 5386 + would override one already present on the original event as generated by the emitter, 5387 + then the override doesn't happen, i.e. the original value is preserved, and an info 5388 + log is printed. 5223 5389 type: object 5224 - type: array 5225 - lastHandledReconcileAt: 5226 - description: |- 5227 - LastHandledReconcileAt holds the value of the most recent 5228 - reconcile request value, so a change of the annotation value 5229 - can be detected. 5230 - type: string 5231 - observedGeneration: 5232 - description: ObservedGeneration is the last observed generation. 5233 - format: int64 5234 - type: integer 5235 - type: object 5236 - type: object 5237 - served: true 5238 - storage: false 5239 - subresources: 5240 - status: {} 5241 - - additionalPrinterColumns: 5242 - - jsonPath: .metadata.creationTimestamp 5243 - name: Age 5244 - type: date 5245 - name: v1beta3 5246 - schema: 5247 - openAPIV3Schema: 5248 - description: Alert is the Schema for the alerts API 5249 - properties: 5250 - apiVersion: 5251 - description: |- 5252 - APIVersion defines the versioned schema of this representation of an object. 5253 - Servers should convert recognized schemas to the latest internal value, and 5254 - may reject unrecognized values. 5255 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5256 - type: string 5257 - kind: 5258 - description: |- 5259 - Kind is a string value representing the REST resource this object represents. 5260 - Servers may infer this from the endpoint the client submits requests to. 5261 - Cannot be updated. 5262 - In CamelCase. 5263 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5264 - type: string 5265 - metadata: 5266 - type: object 5267 - spec: 5268 - description: AlertSpec defines an alerting rule for events involving a 5269 - list of objects. 5270 - properties: 5271 - eventMetadata: 5272 - additionalProperties: 5390 + eventSeverity: 5391 + default: info 5392 + description: |- 5393 + EventSeverity specifies how to filter events based on severity. 5394 + If set to 'info' no events will be filtered. 5395 + enum: 5396 + - info 5397 + - error 5273 5398 type: string 5274 - description: |- 5275 - EventMetadata is an optional field for adding metadata to events dispatched by the 5276 - controller. This can be used for enhancing the context of the event. If a field 5277 - would override one already present on the original event as generated by the emitter, 5278 - then the override doesn't happen, i.e. the original value is preserved, and an info 5279 - log is printed. 5280 - type: object 5281 - eventSeverity: 5282 - default: info 5283 - description: |- 5284 - EventSeverity specifies how to filter events based on severity. 5285 - If set to 'info' no events will be filtered. 5286 - enum: 5287 - - info 5288 - - error 5289 - type: string 5290 - eventSources: 5291 - description: |- 5292 - EventSources specifies how to filter events based 5293 - on the involved object kind, name and namespace. 5294 - items: 5399 + eventSources: 5400 + description: |- 5401 + EventSources specifies how to filter events based 5402 + on the involved object kind, name and namespace. 5403 + items: 5404 + description: |- 5405 + CrossNamespaceObjectReference contains enough information to let you locate the 5406 + typed referenced object at cluster level 5407 + properties: 5408 + apiVersion: 5409 + description: API version of the referent 5410 + type: string 5411 + kind: 5412 + description: Kind of the referent 5413 + enum: 5414 + - Bucket 5415 + - GitRepository 5416 + - Kustomization 5417 + - HelmRelease 5418 + - HelmChart 5419 + - HelmRepository 5420 + - ImageRepository 5421 + - ImagePolicy 5422 + - ImageUpdateAutomation 5423 + - OCIRepository 5424 + - ArtifactGenerator 5425 + - ExternalArtifact 5426 + type: string 5427 + matchLabels: 5428 + additionalProperties: 5429 + type: string 5430 + description: |- 5431 + MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 5432 + map is equivalent to an element of matchExpressions, whose key field is "key", the 5433 + operator is "In", and the values array contains only "value". The requirements are ANDed. 5434 + MatchLabels requires the name to be set to `*`. 5435 + type: object 5436 + name: 5437 + description: |- 5438 + Name of the referent 5439 + If multiple resources are targeted `*` may be set. 5440 + maxLength: 253 5441 + minLength: 1 5442 + type: string 5443 + namespace: 5444 + description: Namespace of the referent 5445 + maxLength: 253 5446 + minLength: 1 5447 + type: string 5448 + required: 5449 + - kind 5450 + - name 5451 + type: object 5452 + type: array 5453 + exclusionList: 5295 5454 description: |- 5296 - CrossNamespaceObjectReference contains enough information to let you locate the 5297 - typed referenced object at cluster level 5455 + ExclusionList specifies a list of Golang regular expressions 5456 + to be used for excluding messages. 5457 + items: 5458 + type: string 5459 + type: array 5460 + inclusionList: 5461 + description: |- 5462 + InclusionList specifies a list of Golang regular expressions 5463 + to be used for including messages. 5464 + items: 5465 + type: string 5466 + type: array 5467 + providerRef: 5468 + description: 5469 + ProviderRef specifies which Provider this Alert should 5470 + use. 5298 5471 properties: 5299 - apiVersion: 5300 - description: API version of the referent 5301 - type: string 5302 - kind: 5303 - description: Kind of the referent 5304 - enum: 5305 - - Bucket 5306 - - GitRepository 5307 - - Kustomization 5308 - - HelmRelease 5309 - - HelmChart 5310 - - HelmRepository 5311 - - ImageRepository 5312 - - ImagePolicy 5313 - - ImageUpdateAutomation 5314 - - OCIRepository 5315 - - ArtifactGenerator 5316 - - ExternalArtifact 5317 - type: string 5318 - matchLabels: 5319 - additionalProperties: 5320 - type: string 5321 - description: |- 5322 - MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 5323 - map is equivalent to an element of matchExpressions, whose key field is "key", the 5324 - operator is "In", and the values array contains only "value". The requirements are ANDed. 5325 - MatchLabels requires the name to be set to `*`. 5326 - type: object 5327 5472 name: 5328 - description: |- 5329 - Name of the referent 5330 - If multiple resources are targeted `*` may be set. 5331 - maxLength: 253 5332 - minLength: 1 5333 - type: string 5334 - namespace: 5335 - description: Namespace of the referent 5336 - maxLength: 253 5337 - minLength: 1 5473 + description: Name of the referent. 5338 5474 type: string 5339 5475 required: 5340 - - kind 5341 - - name 5476 + - name 5342 5477 type: object 5343 - type: array 5344 - exclusionList: 5345 - description: |- 5346 - ExclusionList specifies a list of Golang regular expressions 5347 - to be used for excluding messages. 5348 - items: 5349 - type: string 5350 - type: array 5351 - inclusionList: 5352 - description: |- 5353 - InclusionList specifies a list of Golang regular expressions 5354 - to be used for including messages. 5355 - items: 5478 + summary: 5479 + description: |- 5480 + Summary holds a short description of the impact and affected cluster. 5481 + Deprecated: Use EventMetadata instead. 5482 + maxLength: 255 5356 5483 type: string 5357 - type: array 5358 - providerRef: 5359 - description: ProviderRef specifies which Provider this Alert should 5360 - use. 5361 - properties: 5362 - name: 5363 - description: Name of the referent. 5364 - type: string 5365 - required: 5366 - - name 5367 - type: object 5368 - summary: 5369 - description: |- 5370 - Summary holds a short description of the impact and affected cluster. 5371 - Deprecated: Use EventMetadata instead. 5372 - maxLength: 255 5373 - type: string 5374 - suspend: 5375 - description: |- 5376 - Suspend tells the controller to suspend subsequent 5377 - events handling for this Alert. 5378 - type: boolean 5379 - required: 5380 - - eventSources 5381 - - providerRef 5382 - type: object 5383 - type: object 5384 - served: true 5385 - storage: true 5386 - subresources: {} 5484 + suspend: 5485 + description: |- 5486 + Suspend tells the controller to suspend subsequent 5487 + events handling for this Alert. 5488 + type: boolean 5489 + required: 5490 + - eventSources 5491 + - providerRef 5492 + type: object 5493 + type: object 5494 + served: true 5495 + storage: true 5496 + subresources: {} 5387 5497 --- 5388 5498 apiVersion: apiextensions.k8s.io/v1 5389 5499 kind: CustomResourceDefinition ··· 5405 5515 singular: provider 5406 5516 scope: Namespaced 5407 5517 versions: 5408 - - additionalPrinterColumns: 5409 - - jsonPath: .metadata.creationTimestamp 5410 - name: Age 5411 - type: date 5412 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 5413 - name: Ready 5414 - type: string 5415 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 5416 - name: Status 5417 - type: string 5418 - deprecated: true 5419 - deprecationWarning: v1beta2 Provider is deprecated, upgrade to v1beta3 5420 - name: v1beta2 5421 - schema: 5422 - openAPIV3Schema: 5423 - description: Provider is the Schema for the providers API. 5424 - properties: 5425 - apiVersion: 5426 - description: |- 5427 - APIVersion defines the versioned schema of this representation of an object. 5428 - Servers should convert recognized schemas to the latest internal value, and 5429 - may reject unrecognized values. 5430 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5431 - type: string 5432 - kind: 5433 - description: |- 5434 - Kind is a string value representing the REST resource this object represents. 5435 - Servers may infer this from the endpoint the client submits requests to. 5436 - Cannot be updated. 5437 - In CamelCase. 5438 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5439 - type: string 5440 - metadata: 5441 - type: object 5442 - spec: 5443 - description: ProviderSpec defines the desired state of the Provider. 5444 - properties: 5445 - address: 5446 - description: |- 5447 - Address specifies the endpoint, in a generic sense, to where alerts are sent. 5448 - What kind of endpoint depends on the specific Provider type being used. 5449 - For the generic Provider, for example, this is an HTTP/S address. 5450 - For other Provider types this could be a project ID or a namespace. 5451 - maxLength: 2048 5452 - type: string 5453 - certSecretRef: 5454 - description: |- 5455 - CertSecretRef specifies the Secret containing 5456 - a PEM-encoded CA certificate (in the `ca.crt` key). 5518 + - additionalPrinterColumns: 5519 + - jsonPath: .metadata.creationTimestamp 5520 + name: Age 5521 + type: date 5522 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 5523 + name: Ready 5524 + type: string 5525 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 5526 + name: Status 5527 + type: string 5528 + deprecated: true 5529 + deprecationWarning: v1beta2 Provider is deprecated, upgrade to v1beta3 5530 + name: v1beta2 5531 + schema: 5532 + openAPIV3Schema: 5533 + description: Provider is the Schema for the providers API. 5534 + properties: 5535 + apiVersion: 5536 + description: |- 5537 + APIVersion defines the versioned schema of this representation of an object. 5538 + Servers should convert recognized schemas to the latest internal value, and 5539 + may reject unrecognized values. 5540 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5541 + type: string 5542 + kind: 5543 + description: |- 5544 + Kind is a string value representing the REST resource this object represents. 5545 + Servers may infer this from the endpoint the client submits requests to. 5546 + Cannot be updated. 5547 + In CamelCase. 5548 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5549 + type: string 5550 + metadata: 5551 + type: object 5552 + spec: 5553 + description: ProviderSpec defines the desired state of the Provider. 5554 + properties: 5555 + address: 5556 + description: |- 5557 + Address specifies the endpoint, in a generic sense, to where alerts are sent. 5558 + What kind of endpoint depends on the specific Provider type being used. 5559 + For the generic Provider, for example, this is an HTTP/S address. 5560 + For other Provider types this could be a project ID or a namespace. 5561 + maxLength: 2048 5562 + type: string 5563 + certSecretRef: 5564 + description: |- 5565 + CertSecretRef specifies the Secret containing 5566 + a PEM-encoded CA certificate (in the `ca.crt` key). 5457 5567 5458 - Note: Support for the `caFile` key has 5459 - been deprecated. 5460 - properties: 5461 - name: 5462 - description: Name of the referent. 5463 - type: string 5464 - required: 5465 - - name 5466 - type: object 5467 - channel: 5468 - description: Channel specifies the destination channel where events 5469 - should be posted. 5470 - maxLength: 2048 5471 - type: string 5472 - interval: 5473 - description: Interval at which to reconcile the Provider with its 5474 - Secret references. 5475 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5476 - type: string 5477 - proxy: 5478 - description: Proxy the HTTP/S address of the proxy server. 5479 - maxLength: 2048 5480 - pattern: ^(http|https)://.*$ 5481 - type: string 5482 - secretRef: 5483 - description: |- 5484 - SecretRef specifies the Secret containing the authentication 5485 - credentials for this Provider. 5486 - properties: 5487 - name: 5488 - description: Name of the referent. 5489 - type: string 5490 - required: 5491 - - name 5492 - type: object 5493 - suspend: 5494 - description: |- 5495 - Suspend tells the controller to suspend subsequent 5496 - events handling for this Provider. 5497 - type: boolean 5498 - timeout: 5499 - description: Timeout for sending alerts to the Provider. 5500 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 5501 - type: string 5502 - type: 5503 - description: Type specifies which Provider implementation to use. 5504 - enum: 5505 - - slack 5506 - - discord 5507 - - msteams 5508 - - rocket 5509 - - generic 5510 - - generic-hmac 5511 - - github 5512 - - gitlab 5513 - - gitea 5514 - - bitbucketserver 5515 - - bitbucket 5516 - - azuredevops 5517 - - googlechat 5518 - - googlepubsub 5519 - - webex 5520 - - sentry 5521 - - azureeventhub 5522 - - telegram 5523 - - lark 5524 - - matrix 5525 - - opsgenie 5526 - - alertmanager 5527 - - grafana 5528 - - githubdispatch 5529 - - pagerduty 5530 - - datadog 5531 - type: string 5532 - username: 5533 - description: Username specifies the name under which events are posted. 5534 - maxLength: 2048 5535 - type: string 5536 - required: 5537 - - type 5538 - type: object 5539 - status: 5540 - default: 5541 - observedGeneration: -1 5542 - description: ProviderStatus defines the observed state of the Provider. 5543 - properties: 5544 - conditions: 5545 - description: Conditions holds the conditions for the Provider. 5546 - items: 5547 - description: Condition contains details for one aspect of the current 5548 - state of this API Resource. 5568 + Note: Support for the `caFile` key has 5569 + been deprecated. 5549 5570 properties: 5550 - lastTransitionTime: 5551 - description: |- 5552 - lastTransitionTime is the last time the condition transitioned from one status to another. 5553 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 5554 - format: date-time 5571 + name: 5572 + description: Name of the referent. 5555 5573 type: string 5556 - message: 5557 - description: |- 5558 - message is a human readable message indicating details about the transition. 5559 - This may be an empty string. 5560 - maxLength: 32768 5574 + required: 5575 + - name 5576 + type: object 5577 + channel: 5578 + description: 5579 + Channel specifies the destination channel where events 5580 + should be posted. 5581 + maxLength: 2048 5582 + type: string 5583 + interval: 5584 + description: 5585 + Interval at which to reconcile the Provider with its 5586 + Secret references. 5587 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5588 + type: string 5589 + proxy: 5590 + description: Proxy the HTTP/S address of the proxy server. 5591 + maxLength: 2048 5592 + pattern: ^(http|https)://.*$ 5593 + type: string 5594 + secretRef: 5595 + description: |- 5596 + SecretRef specifies the Secret containing the authentication 5597 + credentials for this Provider. 5598 + properties: 5599 + name: 5600 + description: Name of the referent. 5561 5601 type: string 5562 - observedGeneration: 5563 - description: |- 5564 - observedGeneration represents the .metadata.generation that the condition was set based upon. 5565 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 5566 - with respect to the current state of the instance. 5567 - format: int64 5568 - minimum: 0 5569 - type: integer 5570 - reason: 5571 - description: |- 5572 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 5573 - Producers of specific condition types may define expected values and meanings for this field, 5574 - and whether the values are considered a guaranteed API. 5575 - The value should be a CamelCase string. 5576 - This field may not be empty. 5577 - maxLength: 1024 5578 - minLength: 1 5579 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 5602 + required: 5603 + - name 5604 + type: object 5605 + suspend: 5606 + description: |- 5607 + Suspend tells the controller to suspend subsequent 5608 + events handling for this Provider. 5609 + type: boolean 5610 + timeout: 5611 + description: Timeout for sending alerts to the Provider. 5612 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 5613 + type: string 5614 + type: 5615 + description: Type specifies which Provider implementation to use. 5616 + enum: 5617 + - slack 5618 + - discord 5619 + - msteams 5620 + - rocket 5621 + - generic 5622 + - generic-hmac 5623 + - github 5624 + - gitlab 5625 + - gitea 5626 + - bitbucketserver 5627 + - bitbucket 5628 + - azuredevops 5629 + - googlechat 5630 + - googlepubsub 5631 + - webex 5632 + - sentry 5633 + - azureeventhub 5634 + - telegram 5635 + - lark 5636 + - matrix 5637 + - opsgenie 5638 + - alertmanager 5639 + - grafana 5640 + - githubdispatch 5641 + - pagerduty 5642 + - datadog 5643 + type: string 5644 + username: 5645 + description: Username specifies the name under which events are posted. 5646 + maxLength: 2048 5647 + type: string 5648 + required: 5649 + - type 5650 + type: object 5651 + status: 5652 + default: 5653 + observedGeneration: -1 5654 + description: ProviderStatus defines the observed state of the Provider. 5655 + properties: 5656 + conditions: 5657 + description: Conditions holds the conditions for the Provider. 5658 + items: 5659 + description: 5660 + Condition contains details for one aspect of the current 5661 + state of this API Resource. 5662 + properties: 5663 + lastTransitionTime: 5664 + description: |- 5665 + lastTransitionTime is the last time the condition transitioned from one status to another. 5666 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 5667 + format: date-time 5668 + type: string 5669 + message: 5670 + description: |- 5671 + message is a human readable message indicating details about the transition. 5672 + This may be an empty string. 5673 + maxLength: 32768 5674 + type: string 5675 + observedGeneration: 5676 + description: |- 5677 + observedGeneration represents the .metadata.generation that the condition was set based upon. 5678 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 5679 + with respect to the current state of the instance. 5680 + format: int64 5681 + minimum: 0 5682 + type: integer 5683 + reason: 5684 + description: |- 5685 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 5686 + Producers of specific condition types may define expected values and meanings for this field, 5687 + and whether the values are considered a guaranteed API. 5688 + The value should be a CamelCase string. 5689 + This field may not be empty. 5690 + maxLength: 1024 5691 + minLength: 1 5692 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 5693 + type: string 5694 + status: 5695 + description: status of the condition, one of True, False, Unknown. 5696 + enum: 5697 + - "True" 5698 + - "False" 5699 + - Unknown 5700 + type: string 5701 + type: 5702 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 5703 + maxLength: 316 5704 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 5705 + type: string 5706 + required: 5707 + - lastTransitionTime 5708 + - message 5709 + - reason 5710 + - status 5711 + - type 5712 + type: object 5713 + type: array 5714 + lastHandledReconcileAt: 5715 + description: |- 5716 + LastHandledReconcileAt holds the value of the most recent 5717 + reconcile request value, so a change of the annotation value 5718 + can be detected. 5719 + type: string 5720 + observedGeneration: 5721 + description: ObservedGeneration is the last reconciled generation. 5722 + format: int64 5723 + type: integer 5724 + type: object 5725 + type: object 5726 + served: true 5727 + storage: false 5728 + subresources: 5729 + status: {} 5730 + - additionalPrinterColumns: 5731 + - jsonPath: .metadata.creationTimestamp 5732 + name: Age 5733 + type: date 5734 + name: v1beta3 5735 + schema: 5736 + openAPIV3Schema: 5737 + description: Provider is the Schema for the providers API 5738 + properties: 5739 + apiVersion: 5740 + description: |- 5741 + APIVersion defines the versioned schema of this representation of an object. 5742 + Servers should convert recognized schemas to the latest internal value, and 5743 + may reject unrecognized values. 5744 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5745 + type: string 5746 + kind: 5747 + description: |- 5748 + Kind is a string value representing the REST resource this object represents. 5749 + Servers may infer this from the endpoint the client submits requests to. 5750 + Cannot be updated. 5751 + In CamelCase. 5752 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5753 + type: string 5754 + metadata: 5755 + type: object 5756 + spec: 5757 + description: ProviderSpec defines the desired state of the Provider. 5758 + properties: 5759 + address: 5760 + description: |- 5761 + Address specifies the endpoint, in a generic sense, to where alerts are sent. 5762 + What kind of endpoint depends on the specific Provider type being used. 5763 + For the generic Provider, for example, this is an HTTP/S address. 5764 + For other Provider types this could be a project ID or a namespace. 5765 + maxLength: 2048 5766 + type: string 5767 + certSecretRef: 5768 + description: |- 5769 + CertSecretRef specifies the Secret containing TLS certificates 5770 + for secure communication. 5771 + 5772 + Supported configurations: 5773 + - CA-only: Server authentication (provide ca.crt only) 5774 + - mTLS: Mutual authentication (provide ca.crt + tls.crt + tls.key) 5775 + - Client-only: Client authentication with system CA (provide tls.crt + tls.key only) 5776 + 5777 + Legacy keys "caFile", "certFile", "keyFile" are supported but deprecated. Use "ca.crt", "tls.crt", "tls.key" instead. 5778 + properties: 5779 + name: 5780 + description: Name of the referent. 5580 5781 type: string 5581 - status: 5582 - description: status of the condition, one of True, False, Unknown. 5583 - enum: 5584 - - "True" 5585 - - "False" 5586 - - Unknown 5782 + required: 5783 + - name 5784 + type: object 5785 + channel: 5786 + description: 5787 + Channel specifies the destination channel where events 5788 + should be posted. 5789 + maxLength: 2048 5790 + type: string 5791 + commitStatusExpr: 5792 + description: |- 5793 + CommitStatusExpr is a CEL expression that evaluates to a string value 5794 + that can be used to generate a custom commit status message for use 5795 + with eligible Provider types (github, gitlab, gitea, bitbucketserver, 5796 + bitbucket, azuredevops). Supported variables are: event, provider, 5797 + and alert. 5798 + type: string 5799 + interval: 5800 + description: |- 5801 + Interval at which to reconcile the Provider with its Secret references. 5802 + Deprecated and not used in v1beta3. 5803 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5804 + type: string 5805 + proxy: 5806 + description: |- 5807 + Proxy the HTTP/S address of the proxy server. 5808 + Deprecated: Use ProxySecretRef instead. Will be removed in v1. 5809 + maxLength: 2048 5810 + pattern: ^(http|https)://.*$ 5811 + type: string 5812 + proxySecretRef: 5813 + description: |- 5814 + ProxySecretRef specifies the Secret containing the proxy configuration 5815 + for this Provider. The Secret should contain an 'address' key with the 5816 + HTTP/S address of the proxy server. Optional 'username' and 'password' 5817 + keys can be provided for proxy authentication. 5818 + properties: 5819 + name: 5820 + description: Name of the referent. 5587 5821 type: string 5588 - type: 5589 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 5590 - maxLength: 316 5591 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 5822 + required: 5823 + - name 5824 + type: object 5825 + secretRef: 5826 + description: |- 5827 + SecretRef specifies the Secret containing the authentication 5828 + credentials for this Provider. 5829 + properties: 5830 + name: 5831 + description: Name of the referent. 5592 5832 type: string 5593 5833 required: 5594 - - lastTransitionTime 5595 - - message 5596 - - reason 5597 - - status 5598 - - type 5834 + - name 5599 5835 type: object 5600 - type: array 5601 - lastHandledReconcileAt: 5602 - description: |- 5603 - LastHandledReconcileAt holds the value of the most recent 5604 - reconcile request value, so a change of the annotation value 5605 - can be detected. 5606 - type: string 5607 - observedGeneration: 5608 - description: ObservedGeneration is the last reconciled generation. 5609 - format: int64 5610 - type: integer 5611 - type: object 5612 - type: object 5613 - served: true 5614 - storage: false 5615 - subresources: 5616 - status: {} 5617 - - additionalPrinterColumns: 5618 - - jsonPath: .metadata.creationTimestamp 5619 - name: Age 5620 - type: date 5621 - name: v1beta3 5622 - schema: 5623 - openAPIV3Schema: 5624 - description: Provider is the Schema for the providers API 5625 - properties: 5626 - apiVersion: 5627 - description: |- 5628 - APIVersion defines the versioned schema of this representation of an object. 5629 - Servers should convert recognized schemas to the latest internal value, and 5630 - may reject unrecognized values. 5631 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5632 - type: string 5633 - kind: 5634 - description: |- 5635 - Kind is a string value representing the REST resource this object represents. 5636 - Servers may infer this from the endpoint the client submits requests to. 5637 - Cannot be updated. 5638 - In CamelCase. 5639 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5640 - type: string 5641 - metadata: 5642 - type: object 5643 - spec: 5644 - description: ProviderSpec defines the desired state of the Provider. 5645 - properties: 5646 - address: 5647 - description: |- 5648 - Address specifies the endpoint, in a generic sense, to where alerts are sent. 5649 - What kind of endpoint depends on the specific Provider type being used. 5650 - For the generic Provider, for example, this is an HTTP/S address. 5651 - For other Provider types this could be a project ID or a namespace. 5652 - maxLength: 2048 5653 - type: string 5654 - certSecretRef: 5655 - description: |- 5656 - CertSecretRef specifies the Secret containing TLS certificates 5657 - for secure communication. 5658 - 5659 - Supported configurations: 5660 - - CA-only: Server authentication (provide ca.crt only) 5661 - - mTLS: Mutual authentication (provide ca.crt + tls.crt + tls.key) 5662 - - Client-only: Client authentication with system CA (provide tls.crt + tls.key only) 5663 - 5664 - Legacy keys "caFile", "certFile", "keyFile" are supported but deprecated. Use "ca.crt", "tls.crt", "tls.key" instead. 5665 - properties: 5666 - name: 5667 - description: Name of the referent. 5668 - type: string 5669 - required: 5670 - - name 5671 - type: object 5672 - channel: 5673 - description: Channel specifies the destination channel where events 5674 - should be posted. 5675 - maxLength: 2048 5676 - type: string 5677 - commitStatusExpr: 5678 - description: |- 5679 - CommitStatusExpr is a CEL expression that evaluates to a string value 5680 - that can be used to generate a custom commit status message for use 5681 - with eligible Provider types (github, gitlab, gitea, bitbucketserver, 5682 - bitbucket, azuredevops). Supported variables are: event, provider, 5683 - and alert. 5684 - type: string 5685 - interval: 5686 - description: |- 5687 - Interval at which to reconcile the Provider with its Secret references. 5688 - Deprecated and not used in v1beta3. 5689 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5690 - type: string 5691 - proxy: 5692 - description: |- 5693 - Proxy the HTTP/S address of the proxy server. 5694 - Deprecated: Use ProxySecretRef instead. Will be removed in v1. 5695 - maxLength: 2048 5696 - pattern: ^(http|https)://.*$ 5697 - type: string 5698 - proxySecretRef: 5699 - description: |- 5700 - ProxySecretRef specifies the Secret containing the proxy configuration 5701 - for this Provider. The Secret should contain an 'address' key with the 5702 - HTTP/S address of the proxy server. Optional 'username' and 'password' 5703 - keys can be provided for proxy authentication. 5704 - properties: 5705 - name: 5706 - description: Name of the referent. 5707 - type: string 5708 - required: 5709 - - name 5710 - type: object 5711 - secretRef: 5712 - description: |- 5713 - SecretRef specifies the Secret containing the authentication 5714 - credentials for this Provider. 5715 - properties: 5716 - name: 5717 - description: Name of the referent. 5718 - type: string 5719 - required: 5720 - - name 5721 - type: object 5722 - serviceAccountName: 5723 - description: |- 5724 - ServiceAccountName is the name of the Kubernetes ServiceAccount used to 5725 - authenticate with cloud provider services through workload identity. 5726 - This enables multi-tenant authentication without storing static credentials. 5836 + serviceAccountName: 5837 + description: |- 5838 + ServiceAccountName is the name of the Kubernetes ServiceAccount used to 5839 + authenticate with cloud provider services through workload identity. 5840 + This enables multi-tenant authentication without storing static credentials. 5727 5841 5728 - Supported provider types: azureeventhub, azuredevops, googlepubsub 5842 + Supported provider types: azureeventhub, azuredevops, googlepubsub 5729 5843 5730 - When specified, the controller will: 5731 - 1. Create an OIDC token for the specified ServiceAccount 5732 - 2. Exchange it for cloud provider credentials via STS 5733 - 3. Use the obtained credentials for API authentication 5844 + When specified, the controller will: 5845 + 1. Create an OIDC token for the specified ServiceAccount 5846 + 2. Exchange it for cloud provider credentials via STS 5847 + 3. Use the obtained credentials for API authentication 5734 5848 5735 - When unspecified, controller-level authentication is used (single-tenant). 5849 + When unspecified, controller-level authentication is used (single-tenant). 5736 5850 5737 - An error is thrown if static credentials are also defined in SecretRef. 5738 - This field requires the ObjectLevelWorkloadIdentity feature gate to be enabled. 5739 - type: string 5740 - suspend: 5741 - description: |- 5742 - Suspend tells the controller to suspend subsequent 5743 - events handling for this Provider. 5744 - type: boolean 5745 - timeout: 5746 - description: Timeout for sending alerts to the Provider. 5747 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 5748 - type: string 5749 - type: 5750 - description: Type specifies which Provider implementation to use. 5751 - enum: 5752 - - slack 5753 - - discord 5754 - - msteams 5755 - - rocket 5756 - - generic 5757 - - generic-hmac 5758 - - github 5759 - - gitlab 5760 - - gitea 5761 - - giteapullrequestcomment 5762 - - bitbucketserver 5763 - - bitbucket 5764 - - azuredevops 5765 - - googlechat 5766 - - googlepubsub 5767 - - webex 5768 - - sentry 5769 - - azureeventhub 5770 - - telegram 5771 - - lark 5772 - - matrix 5773 - - opsgenie 5774 - - alertmanager 5775 - - grafana 5776 - - githubdispatch 5777 - - githubpullrequestcomment 5778 - - gitlabmergerequestcomment 5779 - - pagerduty 5780 - - datadog 5781 - - nats 5782 - - zulip 5783 - - otel 5784 - type: string 5785 - username: 5786 - description: Username specifies the name under which events are posted. 5787 - maxLength: 2048 5788 - type: string 5789 - required: 5790 - - type 5791 - type: object 5792 - x-kubernetes-validations: 5793 - - message: spec.commitStatusExpr is only supported for the 'github', 'gitlab', 5794 - 'gitea', 'bitbucketserver', 'bitbucket', 'azuredevops' provider types 5795 - rule: self.type == 'github' || self.type == 'gitlab' || self.type == 5796 - 'gitea' || self.type == 'bitbucketserver' || self.type == 'bitbucket' 5797 - || self.type == 'azuredevops' || !has(self.commitStatusExpr) 5798 - type: object 5799 - served: true 5800 - storage: true 5801 - subresources: {} 5851 + An error is thrown if static credentials are also defined in SecretRef. 5852 + This field requires the ObjectLevelWorkloadIdentity feature gate to be enabled. 5853 + type: string 5854 + suspend: 5855 + description: |- 5856 + Suspend tells the controller to suspend subsequent 5857 + events handling for this Provider. 5858 + type: boolean 5859 + timeout: 5860 + description: Timeout for sending alerts to the Provider. 5861 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ 5862 + type: string 5863 + type: 5864 + description: Type specifies which Provider implementation to use. 5865 + enum: 5866 + - slack 5867 + - discord 5868 + - msteams 5869 + - rocket 5870 + - generic 5871 + - generic-hmac 5872 + - github 5873 + - gitlab 5874 + - gitea 5875 + - giteapullrequestcomment 5876 + - bitbucketserver 5877 + - bitbucket 5878 + - azuredevops 5879 + - googlechat 5880 + - googlepubsub 5881 + - webex 5882 + - sentry 5883 + - azureeventhub 5884 + - telegram 5885 + - lark 5886 + - matrix 5887 + - opsgenie 5888 + - alertmanager 5889 + - grafana 5890 + - githubdispatch 5891 + - githubpullrequestcomment 5892 + - gitlabmergerequestcomment 5893 + - pagerduty 5894 + - datadog 5895 + - nats 5896 + - zulip 5897 + - otel 5898 + type: string 5899 + username: 5900 + description: Username specifies the name under which events are posted. 5901 + maxLength: 2048 5902 + type: string 5903 + required: 5904 + - type 5905 + type: object 5906 + x-kubernetes-validations: 5907 + - message: 5908 + spec.commitStatusExpr is only supported for the 'github', 'gitlab', 5909 + 'gitea', 'bitbucketserver', 'bitbucket', 'azuredevops' provider types 5910 + rule: 5911 + self.type == 'github' || self.type == 'gitlab' || self.type == 5912 + 'gitea' || self.type == 'bitbucketserver' || self.type == 'bitbucket' 5913 + || self.type == 'azuredevops' || !has(self.commitStatusExpr) 5914 + type: object 5915 + served: true 5916 + storage: true 5917 + subresources: {} 5802 5918 --- 5803 5919 apiVersion: apiextensions.k8s.io/v1 5804 5920 kind: CustomResourceDefinition ··· 5820 5936 singular: receiver 5821 5937 scope: Namespaced 5822 5938 versions: 5823 - - additionalPrinterColumns: 5824 - - jsonPath: .metadata.creationTimestamp 5825 - name: Age 5826 - type: date 5827 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 5828 - name: Ready 5829 - type: string 5830 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 5831 - name: Status 5832 - type: string 5833 - name: v1 5834 - schema: 5835 - openAPIV3Schema: 5836 - description: Receiver is the Schema for the receivers API. 5837 - properties: 5838 - apiVersion: 5839 - description: |- 5840 - APIVersion defines the versioned schema of this representation of an object. 5841 - Servers should convert recognized schemas to the latest internal value, and 5842 - may reject unrecognized values. 5843 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5844 - type: string 5845 - kind: 5846 - description: |- 5847 - Kind is a string value representing the REST resource this object represents. 5848 - Servers may infer this from the endpoint the client submits requests to. 5849 - Cannot be updated. 5850 - In CamelCase. 5851 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5852 - type: string 5853 - metadata: 5854 - type: object 5855 - spec: 5856 - description: ReceiverSpec defines the desired state of the Receiver. 5857 - properties: 5858 - events: 5859 - description: |- 5860 - Events specifies the list of event types to handle, 5861 - e.g. 'push' for GitHub or 'Push Hook' for GitLab. 5862 - items: 5939 + - additionalPrinterColumns: 5940 + - jsonPath: .metadata.creationTimestamp 5941 + name: Age 5942 + type: date 5943 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 5944 + name: Ready 5945 + type: string 5946 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 5947 + name: Status 5948 + type: string 5949 + name: v1 5950 + schema: 5951 + openAPIV3Schema: 5952 + description: Receiver is the Schema for the receivers API. 5953 + properties: 5954 + apiVersion: 5955 + description: |- 5956 + APIVersion defines the versioned schema of this representation of an object. 5957 + Servers should convert recognized schemas to the latest internal value, and 5958 + may reject unrecognized values. 5959 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 5960 + type: string 5961 + kind: 5962 + description: |- 5963 + Kind is a string value representing the REST resource this object represents. 5964 + Servers may infer this from the endpoint the client submits requests to. 5965 + Cannot be updated. 5966 + In CamelCase. 5967 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 5968 + type: string 5969 + metadata: 5970 + type: object 5971 + spec: 5972 + description: ReceiverSpec defines the desired state of the Receiver. 5973 + properties: 5974 + events: 5975 + description: |- 5976 + Events specifies the list of event types to handle, 5977 + e.g. 'push' for GitHub or 'Push Hook' for GitLab. 5978 + items: 5979 + type: string 5980 + type: array 5981 + interval: 5982 + default: 10m 5983 + description: 5984 + Interval at which to reconcile the Receiver with its 5985 + Secret references. 5986 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5987 + type: string 5988 + resourceFilter: 5989 + description: |- 5990 + ResourceFilter is a CEL expression expected to return a boolean that is 5991 + evaluated for each resource referenced in the Resources field when a 5992 + webhook is received. If the expression returns false then the controller 5993 + will not request a reconciliation for the resource. 5994 + When the expression is specified the controller will parse it and mark 5995 + the object as terminally failed if the expression is invalid or does not 5996 + return a boolean. 5863 5997 type: string 5864 - type: array 5865 - interval: 5866 - default: 10m 5867 - description: Interval at which to reconcile the Receiver with its 5868 - Secret references. 5869 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 5870 - type: string 5871 - resourceFilter: 5872 - description: |- 5873 - ResourceFilter is a CEL expression expected to return a boolean that is 5874 - evaluated for each resource referenced in the Resources field when a 5875 - webhook is received. If the expression returns false then the controller 5876 - will not request a reconciliation for the resource. 5877 - When the expression is specified the controller will parse it and mark 5878 - the object as terminally failed if the expression is invalid or does not 5879 - return a boolean. 5880 - type: string 5881 - resources: 5882 - description: A list of resources to be notified about changes. 5883 - items: 5998 + resources: 5999 + description: A list of resources to be notified about changes. 6000 + items: 6001 + description: |- 6002 + CrossNamespaceObjectReference contains enough information to let you locate the 6003 + typed referenced object at cluster level 6004 + properties: 6005 + apiVersion: 6006 + description: API version of the referent 6007 + type: string 6008 + kind: 6009 + description: Kind of the referent 6010 + enum: 6011 + - Bucket 6012 + - GitRepository 6013 + - Kustomization 6014 + - HelmRelease 6015 + - HelmChart 6016 + - HelmRepository 6017 + - ImageRepository 6018 + - ImagePolicy 6019 + - ImageUpdateAutomation 6020 + - OCIRepository 6021 + - ArtifactGenerator 6022 + - ExternalArtifact 6023 + type: string 6024 + matchLabels: 6025 + additionalProperties: 6026 + type: string 6027 + description: |- 6028 + MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 6029 + map is equivalent to an element of matchExpressions, whose key field is "key", the 6030 + operator is "In", and the values array contains only "value". The requirements are ANDed. 6031 + MatchLabels requires the name to be set to `*`. 6032 + type: object 6033 + name: 6034 + description: |- 6035 + Name of the referent 6036 + If multiple resources are targeted `*` may be set. 6037 + maxLength: 253 6038 + minLength: 1 6039 + type: string 6040 + namespace: 6041 + description: Namespace of the referent 6042 + maxLength: 253 6043 + minLength: 1 6044 + type: string 6045 + required: 6046 + - kind 6047 + - name 6048 + type: object 6049 + type: array 6050 + secretRef: 5884 6051 description: |- 5885 - CrossNamespaceObjectReference contains enough information to let you locate the 5886 - typed referenced object at cluster level 6052 + SecretRef specifies the Secret containing the token used 6053 + to validate the payload authenticity. The Secret must contain a 'token' 6054 + key. For GCR receivers, the Secret must also contain an 'email' key 6055 + with the IAM service account email configured on the Pub/Sub push 6056 + subscription, and an 'audience' key with the expected OIDC token audience. 5887 6057 properties: 5888 - apiVersion: 5889 - description: API version of the referent 5890 - type: string 5891 - kind: 5892 - description: Kind of the referent 5893 - enum: 5894 - - Bucket 5895 - - GitRepository 5896 - - Kustomization 5897 - - HelmRelease 5898 - - HelmChart 5899 - - HelmRepository 5900 - - ImageRepository 5901 - - ImagePolicy 5902 - - ImageUpdateAutomation 5903 - - OCIRepository 5904 - - ArtifactGenerator 5905 - - ExternalArtifact 5906 - type: string 5907 - matchLabels: 5908 - additionalProperties: 5909 - type: string 5910 - description: |- 5911 - MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 5912 - map is equivalent to an element of matchExpressions, whose key field is "key", the 5913 - operator is "In", and the values array contains only "value". The requirements are ANDed. 5914 - MatchLabels requires the name to be set to `*`. 5915 - type: object 5916 6058 name: 5917 - description: |- 5918 - Name of the referent 5919 - If multiple resources are targeted `*` may be set. 5920 - maxLength: 253 5921 - minLength: 1 5922 - type: string 5923 - namespace: 5924 - description: Namespace of the referent 5925 - maxLength: 253 5926 - minLength: 1 6059 + description: Name of the referent. 5927 6060 type: string 5928 6061 required: 5929 - - kind 5930 - - name 6062 + - name 5931 6063 type: object 5932 - type: array 5933 - secretRef: 5934 - description: |- 5935 - SecretRef specifies the Secret containing the token used 5936 - to validate the payload authenticity. The Secret must contain a 'token' 5937 - key. For GCR receivers, the Secret must also contain an 'email' key 5938 - with the IAM service account email configured on the Pub/Sub push 5939 - subscription, and an 'audience' key with the expected OIDC token audience. 5940 - properties: 5941 - name: 5942 - description: Name of the referent. 6064 + suspend: 6065 + description: |- 6066 + Suspend tells the controller to suspend subsequent 6067 + events handling for this receiver. 6068 + type: boolean 6069 + type: 6070 + description: |- 6071 + Type of webhook sender, used to determine 6072 + the validation procedure and payload deserialization. 6073 + enum: 6074 + - generic 6075 + - generic-hmac 6076 + - github 6077 + - gitlab 6078 + - bitbucket 6079 + - harbor 6080 + - dockerhub 6081 + - quay 6082 + - gcr 6083 + - nexus 6084 + - acr 6085 + - cdevents 6086 + type: string 6087 + required: 6088 + - resources 6089 + - secretRef 6090 + - type 6091 + type: object 6092 + status: 6093 + default: 6094 + observedGeneration: -1 6095 + description: ReceiverStatus defines the observed state of the Receiver. 6096 + properties: 6097 + conditions: 6098 + description: Conditions holds the conditions for the Receiver. 6099 + items: 6100 + description: 6101 + Condition contains details for one aspect of the current 6102 + state of this API Resource. 6103 + properties: 6104 + lastTransitionTime: 6105 + description: |- 6106 + lastTransitionTime is the last time the condition transitioned from one status to another. 6107 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 6108 + format: date-time 6109 + type: string 6110 + message: 6111 + description: |- 6112 + message is a human readable message indicating details about the transition. 6113 + This may be an empty string. 6114 + maxLength: 32768 6115 + type: string 6116 + observedGeneration: 6117 + description: |- 6118 + observedGeneration represents the .metadata.generation that the condition was set based upon. 6119 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 6120 + with respect to the current state of the instance. 6121 + format: int64 6122 + minimum: 0 6123 + type: integer 6124 + reason: 6125 + description: |- 6126 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 6127 + Producers of specific condition types may define expected values and meanings for this field, 6128 + and whether the values are considered a guaranteed API. 6129 + The value should be a CamelCase string. 6130 + This field may not be empty. 6131 + maxLength: 1024 6132 + minLength: 1 6133 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 6134 + type: string 6135 + status: 6136 + description: status of the condition, one of True, False, Unknown. 6137 + enum: 6138 + - "True" 6139 + - "False" 6140 + - Unknown 6141 + type: string 6142 + type: 6143 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 6144 + maxLength: 316 6145 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 6146 + type: string 6147 + required: 6148 + - lastTransitionTime 6149 + - message 6150 + - reason 6151 + - status 6152 + - type 6153 + type: object 6154 + type: array 6155 + lastHandledReconcileAt: 6156 + description: |- 6157 + LastHandledReconcileAt holds the value of the most recent 6158 + reconcile request value, so a change of the annotation value 6159 + can be detected. 6160 + type: string 6161 + observedGeneration: 6162 + description: 6163 + ObservedGeneration is the last observed generation of 6164 + the Receiver object. 6165 + format: int64 6166 + type: integer 6167 + webhookPath: 6168 + description: |- 6169 + WebhookPath is the generated incoming webhook address in the format 6170 + of '/hook/sha256sum(token+name+namespace)'. 6171 + type: string 6172 + type: object 6173 + type: object 6174 + served: true 6175 + storage: true 6176 + subresources: 6177 + status: {} 6178 + - additionalPrinterColumns: 6179 + - jsonPath: .metadata.creationTimestamp 6180 + name: Age 6181 + type: date 6182 + - jsonPath: .status.conditions[?(@.type=="Ready")].status 6183 + name: Ready 6184 + type: string 6185 + - jsonPath: .status.conditions[?(@.type=="Ready")].message 6186 + name: Status 6187 + type: string 6188 + deprecated: true 6189 + deprecationWarning: v1beta2 Receiver is deprecated, upgrade to v1 6190 + name: v1beta2 6191 + schema: 6192 + openAPIV3Schema: 6193 + description: Receiver is the Schema for the receivers API. 6194 + properties: 6195 + apiVersion: 6196 + description: |- 6197 + APIVersion defines the versioned schema of this representation of an object. 6198 + Servers should convert recognized schemas to the latest internal value, and 6199 + may reject unrecognized values. 6200 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 6201 + type: string 6202 + kind: 6203 + description: |- 6204 + Kind is a string value representing the REST resource this object represents. 6205 + Servers may infer this from the endpoint the client submits requests to. 6206 + Cannot be updated. 6207 + In CamelCase. 6208 + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 6209 + type: string 6210 + metadata: 6211 + type: object 6212 + spec: 6213 + description: ReceiverSpec defines the desired state of the Receiver. 6214 + properties: 6215 + events: 6216 + description: |- 6217 + Events specifies the list of event types to handle, 6218 + e.g. 'push' for GitHub or 'Push Hook' for GitLab. 6219 + items: 5943 6220 type: string 5944 - required: 5945 - - name 5946 - type: object 5947 - suspend: 5948 - description: |- 5949 - Suspend tells the controller to suspend subsequent 5950 - events handling for this receiver. 5951 - type: boolean 5952 - type: 5953 - description: |- 5954 - Type of webhook sender, used to determine 5955 - the validation procedure and payload deserialization. 5956 - enum: 5957 - - generic 5958 - - generic-hmac 5959 - - github 5960 - - gitlab 5961 - - bitbucket 5962 - - harbor 5963 - - dockerhub 5964 - - quay 5965 - - gcr 5966 - - nexus 5967 - - acr 5968 - - cdevents 5969 - type: string 5970 - required: 5971 - - resources 5972 - - secretRef 5973 - - type 5974 - type: object 5975 - status: 5976 - default: 5977 - observedGeneration: -1 5978 - description: ReceiverStatus defines the observed state of the Receiver. 5979 - properties: 5980 - conditions: 5981 - description: Conditions holds the conditions for the Receiver. 5982 - items: 5983 - description: Condition contains details for one aspect of the current 5984 - state of this API Resource. 5985 - properties: 5986 - lastTransitionTime: 5987 - description: |- 5988 - lastTransitionTime is the last time the condition transitioned from one status to another. 5989 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 5990 - format: date-time 5991 - type: string 5992 - message: 5993 - description: |- 5994 - message is a human readable message indicating details about the transition. 5995 - This may be an empty string. 5996 - maxLength: 32768 5997 - type: string 5998 - observedGeneration: 5999 - description: |- 6000 - observedGeneration represents the .metadata.generation that the condition was set based upon. 6001 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 6002 - with respect to the current state of the instance. 6003 - format: int64 6004 - minimum: 0 6005 - type: integer 6006 - reason: 6007 - description: |- 6008 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 6009 - Producers of specific condition types may define expected values and meanings for this field, 6010 - and whether the values are considered a guaranteed API. 6011 - The value should be a CamelCase string. 6012 - This field may not be empty. 6013 - maxLength: 1024 6014 - minLength: 1 6015 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 6016 - type: string 6017 - status: 6018 - description: status of the condition, one of True, False, Unknown. 6019 - enum: 6020 - - "True" 6021 - - "False" 6022 - - Unknown 6023 - type: string 6024 - type: 6025 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 6026 - maxLength: 316 6027 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 6028 - type: string 6029 - required: 6030 - - lastTransitionTime 6031 - - message 6032 - - reason 6033 - - status 6034 - - type 6035 - type: object 6036 - type: array 6037 - lastHandledReconcileAt: 6038 - description: |- 6039 - LastHandledReconcileAt holds the value of the most recent 6040 - reconcile request value, so a change of the annotation value 6041 - can be detected. 6042 - type: string 6043 - observedGeneration: 6044 - description: ObservedGeneration is the last observed generation of 6045 - the Receiver object. 6046 - format: int64 6047 - type: integer 6048 - webhookPath: 6049 - description: |- 6050 - WebhookPath is the generated incoming webhook address in the format 6051 - of '/hook/sha256sum(token+name+namespace)'. 6052 - type: string 6053 - type: object 6054 - type: object 6055 - served: true 6056 - storage: true 6057 - subresources: 6058 - status: {} 6059 - - additionalPrinterColumns: 6060 - - jsonPath: .metadata.creationTimestamp 6061 - name: Age 6062 - type: date 6063 - - jsonPath: .status.conditions[?(@.type=="Ready")].status 6064 - name: Ready 6065 - type: string 6066 - - jsonPath: .status.conditions[?(@.type=="Ready")].message 6067 - name: Status 6068 - type: string 6069 - deprecated: true 6070 - deprecationWarning: v1beta2 Receiver is deprecated, upgrade to v1 6071 - name: v1beta2 6072 - schema: 6073 - openAPIV3Schema: 6074 - description: Receiver is the Schema for the receivers API. 6075 - properties: 6076 - apiVersion: 6077 - description: |- 6078 - APIVersion defines the versioned schema of this representation of an object. 6079 - Servers should convert recognized schemas to the latest internal value, and 6080 - may reject unrecognized values. 6081 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 6082 - type: string 6083 - kind: 6084 - description: |- 6085 - Kind is a string value representing the REST resource this object represents. 6086 - Servers may infer this from the endpoint the client submits requests to. 6087 - Cannot be updated. 6088 - In CamelCase. 6089 - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 6090 - type: string 6091 - metadata: 6092 - type: object 6093 - spec: 6094 - description: ReceiverSpec defines the desired state of the Receiver. 6095 - properties: 6096 - events: 6097 - description: |- 6098 - Events specifies the list of event types to handle, 6099 - e.g. 'push' for GitHub or 'Push Hook' for GitLab. 6100 - items: 6221 + type: array 6222 + interval: 6223 + description: 6224 + Interval at which to reconcile the Receiver with its 6225 + Secret references. 6226 + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 6101 6227 type: string 6102 - type: array 6103 - interval: 6104 - description: Interval at which to reconcile the Receiver with its 6105 - Secret references. 6106 - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ 6107 - type: string 6108 - resources: 6109 - description: A list of resources to be notified about changes. 6110 - items: 6228 + resources: 6229 + description: A list of resources to be notified about changes. 6230 + items: 6231 + description: |- 6232 + CrossNamespaceObjectReference contains enough information to let you locate the 6233 + typed referenced object at cluster level 6234 + properties: 6235 + apiVersion: 6236 + description: API version of the referent 6237 + type: string 6238 + kind: 6239 + description: Kind of the referent 6240 + enum: 6241 + - Bucket 6242 + - GitRepository 6243 + - Kustomization 6244 + - HelmRelease 6245 + - HelmChart 6246 + - HelmRepository 6247 + - ImageRepository 6248 + - ImagePolicy 6249 + - ImageUpdateAutomation 6250 + - OCIRepository 6251 + - ArtifactGenerator 6252 + - ExternalArtifact 6253 + type: string 6254 + matchLabels: 6255 + additionalProperties: 6256 + type: string 6257 + description: |- 6258 + MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 6259 + map is equivalent to an element of matchExpressions, whose key field is "key", the 6260 + operator is "In", and the values array contains only "value". The requirements are ANDed. 6261 + MatchLabels requires the name to be set to `*`. 6262 + type: object 6263 + name: 6264 + description: |- 6265 + Name of the referent 6266 + If multiple resources are targeted `*` may be set. 6267 + maxLength: 253 6268 + minLength: 1 6269 + type: string 6270 + namespace: 6271 + description: Namespace of the referent 6272 + maxLength: 253 6273 + minLength: 1 6274 + type: string 6275 + required: 6276 + - kind 6277 + - name 6278 + type: object 6279 + type: array 6280 + secretRef: 6111 6281 description: |- 6112 - CrossNamespaceObjectReference contains enough information to let you locate the 6113 - typed referenced object at cluster level 6282 + SecretRef specifies the Secret containing the token used 6283 + to validate the payload authenticity. 6114 6284 properties: 6115 - apiVersion: 6116 - description: API version of the referent 6117 - type: string 6118 - kind: 6119 - description: Kind of the referent 6120 - enum: 6121 - - Bucket 6122 - - GitRepository 6123 - - Kustomization 6124 - - HelmRelease 6125 - - HelmChart 6126 - - HelmRepository 6127 - - ImageRepository 6128 - - ImagePolicy 6129 - - ImageUpdateAutomation 6130 - - OCIRepository 6131 - - ArtifactGenerator 6132 - - ExternalArtifact 6133 - type: string 6134 - matchLabels: 6135 - additionalProperties: 6136 - type: string 6137 - description: |- 6138 - MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 6139 - map is equivalent to an element of matchExpressions, whose key field is "key", the 6140 - operator is "In", and the values array contains only "value". The requirements are ANDed. 6141 - MatchLabels requires the name to be set to `*`. 6142 - type: object 6143 6285 name: 6144 - description: |- 6145 - Name of the referent 6146 - If multiple resources are targeted `*` may be set. 6147 - maxLength: 253 6148 - minLength: 1 6149 - type: string 6150 - namespace: 6151 - description: Namespace of the referent 6152 - maxLength: 253 6153 - minLength: 1 6154 - type: string 6155 - required: 6156 - - kind 6157 - - name 6158 - type: object 6159 - type: array 6160 - secretRef: 6161 - description: |- 6162 - SecretRef specifies the Secret containing the token used 6163 - to validate the payload authenticity. 6164 - properties: 6165 - name: 6166 - description: Name of the referent. 6167 - type: string 6168 - required: 6169 - - name 6170 - type: object 6171 - suspend: 6172 - description: |- 6173 - Suspend tells the controller to suspend subsequent 6174 - events handling for this receiver. 6175 - type: boolean 6176 - type: 6177 - description: |- 6178 - Type of webhook sender, used to determine 6179 - the validation procedure and payload deserialization. 6180 - enum: 6181 - - generic 6182 - - generic-hmac 6183 - - github 6184 - - gitlab 6185 - - bitbucket 6186 - - harbor 6187 - - dockerhub 6188 - - quay 6189 - - gcr 6190 - - nexus 6191 - - acr 6192 - type: string 6193 - required: 6194 - - resources 6195 - - secretRef 6196 - - type 6197 - type: object 6198 - status: 6199 - default: 6200 - observedGeneration: -1 6201 - description: ReceiverStatus defines the observed state of the Receiver. 6202 - properties: 6203 - conditions: 6204 - description: Conditions holds the conditions for the Receiver. 6205 - items: 6206 - description: Condition contains details for one aspect of the current 6207 - state of this API Resource. 6208 - properties: 6209 - lastTransitionTime: 6210 - description: |- 6211 - lastTransitionTime is the last time the condition transitioned from one status to another. 6212 - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 6213 - format: date-time 6214 - type: string 6215 - message: 6216 - description: |- 6217 - message is a human readable message indicating details about the transition. 6218 - This may be an empty string. 6219 - maxLength: 32768 6220 - type: string 6221 - observedGeneration: 6222 - description: |- 6223 - observedGeneration represents the .metadata.generation that the condition was set based upon. 6224 - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 6225 - with respect to the current state of the instance. 6226 - format: int64 6227 - minimum: 0 6228 - type: integer 6229 - reason: 6230 - description: |- 6231 - reason contains a programmatic identifier indicating the reason for the condition's last transition. 6232 - Producers of specific condition types may define expected values and meanings for this field, 6233 - and whether the values are considered a guaranteed API. 6234 - The value should be a CamelCase string. 6235 - This field may not be empty. 6236 - maxLength: 1024 6237 - minLength: 1 6238 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 6239 - type: string 6240 - status: 6241 - description: status of the condition, one of True, False, Unknown. 6242 - enum: 6243 - - "True" 6244 - - "False" 6245 - - Unknown 6246 - type: string 6247 - type: 6248 - description: type of condition in CamelCase or in foo.example.com/CamelCase. 6249 - maxLength: 316 6250 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 6286 + description: Name of the referent. 6251 6287 type: string 6252 6288 required: 6253 - - lastTransitionTime 6254 - - message 6255 - - reason 6256 - - status 6257 - - type 6289 + - name 6258 6290 type: object 6259 - type: array 6260 - lastHandledReconcileAt: 6261 - description: |- 6262 - LastHandledReconcileAt holds the value of the most recent 6263 - reconcile request value, so a change of the annotation value 6264 - can be detected. 6265 - type: string 6266 - observedGeneration: 6267 - description: ObservedGeneration is the last observed generation of 6268 - the Receiver object. 6269 - format: int64 6270 - type: integer 6271 - url: 6272 - description: |- 6273 - URL is the generated incoming webhook address in the format 6274 - of '/hook/sha256sum(token+name+namespace)'. 6275 - Deprecated: Replaced by WebhookPath. 6276 - type: string 6277 - webhookPath: 6278 - description: |- 6279 - WebhookPath is the generated incoming webhook address in the format 6280 - of '/hook/sha256sum(token+name+namespace)'. 6281 - type: string 6282 - type: object 6283 - type: object 6284 - served: true 6285 - storage: false 6286 - subresources: 6287 - status: {} 6291 + suspend: 6292 + description: |- 6293 + Suspend tells the controller to suspend subsequent 6294 + events handling for this receiver. 6295 + type: boolean 6296 + type: 6297 + description: |- 6298 + Type of webhook sender, used to determine 6299 + the validation procedure and payload deserialization. 6300 + enum: 6301 + - generic 6302 + - generic-hmac 6303 + - github 6304 + - gitlab 6305 + - bitbucket 6306 + - harbor 6307 + - dockerhub 6308 + - quay 6309 + - gcr 6310 + - nexus 6311 + - acr 6312 + type: string 6313 + required: 6314 + - resources 6315 + - secretRef 6316 + - type 6317 + type: object 6318 + status: 6319 + default: 6320 + observedGeneration: -1 6321 + description: ReceiverStatus defines the observed state of the Receiver. 6322 + properties: 6323 + conditions: 6324 + description: Conditions holds the conditions for the Receiver. 6325 + items: 6326 + description: 6327 + Condition contains details for one aspect of the current 6328 + state of this API Resource. 6329 + properties: 6330 + lastTransitionTime: 6331 + description: |- 6332 + lastTransitionTime is the last time the condition transitioned from one status to another. 6333 + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 6334 + format: date-time 6335 + type: string 6336 + message: 6337 + description: |- 6338 + message is a human readable message indicating details about the transition. 6339 + This may be an empty string. 6340 + maxLength: 32768 6341 + type: string 6342 + observedGeneration: 6343 + description: |- 6344 + observedGeneration represents the .metadata.generation that the condition was set based upon. 6345 + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date 6346 + with respect to the current state of the instance. 6347 + format: int64 6348 + minimum: 0 6349 + type: integer 6350 + reason: 6351 + description: |- 6352 + reason contains a programmatic identifier indicating the reason for the condition's last transition. 6353 + Producers of specific condition types may define expected values and meanings for this field, 6354 + and whether the values are considered a guaranteed API. 6355 + The value should be a CamelCase string. 6356 + This field may not be empty. 6357 + maxLength: 1024 6358 + minLength: 1 6359 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 6360 + type: string 6361 + status: 6362 + description: status of the condition, one of True, False, Unknown. 6363 + enum: 6364 + - "True" 6365 + - "False" 6366 + - Unknown 6367 + type: string 6368 + type: 6369 + description: type of condition in CamelCase or in foo.example.com/CamelCase. 6370 + maxLength: 316 6371 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 6372 + type: string 6373 + required: 6374 + - lastTransitionTime 6375 + - message 6376 + - reason 6377 + - status 6378 + - type 6379 + type: object 6380 + type: array 6381 + lastHandledReconcileAt: 6382 + description: |- 6383 + LastHandledReconcileAt holds the value of the most recent 6384 + reconcile request value, so a change of the annotation value 6385 + can be detected. 6386 + type: string 6387 + observedGeneration: 6388 + description: 6389 + ObservedGeneration is the last observed generation of 6390 + the Receiver object. 6391 + format: int64 6392 + type: integer 6393 + url: 6394 + description: |- 6395 + URL is the generated incoming webhook address in the format 6396 + of '/hook/sha256sum(token+name+namespace)'. 6397 + Deprecated: Replaced by WebhookPath. 6398 + type: string 6399 + webhookPath: 6400 + description: |- 6401 + WebhookPath is the generated incoming webhook address in the format 6402 + of '/hook/sha256sum(token+name+namespace)'. 6403 + type: string 6404 + type: object 6405 + type: object 6406 + served: true 6407 + storage: false 6408 + subresources: 6409 + status: {} 6288 6410 --- 6289 6411 apiVersion: v1 6290 6412 kind: ServiceAccount ··· 6310 6432 namespace: flux-system 6311 6433 spec: 6312 6434 ports: 6313 - - name: http 6314 - port: 80 6315 - protocol: TCP 6316 - targetPort: http 6435 + - name: http 6436 + port: 80 6437 + protocol: TCP 6438 + targetPort: http 6317 6439 selector: 6318 6440 app: notification-controller 6319 6441 type: ClusterIP ··· 6331 6453 namespace: flux-system 6332 6454 spec: 6333 6455 ports: 6334 - - name: http 6335 - port: 80 6336 - protocol: TCP 6337 - targetPort: http-webhook 6456 + - name: http 6457 + port: 80 6458 + protocol: TCP 6459 + targetPort: http-webhook 6338 6460 selector: 6339 6461 app: notification-controller 6340 6462 type: ClusterIP ··· 6368 6490 app.kubernetes.io/version: v2.8.8 6369 6491 spec: 6370 6492 containers: 6371 - - args: 6372 - - --watch-all-namespaces=true 6373 - - --log-level=info 6374 - - --log-encoding=json 6375 - - --enable-leader-election 6376 - env: 6377 - - name: RUNTIME_NAMESPACE 6378 - valueFrom: 6379 - fieldRef: 6380 - fieldPath: metadata.namespace 6381 - - name: GOMEMLIMIT 6382 - valueFrom: 6383 - resourceFieldRef: 6384 - containerName: manager 6385 - resource: limits.memory 6386 - image: ghcr.io/fluxcd/notification-controller:v1.8.4 6387 - imagePullPolicy: IfNotPresent 6388 - livenessProbe: 6389 - httpGet: 6390 - path: /healthz 6391 - port: healthz 6392 - name: manager 6393 - ports: 6394 - - containerPort: 9090 6395 - name: http 6396 - protocol: TCP 6397 - - containerPort: 9292 6398 - name: http-webhook 6399 - protocol: TCP 6400 - - containerPort: 8080 6401 - name: http-prom 6402 - protocol: TCP 6403 - - containerPort: 9440 6404 - name: healthz 6405 - protocol: TCP 6406 - readinessProbe: 6407 - httpGet: 6408 - path: /readyz 6409 - port: healthz 6410 - resources: 6411 - limits: 6412 - cpu: 1000m 6413 - memory: 1Gi 6414 - requests: 6415 - cpu: 100m 6416 - memory: 64Mi 6417 - securityContext: 6418 - allowPrivilegeEscalation: false 6419 - capabilities: 6420 - drop: 6421 - - ALL 6422 - readOnlyRootFilesystem: true 6423 - runAsNonRoot: true 6424 - seccompProfile: 6425 - type: RuntimeDefault 6426 - volumeMounts: 6427 - - mountPath: /tmp 6428 - name: temp 6493 + - args: 6494 + - --watch-all-namespaces=true 6495 + - --log-level=info 6496 + - --log-encoding=json 6497 + - --enable-leader-election 6498 + env: 6499 + - name: RUNTIME_NAMESPACE 6500 + valueFrom: 6501 + fieldRef: 6502 + fieldPath: metadata.namespace 6503 + - name: GOMEMLIMIT 6504 + valueFrom: 6505 + resourceFieldRef: 6506 + containerName: manager 6507 + resource: limits.memory 6508 + image: ghcr.io/fluxcd/notification-controller:v1.8.4 6509 + imagePullPolicy: IfNotPresent 6510 + livenessProbe: 6511 + httpGet: 6512 + path: /healthz 6513 + port: healthz 6514 + name: manager 6515 + ports: 6516 + - containerPort: 9090 6517 + name: http 6518 + protocol: TCP 6519 + - containerPort: 9292 6520 + name: http-webhook 6521 + protocol: TCP 6522 + - containerPort: 8080 6523 + name: http-prom 6524 + protocol: TCP 6525 + - containerPort: 9440 6526 + name: healthz 6527 + protocol: TCP 6528 + readinessProbe: 6529 + httpGet: 6530 + path: /readyz 6531 + port: healthz 6532 + resources: 6533 + limits: 6534 + cpu: 1000m 6535 + memory: 1Gi 6536 + requests: 6537 + cpu: 100m 6538 + memory: 64Mi 6539 + securityContext: 6540 + allowPrivilegeEscalation: false 6541 + capabilities: 6542 + drop: 6543 + - ALL 6544 + readOnlyRootFilesystem: true 6545 + runAsNonRoot: true 6546 + seccompProfile: 6547 + type: RuntimeDefault 6548 + volumeMounts: 6549 + - mountPath: /tmp 6550 + name: temp 6429 6551 nodeSelector: 6430 6552 kubernetes.io/os: linux 6431 6553 securityContext: ··· 6433 6555 serviceAccountName: notification-controller 6434 6556 terminationGracePeriodSeconds: 10 6435 6557 volumes: 6436 - - emptyDir: {} 6437 - name: temp 6558 + - emptyDir: {} 6559 + name: temp
-8
k8s/helmfile.yaml
··· 361 361 - values/global.yaml 362 362 - values/secrets/audiobookshelf.yaml 363 363 364 - - name: watsup 365 - namespace: default 366 - chart: ./charts/watsup 367 - needs: 368 - - default/cluster-tls 369 - values: 370 - - values/global.yaml 371 - 372 364 - name: morsels 373 365 namespace: default 374 366 chart: ./charts/morsels
+31
scripts/check-pinned-images.ts
··· 5 5 6 6 const HELMFILE = "k8s/helmfile.yaml"; 7 7 const GLOB = "k8s/charts/*/**/*.yaml"; 8 + const FLUX_DIRS = [ 9 + "k8s/flux/infra-crds", 10 + "k8s/flux/infra-core", 11 + "k8s/flux/platform", 12 + "k8s/flux/apps", 13 + "k8s/flux/external-routes", 14 + ]; 8 15 const ALLOW_FLOATING = new Set<string>(); 9 16 10 17 type Release = { chart: string }; 11 18 type Helmfile = { releases: Release[] }; 19 + type HelmRelease = { 20 + kind?: string; 21 + spec?: { chart?: { spec?: { chart?: string } } }; 22 + }; 12 23 13 24 function chartNameFromPath(templatePath: string): string { 14 25 return templatePath.split("/")[2]; ··· 22 33 names.add(release.chart.replace(/^\.\/charts\//, "")); 23 34 } 24 35 } 36 + 37 + for (const dir of FLUX_DIRS) { 38 + const glob = new Bun.Glob(`${dir}/**/*.yaml`); 39 + for await (const path of glob.scan(".")) { 40 + const text = await Bun.file(path).text(); 41 + for (const doc of text 42 + .split(/^---\s*$/m) 43 + .map((doc) => doc.trim()) 44 + .filter(Boolean)) { 45 + const parsed = Bun.YAML.parse(doc) as HelmRelease | null; 46 + if (parsed?.kind !== "HelmRelease") continue; 47 + 48 + const chart = parsed.spec?.chart?.spec?.chart; 49 + if (chart?.startsWith("./k8s/charts/")) { 50 + names.add(chart.replace(/^\.\/k8s\/charts\//, "")); 51 + } 52 + } 53 + } 54 + } 55 + 25 56 return names; 26 57 } 27 58
+62 -6
scripts/check-release-names.ts
··· 1 - // Every helm release in helmfile.yaml that points to a local chart 2 - // (./charts/<name>) must reference an actual k8s/charts/<name>/Chart.yaml. 1 + // Every deployed local Helm chart must reference an actual 2 + // k8s/charts/<name>/Chart.yaml. During the Flux migration, deployed charts can 3 + // be declared in helmfile.yaml or Flux HelmRelease manifests. 3 4 4 5 const HELMFILE = "k8s/helmfile.yaml"; 6 + const FLUX_DIRS = [ 7 + "k8s/flux/infra-crds", 8 + "k8s/flux/infra-core", 9 + "k8s/flux/platform", 10 + "k8s/flux/apps", 11 + "k8s/flux/external-routes", 12 + ]; 5 13 6 14 type Release = { name: string; chart: string }; 7 15 type Helmfile = { releases: Release[] }; 16 + type HelmRelease = { 17 + kind?: string; 18 + metadata?: { name?: string }; 19 + spec?: { chart?: { spec?: { chart?: string } } }; 20 + }; 21 + 22 + function splitYamlDocuments(text: string): string[] { 23 + return text 24 + .split(/^---\s*$/m) 25 + .map((doc) => doc.trim()) 26 + .filter(Boolean); 27 + } 28 + 29 + async function fluxLocalReleases(): Promise<Release[]> { 30 + const releases: Release[] = []; 31 + 32 + for (const dir of FLUX_DIRS) { 33 + const glob = new Bun.Glob(`${dir}/**/*.yaml`); 34 + for await (const path of glob.scan(".")) { 35 + const text = await Bun.file(path).text(); 36 + for (const doc of splitYamlDocuments(text)) { 37 + const parsed = Bun.YAML.parse(doc) as HelmRelease | null; 38 + if (parsed?.kind !== "HelmRelease") continue; 39 + 40 + const chart = parsed.spec?.chart?.spec?.chart; 41 + if (!chart?.startsWith("./k8s/charts/")) continue; 42 + 43 + releases.push({ 44 + name: parsed.metadata?.name ?? path, 45 + chart, 46 + }); 47 + } 48 + } 49 + } 50 + 51 + return releases; 52 + } 53 + 54 + function chartYamlPath(chart: string): string { 55 + return ( 56 + chart.replace(/^\.\/charts\//, "k8s/charts/").replace(/^\.\//, "") + 57 + "/Chart.yaml" 58 + ); 59 + } 8 60 9 61 export async function checkReleaseNames(): Promise<string[]> { 10 62 const helmfile = Bun.YAML.parse(await Bun.file(HELMFILE).text()) as Helmfile; 11 63 const errors: string[] = []; 12 64 13 - for (const release of helmfile.releases) { 14 - const isLocalChart = release.chart.startsWith("./charts/"); 15 - if (!isLocalChart) continue; 65 + const releases = [ 66 + ...helmfile.releases.filter((release) => 67 + release.chart.startsWith("./charts/"), 68 + ), 69 + ...(await fluxLocalReleases()), 70 + ]; 16 71 17 - const chartYaml = release.chart.replace(/^\.\//, "k8s/") + "/Chart.yaml"; 72 + for (const release of releases) { 73 + const chartYaml = chartYamlPath(release.chart); 18 74 const exists = await Bun.file(chartYaml).exists(); 19 75 if (!exists) { 20 76 errors.push(