From ba494d88b408c988396055a3d4f8c49caf3ec9c2 Mon Sep 17 00:00:00 2001 From: wuhuizuo Date: Tue, 10 Sep 2024 14:46:41 +0800 Subject: [PATCH] fix(cluster/staging): delete staging cluster (#1254) it not existed for longer than one year. Signed-off-by: wuhuizuo Signed-off-by: wuhuizuo --- apps/staging/OWNERS | 2 - apps/staging/ats/config-override/cache.config | 4 - .../ats/config-override/records.config | 73 - apps/staging/ats/config-override/remap.config | 7 - .../ats/config-override/storage.config | 1 - apps/staging/ats/kustomization.yaml | 15 - apps/staging/ats/pvc.yaml | 14 - apps/staging/ats/release.yaml | 83 - apps/staging/goproxy/deployment.yaml | 44 - apps/staging/goproxy/kustomization.yaml | 7 - apps/staging/goproxy/pvc.yaml | 11 - apps/staging/goproxy/svc.yaml | 11 - apps/staging/greenhouse/kustomization.yaml | 4 - apps/staging/greenhouse/release.yaml | 48 - apps/staging/jenkins/kustomization.yaml | 6 - apps/staging/jenkins/post.yaml | 18 - .../jenkins/post/_base/cronjob-go-caches.yaml | 61 - .../jenkins/post/_base/kustomization.yaml | 6 - apps/staging/jenkins/post/_base/pvc.yaml | 25 - apps/staging/jenkins/post/_base/rbac.yaml | 42 - apps/staging/jenkins/post/kustomization.yaml | 4 - apps/staging/jenkins/post/tidb/files/bazel | 1 - .../tidb/files/bazel-prepare-in-container.sh | 55 - .../jenkins/post/tidb/kustomization.yaml | 15 - apps/staging/jenkins/post/tidb/namespace.yaml | 4 - apps/staging/jenkins/post/tidb/pvc-job.yaml | 99 - apps/staging/jenkins/post/tidb/pvc.yaml | 25 - apps/staging/jenkins/pre.yaml | 14 - apps/staging/jenkins/pre/kustomization.yaml | 5 - apps/staging/jenkins/pre/obc.yaml | 14 - apps/staging/jenkins/pre/obc/cronjobs.yaml | 33 - apps/staging/jenkins/pre/obc/obc.yaml | 10 - apps/staging/jenkins/pre/secret.yaml | 23 - .../jenkins/pre/secret/cache-secret.yaml | 12 - apps/staging/jenkins/release.yaml | 17 - apps/staging/jenkins/release/README.md | 17 - .../jenkins/release/kustomization.yaml | 18 - .../jenkins/release/kustomize-config.yaml | 8 - .../jenkins/release/namespace-agent.yaml | 4 - apps/staging/jenkins/release/release.yaml | 34 - .../staging/jenkins/release/values-JCasC.yaml | 257 - .../staging/jenkins/release/values-agent.yaml | 9 - .../jenkins/release/values-controller-ha.yaml | 33 - .../release/values-controller-plugins.yaml | 118 - .../jenkins/release/values-controller.yaml | 75 - .../jenkins/release/values-persistence.yaml | 27 - .../release/values-service-account.yaml | 3 - apps/staging/kustomization.yaml | 12 - apps/staging/mongodb/kustomization.yaml | 4 - apps/staging/mongodb/release.yaml | 30 - apps/staging/namespace.yaml | 9 - apps/staging/prow-crd.yaml | 15 - apps/staging/prow/kustomization.yaml | 6 - apps/staging/prow/post.yaml | 26 - apps/staging/prow/post/configs/README.md | 16 - apps/staging/prow/post/configs/config.yaml | 98 - .../PingCAP-QE/ee-ops/job-call-jenkins.yaml | 2 - .../jobs/PingCAP-QE/ee-ops/job-prowjob.yaml | 9 - .../ee-ops/job-tekton-pipeline-spec.yaml | 26 - .../prow/post/configs/jobs/kustomization.yaml | 12 - .../prow/post/configs/kustomization.yaml | 19 - apps/staging/prow/post/configs/labels.yaml | 22 - apps/staging/prow/post/configs/plugins.yaml | 96 - apps/staging/prow/post/kustomization.yaml | 4 - apps/staging/prow/pre.yaml | 17 - apps/staging/prow/pre/chatgpt/tasks.yaml | 19 - apps/staging/prow/pre/kustomization.yaml | 14 - .../staging/prow/pre/namespace-test-pods.yaml | 4 - apps/staging/prow/pre/obc.yaml | 10 - .../prow/pre/rbac-test-pods-k8s-pod-full.yaml | 37 - apps/staging/prow/release.yaml | 41 - apps/staging/prow/release/kustomization.yaml | 5 - apps/staging/prow/release/release.yaml | 194 - clusters/{staging => prod}/README.md | 2 - clusters/staging/apps.yaml | 15 - .../staging/flux-system/gotk-components.yaml | 6788 ----------------- clusters/staging/flux-system/gotk-sync.yaml | 27 - .../staging/flux-system/kustomization.yaml | 6 - .../staging/flux-system/notification.yaml | 53 - clusters/staging/infrastructure.yaml | 13 - infrastructure/staging/OWNERS | 2 - infrastructure/staging/kustomization.yaml | 7 - .../staging/monitoring/kustomization.yaml | 5 - .../staging/monitoring/operator.yaml | 12 - infrastructure/staging/monitoring/stack.yaml | 58 - .../staging/nginx/kustomization.yaml | 6 - infrastructure/staging/nginx/namespace.yaml | 5 - infrastructure/staging/nginx/release.yaml | 31 - .../staging/rook-ceph/kustomization.yaml | 7 - .../staging/rook-ceph/namespace.yaml | 5 - .../staging/rook-ceph/release-cluster.yaml | 62 - .../staging/rook-ceph/release-operator.yaml | 32 - 92 files changed, 9299 deletions(-) delete mode 100644 apps/staging/OWNERS delete mode 100644 apps/staging/ats/config-override/cache.config delete mode 100644 apps/staging/ats/config-override/records.config delete mode 100644 apps/staging/ats/config-override/remap.config delete mode 100644 apps/staging/ats/config-override/storage.config delete mode 100644 apps/staging/ats/kustomization.yaml delete mode 100644 apps/staging/ats/pvc.yaml delete mode 100644 apps/staging/ats/release.yaml delete mode 100644 apps/staging/goproxy/deployment.yaml delete mode 100644 apps/staging/goproxy/kustomization.yaml delete mode 100644 apps/staging/goproxy/pvc.yaml delete mode 100644 apps/staging/goproxy/svc.yaml delete mode 100644 apps/staging/greenhouse/kustomization.yaml delete mode 100644 apps/staging/greenhouse/release.yaml delete mode 100644 apps/staging/jenkins/kustomization.yaml delete mode 100644 apps/staging/jenkins/post.yaml delete mode 100644 apps/staging/jenkins/post/_base/cronjob-go-caches.yaml delete mode 100644 apps/staging/jenkins/post/_base/kustomization.yaml delete mode 100644 apps/staging/jenkins/post/_base/pvc.yaml delete mode 100644 apps/staging/jenkins/post/_base/rbac.yaml delete mode 100644 apps/staging/jenkins/post/kustomization.yaml delete mode 100644 apps/staging/jenkins/post/tidb/files/bazel delete mode 100644 apps/staging/jenkins/post/tidb/files/bazel-prepare-in-container.sh delete mode 100644 apps/staging/jenkins/post/tidb/kustomization.yaml delete mode 100644 apps/staging/jenkins/post/tidb/namespace.yaml delete mode 100644 apps/staging/jenkins/post/tidb/pvc-job.yaml delete mode 100644 apps/staging/jenkins/post/tidb/pvc.yaml delete mode 100644 apps/staging/jenkins/pre.yaml delete mode 100644 apps/staging/jenkins/pre/kustomization.yaml delete mode 100644 apps/staging/jenkins/pre/obc.yaml delete mode 100644 apps/staging/jenkins/pre/obc/cronjobs.yaml delete mode 100644 apps/staging/jenkins/pre/obc/obc.yaml delete mode 100644 apps/staging/jenkins/pre/secret.yaml delete mode 100644 apps/staging/jenkins/pre/secret/cache-secret.yaml delete mode 100644 apps/staging/jenkins/release.yaml delete mode 100644 apps/staging/jenkins/release/README.md delete mode 100644 apps/staging/jenkins/release/kustomization.yaml delete mode 100644 apps/staging/jenkins/release/kustomize-config.yaml delete mode 100644 apps/staging/jenkins/release/namespace-agent.yaml delete mode 100644 apps/staging/jenkins/release/release.yaml delete mode 100644 apps/staging/jenkins/release/values-JCasC.yaml delete mode 100644 apps/staging/jenkins/release/values-agent.yaml delete mode 100644 apps/staging/jenkins/release/values-controller-ha.yaml delete mode 100644 apps/staging/jenkins/release/values-controller-plugins.yaml delete mode 100644 apps/staging/jenkins/release/values-controller.yaml delete mode 100644 apps/staging/jenkins/release/values-persistence.yaml delete mode 100644 apps/staging/jenkins/release/values-service-account.yaml delete mode 100644 apps/staging/kustomization.yaml delete mode 100644 apps/staging/mongodb/kustomization.yaml delete mode 100644 apps/staging/mongodb/release.yaml delete mode 100644 apps/staging/namespace.yaml delete mode 100644 apps/staging/prow-crd.yaml delete mode 100644 apps/staging/prow/kustomization.yaml delete mode 100644 apps/staging/prow/post.yaml delete mode 100644 apps/staging/prow/post/configs/README.md delete mode 100644 apps/staging/prow/post/configs/config.yaml delete mode 100644 apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-call-jenkins.yaml delete mode 100644 apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-prowjob.yaml delete mode 100644 apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-tekton-pipeline-spec.yaml delete mode 100644 apps/staging/prow/post/configs/jobs/kustomization.yaml delete mode 100644 apps/staging/prow/post/configs/kustomization.yaml delete mode 100644 apps/staging/prow/post/configs/labels.yaml delete mode 100644 apps/staging/prow/post/configs/plugins.yaml delete mode 100644 apps/staging/prow/post/kustomization.yaml delete mode 100644 apps/staging/prow/pre.yaml delete mode 100644 apps/staging/prow/pre/chatgpt/tasks.yaml delete mode 100644 apps/staging/prow/pre/kustomization.yaml delete mode 100644 apps/staging/prow/pre/namespace-test-pods.yaml delete mode 100644 apps/staging/prow/pre/obc.yaml delete mode 100644 apps/staging/prow/pre/rbac-test-pods-k8s-pod-full.yaml delete mode 100644 apps/staging/prow/release.yaml delete mode 100644 apps/staging/prow/release/kustomization.yaml delete mode 100644 apps/staging/prow/release/release.yaml rename clusters/{staging => prod}/README.md (86%) delete mode 100644 clusters/staging/apps.yaml delete mode 100644 clusters/staging/flux-system/gotk-components.yaml delete mode 100644 clusters/staging/flux-system/gotk-sync.yaml delete mode 100644 clusters/staging/flux-system/kustomization.yaml delete mode 100644 clusters/staging/flux-system/notification.yaml delete mode 100644 clusters/staging/infrastructure.yaml delete mode 100644 infrastructure/staging/OWNERS delete mode 100644 infrastructure/staging/kustomization.yaml delete mode 100644 infrastructure/staging/monitoring/kustomization.yaml delete mode 100644 infrastructure/staging/monitoring/operator.yaml delete mode 100644 infrastructure/staging/monitoring/stack.yaml delete mode 100644 infrastructure/staging/nginx/kustomization.yaml delete mode 100644 infrastructure/staging/nginx/namespace.yaml delete mode 100644 infrastructure/staging/nginx/release.yaml delete mode 100644 infrastructure/staging/rook-ceph/kustomization.yaml delete mode 100644 infrastructure/staging/rook-ceph/namespace.yaml delete mode 100644 infrastructure/staging/rook-ceph/release-cluster.yaml delete mode 100644 infrastructure/staging/rook-ceph/release-operator.yaml diff --git a/apps/staging/OWNERS b/apps/staging/OWNERS deleted file mode 100644 index 012317d88..000000000 --- a/apps/staging/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -labels: - - env/staging diff --git a/apps/staging/ats/config-override/cache.config b/apps/staging/ats/config-override/cache.config deleted file mode 100644 index 5ffdc9c99..000000000 --- a/apps/staging/ats/config-override/cache.config +++ /dev/null @@ -1,4 +0,0 @@ -dest_domain=greenhouse port=80 scheme=http ttl-in-cache=7d -dest_domain=greenhouse.apps port=80 scheme=http ttl-in-cache=7d -dest_domain=greenhouse.apps.svc port=80 scheme=http ttl-in-cache=7d -dest_domain=greenhouse.apps.svc.cluster.local port=80 scheme=http ttl-in-cache=7d diff --git a/apps/staging/ats/config-override/records.config b/apps/staging/ats/config-override/records.config deleted file mode 100644 index 502c993a1..000000000 --- a/apps/staging/ats/config-override/records.config +++ /dev/null @@ -1,73 +0,0 @@ - -CONFIG proxy.config.exec_thread.autoconfig INT 1 -CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 1.0 -CONFIG proxy.config.exec_thread.limit INT 2 -CONFIG proxy.config.accept_threads INT 1 -CONFIG proxy.config.task_threads INT 2 -CONFIG proxy.config.cache.threads_per_disk INT 8 -CONFIG proxy.config.exec_thread.affinity INT 1 -CONFIG proxy.config.http.server_ports STRING 8080 8080:ipv6 -CONFIG proxy.config.http.insert_request_via_str INT 1 -CONFIG proxy.config.http.insert_response_via_str INT 0 -CONFIG proxy.config.http.parent_proxy.retry_time INT 300 -CONFIG proxy.config.http.parent_proxy.connect_attempts_timeout INT 30 -CONFIG proxy.config.http.forward.proxy_auth_to_parent INT 0 -CONFIG proxy.config.http.uncacheable_requests_bypass_parent INT 1 -CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 120 -CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 120 -CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 30 -CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 30 -CONFIG proxy.config.http.transaction_active_timeout_in INT 900 -CONFIG proxy.config.http.transaction_active_timeout_out INT 0 -CONFIG proxy.config.http.accept_no_activity_timeout INT 120 -CONFIG proxy.config.net.default_inactivity_timeout INT 86400 -CONFIG proxy.config.http.connect_attempts_max_retries INT 3 -CONFIG proxy.config.http.connect_attempts_max_retries_dead_server INT 1 -CONFIG proxy.config.http.connect_attempts_rr_retries INT 3 -CONFIG proxy.config.http.connect_attempts_timeout INT 30 -CONFIG proxy.config.http.post_connect_attempts_timeout INT 1800 -CONFIG proxy.config.http.down_server.cache_time INT 60 -CONFIG proxy.config.http.negative_caching_enabled INT 0 -CONFIG proxy.config.http.negative_caching_lifetime INT 1800 -CONFIG proxy.config.http.insert_client_ip INT 1 -CONFIG proxy.config.http.insert_squid_x_forwarded_for INT 1 -CONFIG proxy.config.http.push_method_enabled INT 0 -CONFIG proxy.config.http.cache.http INT 1 -CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1 -CONFIG proxy.config.http.normalize_ae INT 1 -CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 1 -CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1 -CONFIG proxy.config.http.cache.when_to_revalidate INT 0 -CONFIG proxy.config.http.cache.required_headers INT 2 -CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 3600 -CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 86400 -CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.10 -CONFIG proxy.config.net.connections_throttle INT 30000 -CONFIG proxy.config.net.max_connections_in INT 30000 -CONFIG proxy.config.net.max_requests_in INT 0 -# ram_cache 1 GB -CONFIG proxy.config.cache.ram_cache.size INT 1073741824 -# alg using CLFUS (Clocked Least Frequently Used by Size) -CONFIG proxy.config.cache.ram_cache.algorithm INT 0 -CONFIG proxy.config.cache.ram_cache_cutoff INT 4194304 -CONFIG proxy.config.cache.limits.http.max_alts INT 5 -CONFIG proxy.config.cache.max_doc_size INT 0 -CONFIG proxy.config.cache.min_average_object_size INT 8000 -CONFIG proxy.config.log.logging_enabled INT 3 -CONFIG proxy.config.log.max_space_mb_for_logs INT 25000 -CONFIG proxy.config.log.max_space_mb_headroom INT 1000 -CONFIG proxy.config.log.rolling_enabled INT 1 -CONFIG proxy.config.log.rolling_interval_sec INT 86400 -CONFIG proxy.config.log.rolling_size_mb INT 10 -CONFIG proxy.config.log.auto_delete_rolled_files INT 1 -CONFIG proxy.config.log.periodic_tasks_interval INT 5 -CONFIG proxy.config.url_remap.remap_required INT 1 -CONFIG proxy.config.url_remap.pristine_host_hdr INT 0 -CONFIG proxy.config.reverse_proxy.enabled INT 1 -CONFIG proxy.config.ssl.client.verify.server.policy STRING DISABLED -CONFIG proxy.config.ssl.client.verify.server.properties STRING ALL -CONFIG proxy.config.ssl.client.CA.cert.filename STRING NULL -CONFIG proxy.config.diags.debug.enabled INT 0 -CONFIG proxy.config.diags.debug.tags STRING http|dns -CONFIG proxy.config.dump_mem_info_frequency INT 0 -CONFIG proxy.config.http.slow.log.threshold INT 0 diff --git a/apps/staging/ats/config-override/remap.config b/apps/staging/ats/config-override/remap.config deleted file mode 100644 index 043d0f39a..000000000 --- a/apps/staging/ats/config-override/remap.config +++ /dev/null @@ -1,7 +0,0 @@ -# ref: https://stackoverflow.com/questions/48116351/consistent-dns-between-kubernetes-and-docker-compose -map /brc http://greenhouse.apps.svc.cluster.local -map /golang https://mirrors.aliyun.com/golang -map /bazel_java_tools https://mirror.bazel.build/bazel_java_tools -map /gomod https://cache.hawkingrei.com/gomod -map /bazelbuild https://github.com/bazelbuild -# other... diff --git a/apps/staging/ats/config-override/storage.config b/apps/staging/ats/config-override/storage.config deleted file mode 100644 index 2aad98e73..000000000 --- a/apps/staging/ats/config-override/storage.config +++ /dev/null @@ -1 +0,0 @@ -/data/ats 100G diff --git a/apps/staging/ats/kustomization.yaml b/apps/staging/ats/kustomization.yaml deleted file mode 100644 index 7e7a92417..000000000 --- a/apps/staging/ats/kustomization.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - pvc.yaml - - release.yaml -configMapGenerator: - - name: ats-config-override - namespace: apps - options: - disableNameSuffixHash: true - files: - - config-override/cache.config - - config-override/records.config - - config-override/remap.config - - config-override/storage.config \ No newline at end of file diff --git a/apps/staging/ats/pvc.yaml b/apps/staging/ats/pvc.yaml deleted file mode 100644 index 703934419..000000000 --- a/apps/staging/ats/pvc.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: ats-storage - namespace: apps -spec: - resources: - requests: - storage: 110Gi - storageClassName: ceph-block - volumeMode: Filesystem - accessModes: - - ReadWriteOnce \ No newline at end of file diff --git a/apps/staging/ats/release.yaml b/apps/staging/ats/release.yaml deleted file mode 100644 index ac1ea50ad..000000000 --- a/apps/staging/ats/release.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: ats - namespace: flux-system -spec: - releaseName: ats - targetNamespace: apps - dependsOn: - - name: greenhouse - chart: - spec: - chart: ./charts/ats - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - interval: 5m - timeout: 5m - install: - remediation: - retries: 3 - rollback: - cleanupOnFail: true - recreate: true - upgrade: - cleanupOnFail: true - remediation: - retries: 3 - test: - enable: true - ignoreFailures: false - values: - replicaCount: 3 - resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: "1" - memory: 2Gi - ingress: - enabled: true - className: "nginx" - annotations: - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md - nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri" - nginx.ingress.kubernetes.io/upstream-hash-by-subset: "true" - nginx.ingress.kubernetes.io/upstream-hash-by-subset-size: "3" - nginx.ingress.kubernetes.io/use-regex: "true" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/proxy-body-size: "0" - nginx.ingress.kubernetes.io/proxy-read-timeout: "600" - nginx.ingress.kubernetes.io/proxy-send-timeout: "600" - hosts: - - paths: - - path: /ats(/|$)(.*) - pathType: Prefix - volumes: - - name: data - emptyDir: {} - - name: config-override - configMap: - name: ats-config-override - volumeMounts: - # cache data storage path - - name: data - mountPath: /data/ats - # config overrides - - name: config-override - subPath: cache.config - mountPath: /etc/trafficserver/cache.config - - name: config-override - subPath: records.config - mountPath: /etc/trafficserver/records.config - - name: config-override - subPath: remap.config - mountPath: /etc/trafficserver/remap.config - - name: config-override - subPath: storage.config - mountPath: /etc/trafficserver/storage.config diff --git a/apps/staging/goproxy/deployment.yaml b/apps/staging/goproxy/deployment.yaml deleted file mode 100644 index 6db33cae9..000000000 --- a/apps/staging/goproxy/deployment.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: goproxy -spec: - selector: - matchLabels: - app: goproxy - replicas: 2 - template: - metadata: - labels: - app: goproxy - spec: - affinity: - # for ceph-block RBD mounting. - podAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app: goproxy - topologyKey: kubernetes.io/hostname - containers: - - name: goproxy - image: goproxy/goproxy:latest - imagePullPolicy: IfNotPresent - args: - - "-listen=0.0.0.0:8080" - - "-cacheDir=/data" - - "-proxy=https://proxy.golang.org" - resources: - limits: - memory: "8Gi" - cpu: "4" - ports: - - containerPort: 8080 - name: http - volumeMounts: - - name: data - mountPath: /data - volumes: - - name: data - persistentVolumeClaim: - claimName: goproxy diff --git a/apps/staging/goproxy/kustomization.yaml b/apps/staging/goproxy/kustomization.yaml deleted file mode 100644 index 189b5be16..000000000 --- a/apps/staging/goproxy/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: apps -resources: -- pvc.yaml -- deployment.yaml -- svc.yaml diff --git a/apps/staging/goproxy/pvc.yaml b/apps/staging/goproxy/pvc.yaml deleted file mode 100644 index a66643560..000000000 --- a/apps/staging/goproxy/pvc.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: goproxy -spec: - resources: - requests: - storage: 5Gi - accessModes: - - ReadWriteOnce - storageClassName: ceph-block diff --git a/apps/staging/goproxy/svc.yaml b/apps/staging/goproxy/svc.yaml deleted file mode 100644 index de6c511ac..000000000 --- a/apps/staging/goproxy/svc.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: goproxy -spec: - selector: - app: goproxy - ports: - - port: 80 - targetPort: http - diff --git a/apps/staging/greenhouse/kustomization.yaml b/apps/staging/greenhouse/kustomization.yaml deleted file mode 100644 index 476391701..000000000 --- a/apps/staging/greenhouse/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - release.yaml \ No newline at end of file diff --git a/apps/staging/greenhouse/release.yaml b/apps/staging/greenhouse/release.yaml deleted file mode 100644 index 211f58abf..000000000 --- a/apps/staging/greenhouse/release.yaml +++ /dev/null @@ -1,48 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: greenhouse - namespace: flux-system -spec: - releaseName: greenhouse - targetNamespace: apps - chart: - spec: - chart: ./charts/greenhouse - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - interval: 5m - timeout: 5m - install: - remediation: - retries: 3 - rollback: - cleanupOnFail: true - recreate: true - upgrade: - cleanupOnFail: true - remediation: - retries: 3 - test: - enable: true - ignoreFailures: false - values: - replicaCount: 1 - resources: - requests: - cpu: 100m - memory: 128Mi - limits: - cpu: "1" - memory: 1Gi - persistence: - enabled: true - storageClass: ceph-block - accessMode: ReadWriteOnce - size: 50Gi - serviceMonitor: - enabled: true - metricsService: - enabled: true diff --git a/apps/staging/jenkins/kustomization.yaml b/apps/staging/jenkins/kustomization.yaml deleted file mode 100644 index 8c8fd5b22..000000000 --- a/apps/staging/jenkins/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - pre.yaml - - release.yaml - - post.yaml diff --git a/apps/staging/jenkins/post.yaml b/apps/staging/jenkins/post.yaml deleted file mode 100644 index 565e57843..000000000 --- a/apps/staging/jenkins/post.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: jenkins-post - namespace: flux-system -spec: - dependsOn: - - name: jenkins-release - namespace: apps - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/jenkins/post - prune: true - force: true diff --git a/apps/staging/jenkins/post/_base/cronjob-go-caches.yaml b/apps/staging/jenkins/post/_base/cronjob-go-caches.yaml deleted file mode 100644 index 5eab0402c..000000000 --- a/apps/staging/jenkins/post/_base/cronjob-go-caches.yaml +++ /dev/null @@ -1,61 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: clean-go-caches -spec: - schedule: "@daily" - jobTemplate: - spec: - template: - spec: - restartPolicy: Never - containers: - - name: go - image: "hub.pingcap.net/jenkins/centos7_golang-1.19:latest" - tty: true - command: - - /bin/bash - - -exec - args: - - | - # clean gomod cache when usage > 80% - gopath_used_percent=$(df -h | grep "$(go env GOPATH)" | awk '{print $5}' | grep -oE "[0-9]+") - echo "mount of $(go env GOPATH) usage is ${gopath_used_percent}%" - if (( gopath_used_percent > 80 )); then - echo "go mod cache is too large, I am cleaning it." - go clean -modcache -x - echo "cleaned." - fi - - # clean cache when usage > 80% - gocache_used_percent=$(df -h | grep "$(go env GOCACHE)" | awk '{print $5}' | grep -oE "[0-9]+") - echo "mount of $(go env GOCACHE) usage is ${gocache_used_percent}%" - if (( gocache_used_percent > 80 )); then - echo "go build cache is too large, I am cleaning it." - go clean -cache -x - echo "cleaned." - fi - env: - - name: GOPATH - value: /share/.go - - name: GOCACHE - value: /share/.cache/go-build - volumeMounts: - - name: gocache - mountPath: /share/.cache/go-build - - name: gopathcache - mountPath: /share/.go - resources: - requests: - memory: "128Mi" - cpu: "100m" - limits: - memory: "512Mi" - cpu: "500m" - volumes: - - name: gopathcache - persistentVolumeClaim: - claimName: gopathcache - - name: gocache - persistentVolumeClaim: - claimName: gocache diff --git a/apps/staging/jenkins/post/_base/kustomization.yaml b/apps/staging/jenkins/post/_base/kustomization.yaml deleted file mode 100644 index 7e90fd0df..000000000 --- a/apps/staging/jenkins/post/_base/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - rbac.yaml - - pvc.yaml - - cronjob-go-caches.yaml diff --git a/apps/staging/jenkins/post/_base/pvc.yaml b/apps/staging/jenkins/post/_base/pvc.yaml deleted file mode 100644 index f993a9c7f..000000000 --- a/apps/staging/jenkins/post/_base/pvc.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: gocache -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: 200Gi - storageClassName: nfs - volumeMode: Filesystem ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: gopathcache -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: 50Gi - storageClassName: nfs - volumeMode: Filesystem diff --git a/apps/staging/jenkins/post/_base/rbac.yaml b/apps/staging/jenkins/post/_base/rbac.yaml deleted file mode 100644 index ba05b846d..000000000 --- a/apps/staging/jenkins/post/_base/rbac.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: jenkins-schedule-agents -rules: - - apiGroups: - - "" - resources: - - pods - - pods/exec - - pods/log - - persistentvolumeclaims - - events - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - pods - - pods/exec - - persistentvolumeclaims - verbs: - - create - - delete - - deletecollection - - patch - - update ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: jenkins-schedule-agents -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: jenkins-schedule-agents -subjects: - - kind: ServiceAccount - name: jenkins - namespace: apps diff --git a/apps/staging/jenkins/post/kustomization.yaml b/apps/staging/jenkins/post/kustomization.yaml deleted file mode 100644 index cf8edb8f5..000000000 --- a/apps/staging/jenkins/post/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - tidb diff --git a/apps/staging/jenkins/post/tidb/files/bazel b/apps/staging/jenkins/post/tidb/files/bazel deleted file mode 100644 index 59e445415..000000000 --- a/apps/staging/jenkins/post/tidb/files/bazel +++ /dev/null @@ -1 +0,0 @@ -build --remote_cache=http://ingress-nginx-controller.nginx.svc/ats/brc/tidb --remote_timeout="10s" diff --git a/apps/staging/jenkins/post/tidb/files/bazel-prepare-in-container.sh b/apps/staging/jenkins/post/tidb/files/bazel-prepare-in-container.sh deleted file mode 100644 index 723bf15fc..000000000 --- a/apps/staging/jenkins/post/tidb/files/bazel-prepare-in-container.sh +++ /dev/null @@ -1,55 +0,0 @@ -#! /bin/sh - -# Requirements: -# 1. need a PV or PVC mounted at: /bazel-out-lower -# 2. need a emptyDir volume mounted at: /bazel-out-overlay -# 3. need a emptyDir volume mounted at: /home/jenkins/.tidb/tmp -# 4.1 (optional) mount downward api volume to /etc/containerinfo: -# volumes: -# - name: containerinfo -# downwardAPI: -# items: -# - path: cpu_limit -# resourceFieldRef: -# containerName: ... -# resource: limits.cpu -# - path: cpu_request -# resourceFieldRef: -# containerName: ... -# resource: requests.cpu -# - path: mem_limit -# resourceFieldRef: -# containerName: ... -# resource: limits.memory -# - path: mem_request -# resourceFieldRef: -# containerName: ... -# resource: requests.memory -# 4.2 (optional) need a PV or PVC mounted at /share/.cache/bazel-repository-cache with `ReadWriteMany`` mode. - -if which bazel; then - echo "has bazel tool." -else - echo "no bazel bin found, skip." - exit 0 -fi - -mkdir /bazel-out-overlay/upper /bazel-out-overlay/work; -sudo mount -t overlay overlay /home/jenkins/.tidb/tmp -o lowerdir=/bazel-out-lower,upperdir=/bazel-out-overlay/upper,workdir=/bazel-out-overlay/work; - -# generate file $HOME/.bazelrc -# ref: https://docs.bazel.build/versions/5.3.1/user-manual.html -:> ~/.bazelrc - -# fix bazel OOM in container. -if [ -d /etc/containerinfo ]; then - cpu_limit=$(cat /etc/containerinfo/cpu_limit) - mem_limit=$(cat /etc/containerinfo/mem_limit) - mem_limit=$(((mem_limit / 1048576) * 9 / 10 )) - echo "build --local_ram_resources=${mem_limit} --local_cpu_resources=${cpu_limit} --jobs=${cpu_limit}" >> ~/.bazelrc -fi - -# set repository cache: https://docs.bazel.build/versions/5.3.1/guide.html#the-repository-cache -if [ -d /share/.cache/bazel-repository-cache ]; then - echo "build --repository_cache=/share/.cache/bazel-repository-cache" >> ~/.bazelrc -fi diff --git a/apps/staging/jenkins/post/tidb/kustomization.yaml b/apps/staging/jenkins/post/tidb/kustomization.yaml deleted file mode 100644 index 7021ff76a..000000000 --- a/apps/staging/jenkins/post/tidb/kustomization.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: jenkins-tidb -resources: - - namespace.yaml - - ../_base - - pvc.yaml - - pvc-job.yaml -secretGenerator: - - name: bazel - options: - disableNameSuffixHash: true - files: - - "files/bazel" - - "files/bazel-prepare-in-container.sh" \ No newline at end of file diff --git a/apps/staging/jenkins/post/tidb/namespace.yaml b/apps/staging/jenkins/post/tidb/namespace.yaml deleted file mode 100644 index f46e89611..000000000 --- a/apps/staging/jenkins/post/tidb/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: jenkins-tidb diff --git a/apps/staging/jenkins/post/tidb/pvc-job.yaml b/apps/staging/jenkins/post/tidb/pvc-job.yaml deleted file mode 100644 index 03a1c0006..000000000 --- a/apps/staging/jenkins/post/tidb/pvc-job.yaml +++ /dev/null @@ -1,99 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: update-bazel-local-data-go1.19.2 - namespace: jenkins-tidb -spec: - template: - spec: - restartPolicy: "Never" - securityContext: - fsGroup: 1000 - containers: - - name: golang - image: "hub.pingcap.net/wangweizhen/tidb_image:go11920230207" - command: - - /bin/bash - - -exec - args: - - | - mkdir -p /bazel-data/tidb/go.new - cp -r /home/jenkins/.tidb/tmp/* /bazel-data/tidb/go.new - rm -rf /bazel-data/tidb/go.new/install/* # need delete. - - if [ -d /bazel-data/tidb/go$(GO_VER) ]; then - mv /bazel-data/tidb/go$(GO_VER) /bazel-data/tidb/go.old - mv /bazel-data/tidb/go.new /bazel-data/tidb/go$(GO_VER) - sudo rm -rf /bazel-data/tidb/go.old - else - mv /bazel-data/tidb/go.new /bazel-data/tidb/go$(GO_VER) - fi - - echo "done." - env: - - name: GO_VER - value: "1.19.2" - resources: - requests: - memory: "100Mi" - cpu: "100m" - limits: - memory: "1Gi" - cpu: "1" - volumeMounts: - - mountPath: /bazel-data - name: "bazel-out-data" - volumes: - - name: bazel-out-data - persistentVolumeClaim: - claimName: bazel-out-data ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: update-bazel-local-data-go1.19 - namespace: jenkins-tidb -spec: - template: - spec: - restartPolicy: "Never" - securityContext: - fsGroup: 1000 - containers: - - name: golang - image: "hub.pingcap.net/wangweizhen/tidb_image:go11920230207" - command: - - /bin/bash - - -exec - args: - - | - mkdir -p /bazel-data/tidb/go.new - cp -r /home/jenkins/.tidb/tmp/* /bazel-data/tidb/go.new - rm -rf /bazel-data/tidb/go.new/install/* # need delete. - - if [ -d /bazel-data/tidb/go$(GO_VER) ]; then - mv /bazel-data/tidb/go$(GO_VER) /bazel-data/tidb/go.old - mv /bazel-data/tidb/go.new /bazel-data/tidb/go$(GO_VER) - sudo rm -rf /bazel-data/tidb/go.old - else - mv /bazel-data/tidb/go.new /bazel-data/tidb/go$(GO_VER) - fi - - echo "done." - env: - - name: GO_VER - value: "1.19" - resources: - requests: - memory: "100Mi" - cpu: "100m" - limits: - memory: "1Gi" - cpu: "1" - volumeMounts: - - mountPath: /bazel-data - name: "bazel-out-data" - volumes: - - name: bazel-out-data - persistentVolumeClaim: - claimName: bazel-out-data diff --git a/apps/staging/jenkins/post/tidb/pvc.yaml b/apps/staging/jenkins/post/tidb/pvc.yaml deleted file mode 100644 index 46694dfe1..000000000 --- a/apps/staging/jenkins/post/tidb/pvc.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: bazel-out-data -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: 100Gi - storageClassName: nfs - volumeMode: Filesystem ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: bazel-repository-cache -spec: - accessModes: - - ReadWriteMany - resources: - requests: - storage: 10Gi - storageClassName: nfs - volumeMode: Filesystem diff --git a/apps/staging/jenkins/pre.yaml b/apps/staging/jenkins/pre.yaml deleted file mode 100644 index 378b7d06c..000000000 --- a/apps/staging/jenkins/pre.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: jenkins-pre - namespace: flux-system -spec: - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/jenkins/pre - prune: true diff --git a/apps/staging/jenkins/pre/kustomization.yaml b/apps/staging/jenkins/pre/kustomization.yaml deleted file mode 100644 index 41f468572..000000000 --- a/apps/staging/jenkins/pre/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - obc.yaml - - secret.yaml \ No newline at end of file diff --git a/apps/staging/jenkins/pre/obc.yaml b/apps/staging/jenkins/pre/obc.yaml deleted file mode 100644 index ac106a27e..000000000 --- a/apps/staging/jenkins/pre/obc.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: jenkins-pre-obc - namespace: flux-system -spec: - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/jenkins/pre/obc - prune: true diff --git a/apps/staging/jenkins/pre/obc/cronjobs.yaml b/apps/staging/jenkins/pre/obc/cronjobs.yaml deleted file mode 100644 index c87761fb7..000000000 --- a/apps/staging/jenkins/pre/obc/cronjobs.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: shrink-ci-pipeline-cache - namespace: apps -spec: - schedule: "@hourly" - jobTemplate: - spec: - template: - spec: - restartPolicy: Never - containers: - - name: deno - image: "denoland/deno:1.45.5" - args: - - run - - --allow-all - - https://github.com/PingCAP-QE/ci/raw/main/scripts/plugins/s3-cache.ts - - --op=shrink - - --keep-size-g=40 - envFrom: - - secretRef: - name: ci-pipeline-cache - - configMapRef: - name: ci-pipeline-cache - resources: - requests: - memory: "128Mi" - cpu: "100m" - limits: - memory: "512Mi" - cpu: "500m" diff --git a/apps/staging/jenkins/pre/obc/obc.yaml b/apps/staging/jenkins/pre/obc/obc.yaml deleted file mode 100644 index c2d1eab29..000000000 --- a/apps/staging/jenkins/pre/obc/obc.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: objectbucket.io/v1alpha1 -kind: ObjectBucketClaim -metadata: - name: ci-pipeline-cache - namespace: apps -spec: - additionalConfig: - maxSize: 50G - bucketName: ci-pipeline-cache - storageClassName: ceph-bucket diff --git a/apps/staging/jenkins/pre/secret.yaml b/apps/staging/jenkins/pre/secret.yaml deleted file mode 100644 index 50193a508..000000000 --- a/apps/staging/jenkins/pre/secret.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: jenkins-pre-secret - namespace: apps -spec: - dependsOn: - - name: jenkins-pre-obc - namespace: flux-system - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/jenkins/pre/secret - prune: true - postBuild: - substituteFrom: - - kind: Secret - name: ci-pipeline-cache - - kind: ConfigMap - name: ci-pipeline-cache diff --git a/apps/staging/jenkins/pre/secret/cache-secret.yaml b/apps/staging/jenkins/pre/secret/cache-secret.yaml deleted file mode 100644 index 6acbd97a4..000000000 --- a/apps/staging/jenkins/pre/secret/cache-secret.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: jenkins-cache - namespace: apps -type: Opaque -stringData: - region: "${BUCKET_REGION}" - bucket: "${BUCKET_NAME}" - endpoint: "http://${BUCKET_HOST}:${BUCKET_PORT}" - access-key: ${AWS_ACCESS_KEY_ID} - access-secret: ${AWS_SECRET_ACCESS_KEY} diff --git a/apps/staging/jenkins/release.yaml b/apps/staging/jenkins/release.yaml deleted file mode 100644 index 5e5c6604d..000000000 --- a/apps/staging/jenkins/release.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: jenkins-release - namespace: apps -spec: - dependsOn: - - name: jenkins-pre - namespace: flux-system - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/jenkins/release - prune: true diff --git a/apps/staging/jenkins/release/README.md b/apps/staging/jenkins/release/README.md deleted file mode 100644 index c2c2f64b9..000000000 --- a/apps/staging/jenkins/release/README.md +++ /dev/null @@ -1,17 +0,0 @@ -Guide for jenkins helm chart value configuration -=== - -## Pre requests - -- Setup PVC `jenkins` in namespace `jenkins` - - size should bigger than 8Gi. - - if replicas > 1, the PVC access mode should be `ReadWriteMany` to support jenkins server HA mode. - -## values guide and schema - -- [jenkins chart values summary doc](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md) -- [jenkins chart values default template](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/values.yaml) - -## Checklist - -1. values between all `values-*.yaml` should not be conflict. diff --git a/apps/staging/jenkins/release/kustomization.yaml b/apps/staging/jenkins/release/kustomization.yaml deleted file mode 100644 index 90dc105e9..000000000 --- a/apps/staging/jenkins/release/kustomization.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - namespace-agent.yaml - - release.yaml -configMapGenerator: - - name: jenkins-values - namespace: flux-system - files: - - values1.yaml=values-controller.yaml - - values2.yaml=values-persistence.yaml - - values3.yaml=values-agent.yaml - - values4.yaml=values-controller-plugins.yaml - - values5.yaml=values-JCasC.yaml - - values6.yaml=values-controller-ha.yaml - - values7.yaml=values-service-account.yaml -configurations: - - kustomize-config.yaml diff --git a/apps/staging/jenkins/release/kustomize-config.yaml b/apps/staging/jenkins/release/kustomize-config.yaml deleted file mode 100644 index cb7259e89..000000000 --- a/apps/staging/jenkins/release/kustomize-config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Kustomize config for enabling HelmRelease values from -# ConfigMaps and Secrets generated by Kustomize -nameReference: - - kind: ConfigMap - version: v1 - fieldSpecs: - - path: spec/valuesFrom/name - kind: HelmRelease diff --git a/apps/staging/jenkins/release/namespace-agent.yaml b/apps/staging/jenkins/release/namespace-agent.yaml deleted file mode 100644 index 8350da95d..000000000 --- a/apps/staging/jenkins/release/namespace-agent.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: jenkins-ci-default diff --git a/apps/staging/jenkins/release/release.yaml b/apps/staging/jenkins/release/release.yaml deleted file mode 100644 index 456356cb4..000000000 --- a/apps/staging/jenkins/release/release.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: jenkins - namespace: flux-system -spec: - releaseName: jenkins - targetNamespace: apps - chart: - spec: - chart: ./charts/jenkins - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - interval: 1h0m0s - timeout: 15m - install: - remediation: - retries: 3 - upgrade: - cleanupOnFail: true - crds: CreateReplace - test: - enable: true - ignoreFailures: false - valuesFrom: - - { kind: ConfigMap, name: jenkins-values, valuesKey: values1.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values2.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values3.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values4.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values5.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values6.yaml } - - { kind: ConfigMap, name: jenkins-values, valuesKey: values7.yaml } diff --git a/apps/staging/jenkins/release/values-JCasC.yaml b/apps/staging/jenkins/release/values-JCasC.yaml deleted file mode 100644 index 6bd4aa1eb..000000000 --- a/apps/staging/jenkins/release/values-JCasC.yaml +++ /dev/null @@ -1,257 +0,0 @@ -controller: - # 'name' is a name of an existing secret in same namespace as jenkins, - # 'keyName' is the name of one of the keys inside current secret. - # the 'name' and 'keyName' are concatenated with a '-' in between, so for example: - # an existing secret "secret-credentials" and a key inside it named "github-password" should be used in Jcasc as ${secret-credentials-github-password} - # 'name' and 'keyName' must be lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-', - # and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc') - additionalExistingSecrets: - # for git clone for private repo. - - { name: github, keyName: git-private-key } - - { name: github, keyName: git-username } - - { name: github, keyName: bot-token } - # for codecov.io uploading - - { name: codecov-token, keyName: tidb } - - { name: codecov-token, keyName: tikv-migration } - - { name: codecov-token, keyName: tiflow } - # for coveralls uploading - - { name: coveralls-token, keyName: tiflow } - # for ci cache, no need create manually. - - { name: jenkins-cache, keyName: region } - - { name: jenkins-cache, keyName: bucket } - - { name: jenkins-cache, keyName: endpoint } - - { name: jenkins-cache, keyName: access-key } - - { name: jenkins-cache, keyName: access-secret } - # for build failure knowledge base, secret created by mongodb helm release, no need create manually. - - { name: mongodb, keyName: mongodb-root-password } - - additionalSecrets: [] - # - name: nameOfSecret - # value: secretText - - JCasC: - defaultConfig: true - # Ignored if authorizationStrategy is defined in controller.JCasC.configScripts - authorizationStrategy: |- - loggedInUsersCanDoAnything: - allowAnonymousRead: true # allow users to read builds logs without logging in. - - # for security. - security: - globalJobDslSecurityConfiguration: - useScriptSecurity: false - - securityRealm: |- - local: - allowsSignup: false - enableCaptcha: false - users: - - id: "${chart-admin-username}" - name: "Jenkins Admin" - password: "${chart-admin-password}" - - # REF Doc: https://github.com/PingCAP-QE/ee-ops/blob/main/charts/jenkins/README.md - # - # Notable: if you want delete some key, first please delete the conetnt but keep the key. - # after deployed, then create other commit and push to delete the key. - configScripts: - # welcome-message: | - # jenkins: - # systemMessage: Welcome to our CI\CD server. This Jenkins is configured and managed 'as code'. - # Ignored if securityRealm is defined in controller.JCasC.configScripts and - # ignored if controller.enableXmlConfig=true as controller.securityRealm takes precedence - # securityRealm: | - # jenkins: - # securityRealm: - # googleOAuth2: - # # will read from key `client-id` from secret `google-oauth2` - # clientId: "${google-oauth2-client-id}" - # # will read from key `client-secret` from secret `google-oauth2` - # clientSecret: "${google-oauth2-client-secret}" - - # for credentials, REF Doc: https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demos/credentials - credentials: | - credentials: - system: - domainCredentials: - - domain: - name: github.com - description: github ssh and open api - credentials: - - basicSSHUserPrivateKey: - id: github-sre-bot-ssh # TODO: change the id. - privateKeySource: - directEntry: - privateKey: ${github-git-private-key} - scope: GLOBAL - username: ${github-git-username} - usernameSecret: true - - string: - id: github-bot-token - description: github private token to call api. - scope: GLOBAL - secret: ${github-bot-token} - - domain: - name: codecov.io - credentials: - - string: - id: codecov-token-tidb - description: codecov token for tidb - scope: GLOBAL - secret: ${codecov-token-tidb} - - string: - id: codecov-token-tikv-migration - description: codecov token for tikv/migration - scope: GLOBAL - secret: ${codecov-token-tikv-migration} - - string: - id: codecov-token-tiflow - description: codecov token for tiflow - scope: GLOBAL - secret: ${codecov-token-tiflow} - - domain: - name: coveralls.io - credentials: - - string: - id: coveralls-token-tiflow - description: coveralls token for tiflow - scope: GLOBAL - secret: ${coveralls-token-tiflow} - # for jobs. - jobs-dsl: | - jobs: - - script: | - job('seed') { - description(''' - Jenkins jobs As Code - No need to configure job on Jenkins Web UI anymore. - ''') - scm { - git { - remote { - github('PingCAP-QE/ci', 'https') - } - branch('main') - } - } - triggers { - githubPush() - } - steps { - jobDsl { - targets('staging/jobs/**/*.groovy') - failOnMissingPlugin(false) - ignoreMissingFiles(true) - ignoreExisting(false) - removedJobAction('DELETE') - removedConfigFilesAction('DELETE') - removedViewAction('DELETE') - lookupStrategy('SEED_JOB') - sandbox(false) - } - } - } - - queue('seed') - github-pull-request-builder-trigger: | - unclassified: - ghprbTrigger: - autoCloseFailedPullRequests: false - cron: "H/5 * * * *" - extensions: - - ghprbSimpleStatus: - addTestResults: false - completedStatus: - - message: "--none--" - result: SUCCESS - - message: "--none--" - result: FAILURE - - message: "--none--" - result: ERROR - showMatrixStatus: false - startedStatus: "--none--" - triggeredStatus: "--none--" - githubAuth: - - credentialsId: github-bot-token - description: "ti-chi-bot" - secret: "" - serverAPIUrl: "https://api.github.com" # replace with github proxy. - manageWebhooks: true - okToTestPhrase: ".*ok\\W+to\\W+test.*" - requestForTestingPhrase: "Can one of the admins verify this patch?" - retestPhrase: ".*test\\W+this\\W+please.*" - skipBuildPhrase: ".*\\[skip\\W+ci\\].*" - useComments: true - useDetailedComments: true - whitelistPhrase: ".*add\\W+to\\W+whitelist.*" - github-plugin-config: | - unclassified: - gitHubConfiguration: - apiRateLimitChecker: ThrottleOnOver - gitHubPluginConfig: - hookUrl: "https://prow-ee.pingcap.net/jenkins/github-webhook/" - pipeline-cache: | - unclassified: - pipeline-cache: - region: ${jenkins-cache-region} - bucket: ${jenkins-cache-bucket} - endpoint: ${jenkins-cache-endpoint} - username: ${jenkins-cache-access-key} - password: ${jenkins-cache-access-secret} - threshold: 40000 # limit to 40GiB - # for global env variables - env-vars: | - jenkins: - globalNodeProperties: - - envVars: - env: - - key: "GOPROXY" - value: "http://goproxy.apps.svc,https://proxy.golang.org,direct" - - key: PROW_DECK_URL - value: "http://prow-deck.apps.svc" - build-failure-analyzer: | - unclassified: - buildFailureAnalyzer: - doNotAnalyzeAbortedJob: true - gerritTriggerEnabled: false - globalEnabled: true - graphsEnabled: false - knowledgeBase: - mongoDB: - dbName: jenkins-failure-pattern - enableStatistics: true - host: mongodb.apps.svc - password: "${mongodb-mongodb-root-password}" - port: 27017 - successfulLogging: true - userName: root - maxLogSize: 0 - metricSquashingEnabled: true - noCausesEnabled: true - noCausesMessage: >- - No problems were identified. If you know why this problem occurred, - please add a suitable Cause in https://pingcap.feishu.cn/wiki/wikcno79XYpVsvJeiRsMm38b5eh, add a config it. - nrOfScanThreads: 3 - testResultParsingEnabled: false - testResultCategories: "UT" - fallbackCategoriesAsString: unknown - global-libraries: | - unclassified: - globalLibraries: - libraries: - - name: tipipeline # An identifier you pick for this library, to be used in the @Library annotation. - defaultVersion: main - # If checked, scripts may select a custom version of the library by appending @someversion in the @Library annotation. - allowVersionOverride: true - implicit: false - includeInChangesets: false - retriever: - modernSCM: - libraryPath: libraries/tipipeline - scm: - git: - remote: "https://github.com/PingCAP-QE/ci" - cachingConfiguration: - refreshTimeMinutes: 60 - excludedVersionsStr: 'feature/ fix/ bugfix/' - diff --git a/apps/staging/jenkins/release/values-agent.yaml b/apps/staging/jenkins/release/values-agent.yaml deleted file mode 100644 index 08da653ce..000000000 --- a/apps/staging/jenkins/release/values-agent.yaml +++ /dev/null @@ -1,9 +0,0 @@ -agent: - maxRequestsPerHostStr: "50" # need to restart controller after updated it. - namespace: jenkins-ci-default - podRetention: Never - containerCap: 50 - image: "jenkins/inbound-agent" - tag: "4.11-1" - command: "" - args: "" diff --git a/apps/staging/jenkins/release/values-controller-ha.yaml b/apps/staging/jenkins/release/values-controller-ha.yaml deleted file mode 100644 index f88209057..000000000 --- a/apps/staging/jenkins/release/values-controller-ha.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# please see: https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md -controller: - replicas: 1 - - # HA should on same node. - affinity: - podAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - # Pod flag - - key: app.kubernetes.io/component - operator: In - values: [jenkins-controller] - # Chart name - - key: app.kubernetes.io/name - operator: In - values: [jenkins] - # Release name. should keep same with `.spec.releaseNmae` in file ./release.yaml - - key: app.kubernetes.io/instance - operator: In - values: [jenkins] - topologyKey: kubernetes.io/hostname - - # Service should affinity to client ip - serviceSessionAffinity: ClientIP - serviceSessionAffinityConfig: - clientIP: - timeoutSeconds: 36000 # 10 hours - agentListenerServiceSessionAffinity: ClientIP - agentListenerServiceSessionAffinityConfig: - clientIP: - timeoutSeconds: 36000 # 10 hours diff --git a/apps/staging/jenkins/release/values-controller-plugins.yaml b/apps/staging/jenkins/release/values-controller-plugins.yaml deleted file mode 100644 index f9c79aed4..000000000 --- a/apps/staging/jenkins/release/values-controller-plugins.yaml +++ /dev/null @@ -1,118 +0,0 @@ -# please see: https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md -controller: - initContainerEnv: - - name: JENKINS_UC - value: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates - - name: JENKINS_UC_DOWNLOAD - value: https://mirrors.tuna.tsinghua.edu.cn/jenkins - containerEnv: - - name: JENKINS_UC - value: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates - - name: JENKINS_UC_DOWNLOAD - value: https://mirrors.tuna.tsinghua.edu.cn/jenkins - - # List of plugins to be install during Jenkins controller start - installPlugins: - # Ref: https://github.com/jenkinsci/plugin-installation-manager-tool#plugin-input-format - # but without outer `plugin` key. - - artifactId: kubernetes - source: - # renovate: datasource=jenkins-plugins depName=kubernetes - version: 3845.va_9823979a_744 - - artifactId: kubernetes-client-api - source: - # renovate: datasource=jenkins-plugins depName=kubernetes-client-api - version: 6.10.0-240.v57880ce8b_0b_2 - - artifactId: git - source: - # renovate: datasource=jenkins-plugins depName=git - version: 5.2.1 - - artifactId: configuration-as-code - source: - # renovate: datasource=jenkins-plugins depName=configuration-as-code - version: 1763.vb_fe9c1b_83f7b - - artifactId: prometheus - source: - # renovate: datasource=jenkins-plugins depName=prometheus - version: 784.vea_eca_f6592eb_ - - artifactId: blueocean - source: - # renovate: datasource=jenkins-plugins depName=blueocean - version: 1.27.14 - - artifactId: job-dsl - source: - # renovate: datasource=jenkins-plugins depName=job-dsl - version: 1.88 - - artifactId: build-failure-analyzer - source: - url: https://github.com/PingCAP-QE/build-failure-analyzer-plugin/releases/download/v2.4.1-jobname/build-failure-analyzer.hpi - - artifactId: pipeline-utility-steps - source: - # renovate: datasource=jenkins-plugins depName=pipeline-utility-steps - version: 2.17.0 - - artifactId: http_request - source: - # renovate: datasource=jenkins-plugins depName=http_request - version: 1.19 - - artifactId: workflow-aggregator - source: - # renovate: datasource=jenkins-plugins depName=workflow-aggregator - version: 596.v8c21c963d92d - - artifactId: workflow-cps-global-lib - source: - # renovate: datasource=jenkins-plugins depName=workflow-cps-global-lib - version: 612.v55f2f80781ef - - artifactId: jenkins-pipeline-cache - source: - # renovate: datasource=github-releases depName=j3t/jenkins-pipeline-cache-plugin versioning=semver - url: https://github.com/j3t/jenkins-pipeline-cache-plugin/releases/download/0.2.0/jenkins-pipeline-cache-0.2.0.hpi - - artifactId: ghprb - source: - # renovate: datasource=jenkins-plugins depName=ghprb - version: 1.42.2 - - artifactId: generic-webhook-trigger - source: - # renovate: datasource=jenkins-plugins depName=generic-webhook-trigger - version: 2.2.2 - - artifactId: timestamper - source: - # renovate: datasource=jenkins-plugins depName=timestamper - version: 1.27 - - artifactId: ssh-agent - source: - # renovate: datasource=jenkins-plugins depName=ssh-agent - version: 376.v8933585c69d3 - # for plugin build-failure-analyzer - # Exporting to prometheus - # Ref: https://github.com/jenkinsci/build-failure-analyzer-plugin/blob/master/docs/metrics.md - prometheus: - metricRelabelings: - # add label: category - - sourceLabels: [__name__] - regex: jenkins_bfa_category_(.*) - targetLabel: category - - sourceLabels: [__name__] - regex: jenkins_bfa_job_category:_:.*:_:(.*) - targetLabel: category - - # add label: cause - - sourceLabels: [__name__] - regex: jenkins_bfa_cause_(.*) - targetLabel: cause - - sourceLabels: [__name__] - regex: jenkins_bfa_job_cause:_:.*:_:(.*) - targetLabel: cause - - # add label: jobname - - sourceLabels: [__name__] - regex: jenkins_bfa_job_category:_:(.*):_:.* - targetLabel: jobname - - sourceLabels: [__name__] - regex: jenkins_bfa_job_cause:_:(.*):_:.* - targetLabel: jobname - - # aggerate to uniq metric: jenkins_bfa - - sourceLabels: [__name__] - regex: jenkins_bfa_.*_.* - replacement: jenkins_bfa - targetLabel: __name__ diff --git a/apps/staging/jenkins/release/values-controller.yaml b/apps/staging/jenkins/release/values-controller.yaml deleted file mode 100644 index 8fdbd9967..000000000 --- a/apps/staging/jenkins/release/values-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ -# please see: https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md -controller: - # renovate: datasource=docker depName=jenkins/jenkins versioning=docker - tag: 2.462.2-lts - resources: - requests: - cpu: "500m" - memory: "256Mi" - limits: - cpu: "4" - memory: 8Gi - - # Set min/max heap here if needed with: - javaOpts: "-Xms256m -Xmx8000m" - - # jenkinsOpts: "" - # If you are using the ingress definitions provided by this chart via the `controller.ingress` block the configured hostname will be the ingress hostname starting with `https://` or `http://` depending on the `tls` configuration. - # The Protocol can be overwritten by specifying `controller.jenkinsUrlProtocol`. - # jenkinsUrlProtocol: "https" - # If you are not using the provided ingress you can specify `controller.jenkinsUrl` to change the url definition. - # jenkinsUrl: "" - # If you set this prefix and use ingress controller then you might want to set the ingress path below - jenkinsUriPrefix: /jenkins - jenkinsUrl: https://prow-ee.pingcap.net/jenkins - jenkinsAdminEmail: wuhui.zuo@pingcap.net - - ingress: - enabled: true - # Override for the default paths that map requests to the backend - paths: [] - # - backend: - # serviceName: ssl-redirect - # servicePort: use-annotation - # - backend: - # serviceName: >- - # {{ template "jenkins.fullname" . }} - # # Don't use string here, use only integer value! - # servicePort: 8080 - # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1' - # For Kubernetes v1.19+, use 'networking.k8s.io/v1' - apiVersion: networking.k8s.io/v1 - kubernetes.io/ingress.class: nginx - kubernetes.io/tls-acme: "true" - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - ingressClassName: nginx - # Set this path to jenkinsUriPrefix above or use annotations to rewrite path - path: "/jenkins" - # configures the hostname e.g. jenkins.example.com - hostName: prow-ee.pingcap.net - tls: - # - secretName: jenkins.cluster.local - # hosts: - # - jenkins.cluster.local - - # Expose Prometheus metrics - prometheus: - # If enabled, add the prometheus plugin to the list of plugins to install - # https://plugins.jenkins.io/prometheus - enabled: true - # Additional labels to add to the ServiceMonitor object - serviceMonitorAdditionalLabels: {} - # Set a custom namespace where to deploy ServiceMonitor resource - # serviceMonitorNamespace: monitoring - scrapeInterval: 60s - # This is the default endpoint used by the prometheus plugin - scrapeEndpoint: /prometheus - # Additional labels to add to the PrometheusRule object - alertingRulesAdditionalLabels: {} - # An array of prometheus alerting rules - # See here: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/ - # The `groups` root object is added by default, simply add the rule entries - alertingrules: [] - # Set a custom namespace where to deploy PrometheusRule resource - prometheusRuleNamespace: "" diff --git a/apps/staging/jenkins/release/values-persistence.yaml b/apps/staging/jenkins/release/values-persistence.yaml deleted file mode 100644 index 69fd49805..000000000 --- a/apps/staging/jenkins/release/values-persistence.yaml +++ /dev/null @@ -1,27 +0,0 @@ -persistence: - enabled: true - - # A manually managed Persistent Volume and Claim - # Requires persistence.enabled: true - # If defined, PVC must be created manually before volume will be bound - # existingClaim: jenkins - - # jenkins data Persistent Volume Storage Class - # If defined, storageClassName: - # If set to "-", storageClassName: "", which disables dynamic provisioning - # If undefined (the default) or set to null, no storageClassName spec is - # set, choosing the default provisioner. (gp2 on AWS, standard on - # GKE, AWS & OpenStack) - # - storageClass: - annotations: {} - labels: {} - accessMode: "ReadWriteOnce" - size: "100Gi" - volumes: - # - name: nothing - # emptyDir: {} - mounts: - # - mountPath: /var/nothing - # name: nothing - # readOnly: true diff --git a/apps/staging/jenkins/release/values-service-account.yaml b/apps/staging/jenkins/release/values-service-account.yaml deleted file mode 100644 index ed450a18b..000000000 --- a/apps/staging/jenkins/release/values-service-account.yaml +++ /dev/null @@ -1,3 +0,0 @@ -serviceAccount: - create: true - imagePullSecretName: jenkins-registry-cred \ No newline at end of file diff --git a/apps/staging/kustomization.yaml b/apps/staging/kustomization.yaml deleted file mode 100644 index ed187c5a0..000000000 --- a/apps/staging/kustomization.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - ../_base - - namespace.yaml - - jenkins - - prow-crd.yaml - - prow - - mongodb - - greenhouse - - ats - - goproxy diff --git a/apps/staging/mongodb/kustomization.yaml b/apps/staging/mongodb/kustomization.yaml deleted file mode 100644 index ad4414d89..000000000 --- a/apps/staging/mongodb/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - release.yaml diff --git a/apps/staging/mongodb/release.yaml b/apps/staging/mongodb/release.yaml deleted file mode 100644 index d7b23852e..000000000 --- a/apps/staging/mongodb/release.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: mongodb - namespace: apps -spec: - releaseName: mongodb - chart: - spec: - chart: mongodb - sourceRef: - kind: HelmRepository - name: bitnami - namespace: flux-system - version: "13.0.0" - interval: 24h - install: - remediation: - retries: 3 - upgrade: - cleanupOnFail: true - crds: CreateReplace - test: - enable: true - ignoreFailures: false - values: - global: - storageClass: ceph-block - persistence: - size: 8Gi diff --git a/apps/staging/namespace.yaml b/apps/staging/namespace.yaml deleted file mode 100644 index 3d7a02010..000000000 --- a/apps/staging/namespace.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: apps ---- -apiVersion: v1 -kind: Namespace -metadata: - name: apps-sec diff --git a/apps/staging/prow-crd.yaml b/apps/staging/prow-crd.yaml deleted file mode 100644 index ed0e6fd27..000000000 --- a/apps/staging/prow-crd.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prow-crd - namespace: flux-system -spec: - interval: 60m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/_crds/prow - prune: true - force: true diff --git a/apps/staging/prow/kustomization.yaml b/apps/staging/prow/kustomization.yaml deleted file mode 100644 index 8c8fd5b22..000000000 --- a/apps/staging/prow/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - pre.yaml - - release.yaml - - post.yaml diff --git a/apps/staging/prow/post.yaml b/apps/staging/prow/post.yaml deleted file mode 100644 index 0b7e941ce..000000000 --- a/apps/staging/prow/post.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prow-post - namespace: flux-system -spec: - dependsOn: - - name: prow-release - namespace: apps - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/prow/post - prune: true - postBuild: - substitute: - TEST_PODS_NAMESPACE: prow-test-pods - BUCKET_NAME: prow - substituteFrom: - ### need secret `prow` with keys: - # - DOMAIN_NAME - - kind: Secret - name: prow \ No newline at end of file diff --git a/apps/staging/prow/post/configs/README.md b/apps/staging/prow/post/configs/README.md deleted file mode 100644 index a80338f48..000000000 --- a/apps/staging/prow/post/configs/README.md +++ /dev/null @@ -1,16 +0,0 @@ -configs for prow -=== - - -## Global configuration - -> file: [config.yaml](config.yaml) - -- **Please do not add jobs for repos here, only global prow configuration.** -- **It will merge with override to default global configuration, you can provide only part of configs** - -format ref: https://github.com/kubernetes/test-infra/blob/master/prow/config/prow-config-documented.yaml - -## Configuration for plugins - -> file: [plugins.yaml](plugins.yaml) \ No newline at end of file diff --git a/apps/staging/prow/post/configs/config.yaml b/apps/staging/prow/post/configs/config.yaml deleted file mode 100644 index 3ea3d0ac7..000000000 --- a/apps/staging/prow/post/configs/config.yaml +++ /dev/null @@ -1,98 +0,0 @@ -# TODO: (@wuhuizuo) add json schema. -deck: - external_agent_logs: - - agent: jenkins - url_template: "http://prow-jenkins-operator/job/{{.Spec.Job}}/{{.Status.JenkinsBuildID}}/consoleText" - spyglass: - lenses: - - lens: - name: metadata - required_files: - - started.json|finished.json - - lens: - config: null - name: buildlog - required_files: - - build-log.txt - - lens: - name: junit - required_files: - - .*/junit.*\.xml - - lens: - name: podinfo - required_files: - - podinfo.json -decorate_all_jobs: true -in_repo_config: - enabled: - "*": true -plank: - default_decoration_configs: - "*": - gcs_configuration: - bucket: s3://prow - path_strategy: explicit - s3_credentials_secret: prow-s3-credentials - utility_images: - clonerefs: gcr.io/k8s-prow/clonerefs:v20220504-0b3a7e15f4 - entrypoint: gcr.io/k8s-prow/entrypoint:v20220504-0b3a7e15f4 - initupload: gcr.io/k8s-prow/initupload:v20220504-0b3a7e15f4 - sidecar: gcr.io/k8s-prow/sidecar:v20220504-0b3a7e15f4 - job_url_prefix_config: - "*": https://${DOMAIN_NAME}/view/ - report_templates: - "*": - "[Full PR test - history](https://${DOMAIN_NAME}/pr-history?org={{.Spec.Refs.Org}}&repo={{.Spec.Refs.Repo}}&pr={{with - index .Spec.Refs.Pulls 0}}{{.Number}}{{end }}). [Your PR - dashboard](https://${DOMAIN_NAME}/pr?query=is:pr+state:open+author:{{with - index .Spec.Refs.Pulls 0}}{{.Author}}{{end }})." -pod_namespace: ${TEST_PODS_NAMESPACE} -prowjob_namespace: apps -tide: - target_url: https://${DOMAIN_NAME}/tide - merge_method: - PingCAP-QE/artifacts: squash - PingCAP-QE/ee-apps: squash - PingCAP-QE/ee-ops: squash - queries: - - repos: - - PingCAP-QE/artifacts - - PingCAP-QE/ee-apps - labels: - - lgtm - - approved - missingLabels: - - do-not-merge - - do-not-merge/hold - - do-not-merge/invalid-owners-file - - do-not-merge/work-in-progress - - needs-rebase - - repos: - - PingCAP-QE/ee-ops - labels: - - approved - missingLabels: - - do-not-merge - - do-not-merge/hold - - do-not-merge/invalid-owners-file - - do-not-merge/work-in-progress - - needs-rebase - -# for jenkins operator component. -jenkins_operators: - - max_concurrency: 20 - max_goroutines: 20 - job_url_template: - 'https://${DOMAIN_NAME}/view/s3/${BUCKET_NAME}/prow-logs/{{if eq - .Spec.Type "presubmit"}}pr-logs/pull{{else if eq .Spec.Type - "batch"}}pr-logs/pull{{else}}logs{{end}}{{if ne .Spec.Refs.Repo - "origin"}}/{{.Spec.Refs.Org}}_{{.Spec.Refs.Repo}}{{end}}{{if eq .Spec.Type - "presubmit"}}/{{with index .Spec.Refs.Pulls 0}}{{.Number}}{{end}}{{else if - eq .Spec.Type "batch"}}/batch{{end}}/{{.Spec.Job}}/{{.Status.BuildID}}/' - report_templates: - "*": - '[Full PR test history](https://${DOMAIN_NAME}/pr-history/{{if ne - .Spec.Refs.Repo - "origin"}}{{.Spec.Refs.Org}}_{{.Spec.Refs.Repo}}/{{end}}{{with index - .Spec.Refs.Pulls 0}}{{.Number}}{{end}}).' diff --git a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-call-jenkins.yaml b/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-call-jenkins.yaml deleted file mode 100644 index b8dcd5b91..000000000 --- a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-call-jenkins.yaml +++ /dev/null @@ -1,2 +0,0 @@ -presubmits: - PingCAP-QE/ee-ops: [] diff --git a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-prowjob.yaml b/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-prowjob.yaml deleted file mode 100644 index 013d75500..000000000 --- a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-prowjob.yaml +++ /dev/null @@ -1,9 +0,0 @@ -presubmits: - PingCAP-QE/ee-ops: - - name: verifyCI1 - always_run: true - max_concurrency: 2 - spec: - containers: - - image: alpine - command: ["/bin/date"] diff --git a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-tekton-pipeline-spec.yaml b/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-tekton-pipeline-spec.yaml deleted file mode 100644 index 90452f2e5..000000000 --- a/apps/staging/prow/post/configs/jobs/PingCAP-QE/ee-ops/job-tekton-pipeline-spec.yaml +++ /dev/null @@ -1,26 +0,0 @@ -presubmits: - PingCAP-QE/ee-ops: - - name: codescan-security - always_run: true - max_concurrency: 2 - decorate: false # need add this. - agent: tekton-pipeline - tekton_pipeline_run_spec: - v1beta1: - pipelineSpec: - params: - - name: JOB_SPEC - type: string - - name: PROW_JOB_ID - type: string - tasks: - - name: codescan-security-for-prow - taskRef: - kind: ClusterTask - name: codescan-security-prow - params: - - name: job-spec - value: >- - $(params.JOB_SPEC) - - name: server-base-url - value: http://sec-server.apps-sec.svc diff --git a/apps/staging/prow/post/configs/jobs/kustomization.yaml b/apps/staging/prow/post/configs/jobs/kustomization.yaml deleted file mode 100644 index eed19e8d1..000000000 --- a/apps/staging/prow/post/configs/jobs/kustomization.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -configMapGenerator: - - name: prow-job-config - namespace: apps - behavior: create - options: - disableNameSuffixHash: true - files: - - PingCAP-QE/ee-ops/job-call-jenkins.yaml - - PingCAP-QE/ee-ops/job-prowjob.yaml - - PingCAP-QE/ee-ops/job-tekton-pipeline-spec.yaml diff --git a/apps/staging/prow/post/configs/kustomization.yaml b/apps/staging/prow/post/configs/kustomization.yaml deleted file mode 100644 index 1f21df80d..000000000 --- a/apps/staging/prow/post/configs/kustomization.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - jobs -configMapGenerator: - - name: prow-config - namespace: apps - behavior: create - options: - disableNameSuffixHash: true - files: - - config.yaml - - name: prow-plugins - namespace: apps - behavior: create - options: - disableNameSuffixHash: true - files: - - plugins.yaml diff --git a/apps/staging/prow/post/configs/labels.yaml b/apps/staging/prow/post/configs/labels.yaml deleted file mode 100644 index d0004d059..000000000 --- a/apps/staging/prow/post/configs/labels.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -default: - labels: - - name: lgtm - color: 00ff00 - - name: priority/P0 - color: ff0000 - previously: - - color: 0000ff - name: P0 - - name: tide/merge-method-rebase - color: ffaa00 - description: Denotes a PR that should be rebased by tide when it merges. - target: prs - - name: tide/merge-method-merge - color: ffaa00 - description: Denotes a PR that should be merged by tide when it merges. - target: prs - - name: tide/merge-method-squash - color: ffaa00 - description: Denotes a PR that should be squashed by tide when it merges. - target: prs diff --git a/apps/staging/prow/post/configs/plugins.yaml b/apps/staging/prow/post/configs/plugins.yaml deleted file mode 100644 index c1add0f65..000000000 --- a/apps/staging/prow/post/configs/plugins.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# enable plugins for any repos in the org. -plugins: - PingCAP-QE/artifacts: - plugins: - - approve # Allow OWNERS to /approve - - assign # Allow /assign and /cc - - blunderbuss # Auto-assign people - - heart - - help # Support /help and /good-first-issue - - hold # Support /hold to delay merge - - invalidcommitmsg - - label - - lgtm # Allow /lgtm - - size # Label the size label for pr changes - - trigger # Allow people to configure CI jobs to /test - - verify-owners # Validates OWNERS file changes in PRs. - - wip # Auto-hold PRs with WIP in title - PingCAP-QE/ee-apps: - plugins: - - approve - - assign - - blunderbuss - - heart - - help - - hold - - invalidcommitmsg - - label - - lgtm - - size - - trigger - - verify-owners - - wip - PingCAP-QE/ee-ops: - plugins: - - approve - - assign - - blunderbuss - - heart - - help - - hold - - invalidcommitmsg - - label - - lgtm - - size - - trigger - - verify-owners - - wip - -# configuration of plugin `label` -label: - additional_labels: - - tide/merge-method-squash - - tide/merge-method-rebase - - tide/merge-method-merge - # restricted_labels: - # PingCAP-QE/ee-ops: - # - allowed_teams: - # - ee - -external_plugins: - PingCAP-QE/artifacts: - - name: tektoncd # forward to tekton trigger event listener. - endpoint: http://el-public.ci-demo.svc:8080 - events: - - pull_request - - name: needs-rebase - endpoint: http://prow-needs-rebase - events: - - issue_comment - - pull_request - - name: chatgpt - endpoint: http://prow-chatgpt - events: - - pull_request - - issue_comment - PingCAP-QE/ee-ops: - - name: tektoncd # forward to tekton trigger event listener. - endpoint: http://el-public.ci-demo.svc:8080 - events: - - pull_request - - name: needs-rebase - endpoint: http://prow-needs-rebase - events: - - issue_comment - - pull_request - - name: chatgpt - endpoint: http://prow-chatgpt - events: - - pull_request - - issue_comment - PingCAP-QE/tirelease: - - name: chatgpt - endpoint: http://prow-chatgpt - events: - - pull_request - - issue_comment diff --git a/apps/staging/prow/post/kustomization.yaml b/apps/staging/prow/post/kustomization.yaml deleted file mode 100644 index bf07f9276..000000000 --- a/apps/staging/prow/post/kustomization.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - configs \ No newline at end of file diff --git a/apps/staging/prow/pre.yaml b/apps/staging/prow/pre.yaml deleted file mode 100644 index f16f69c5c..000000000 --- a/apps/staging/prow/pre.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prow-pre - namespace: flux-system -spec: - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/prow/pre - prune: true - postBuild: - substitute: - TEST_PODS_NAMESPACE: prow-test-pods \ No newline at end of file diff --git a/apps/staging/prow/pre/chatgpt/tasks.yaml b/apps/staging/prow/pre/chatgpt/tasks.yaml deleted file mode 100644 index 40d09923e..000000000 --- a/apps/staging/prow/pre/chatgpt/tasks.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# ORG: -# ---- or --- -# ORG/repo: -PingCAP-QE: - review-pull-request: - name: review summary - system_message: | - You are an experienced software developer. You will act as a reviewer for a GitHub Pull Request, and you should answer by markdown format. - user_prompt: | - Please help me to review the github pull request: summarize the key changes and identify potential problems, then give some fixing suggestions, all you output should be markdown. - patch_introduce_prompt: | - This is the diff for the pull request: - output_static_head_note: |- - > **I have already done a preliminary review for you, and I hope to help you do a better job.** - external_contexts: [] - # - prompt_tpl: | - # This the context about context A: %s - # res_url: https://external.site/resource.html diff --git a/apps/staging/prow/pre/kustomization.yaml b/apps/staging/prow/pre/kustomization.yaml deleted file mode 100644 index af502948d..000000000 --- a/apps/staging/prow/pre/kustomization.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - namespace-test-pods.yaml - - rbac-test-pods-k8s-pod-full.yaml - - obc.yaml -configMapGenerator: - - name: prow-openai - namespace: apps - behavior: create - options: - disableNameSuffixHash: true - files: - - chatgpt/tasks.yaml diff --git a/apps/staging/prow/pre/namespace-test-pods.yaml b/apps/staging/prow/pre/namespace-test-pods.yaml deleted file mode 100644 index be6b0be89..000000000 --- a/apps/staging/prow/pre/namespace-test-pods.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: ${TEST_PODS_NAMESPACE} diff --git a/apps/staging/prow/pre/obc.yaml b/apps/staging/prow/pre/obc.yaml deleted file mode 100644 index 54bdc56be..000000000 --- a/apps/staging/prow/pre/obc.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: objectbucket.io/v1alpha1 -kind: ObjectBucketClaim -metadata: - name: prow-data - namespace: apps -spec: - additionalConfig: - maxSize: 50G - bucketName: prow - storageClassName: ceph-bucket diff --git a/apps/staging/prow/pre/rbac-test-pods-k8s-pod-full.yaml b/apps/staging/prow/pre/rbac-test-pods-k8s-pod-full.yaml deleted file mode 100644 index 6adfb180d..000000000 --- a/apps/staging/prow/pre/rbac-test-pods-k8s-pod-full.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: k8s-pod-full - namespace: ${TEST_PODS_NAMESPACE} ---- -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - namespace: ${TEST_PODS_NAMESPACE} - name: k8s-pod-full -rules: - - apiGroups: - - "" - resources: - - pods - verbs: - - delete - - list - - get - - watch - - create - - patch ---- -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - namespace: ${TEST_PODS_NAMESPACE} - name: k8s-pod-full -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: k8s-pod-full -subjects: - - kind: ServiceAccount - name: k8s-pod-full - namespace: ${TEST_PODS_NAMESPACE} diff --git a/apps/staging/prow/release.yaml b/apps/staging/prow/release.yaml deleted file mode 100644 index 8654d6527..000000000 --- a/apps/staging/prow/release.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prow-release - namespace: apps -spec: - dependsOn: - - name: prow-pre - namespace: flux-system - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - path: ./apps/staging/prow/release - prune: true - wait: true - postBuild: - substituteFrom: - # gencrated by prow-pre - - kind: Secret - name: prow-data - - kind: ConfigMap - name: prow-data - substitute: - TEST_PODS_NAMESPACE: prow-test-pods - - ### need secret `prow` with keys: - # - GITHUB_APP_ID - # - GITHUB_APP_CERT - # - GITHUB_APP_WEBHOOK_HMAC - # - GITHUB_TOKEN - # - DOMAIN_NAME - PROW_SECRET_NAME: prow - - ### need secret `prow-jenkins-operator-auth` with keys: - # - user - # - token - JENKINS_OPERATOR_AUTH_SEC_NAME: prow-jenkins-operator-auth - JENKINS_OPERATOR_AUTH_SEC_KEY_USER: user - JENKINS_OPERATOR_AUTH_SEC_KEY_TOKEN: token diff --git a/apps/staging/prow/release/kustomization.yaml b/apps/staging/prow/release/kustomization.yaml deleted file mode 100644 index e42253b2a..000000000 --- a/apps/staging/prow/release/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - release.yaml - diff --git a/apps/staging/prow/release/release.yaml b/apps/staging/prow/release/release.yaml deleted file mode 100644 index 8cb51a096..000000000 --- a/apps/staging/prow/release/release.yaml +++ /dev/null @@ -1,194 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: prow - namespace: flux-system -spec: - dependsOn: - - { name: jenkins, namespace: flux-system } - releaseName: prow - targetNamespace: apps - chart: - spec: - chart: prow - version: 0.8.1 - sourceRef: - kind: HelmRepository - name: ee-ops - namespace: flux-system - interval: 5m - timeout: 5m - install: - crds: CreateReplace - remediation: - retries: 3 - rollback: - cleanupOnFail: true - recreate: true - upgrade: - crds: CreateReplace - cleanupOnFail: true - remediation: - retries: 3 - test: - enable: true - ignoreFailures: false - valuesFrom: - - kind: Secret - name: ${PROW_SECRET_NAME} - valuesKey: GITHUB_APP_ID - targetPath: prow.githubAppId - - kind: Secret - name: ${PROW_SECRET_NAME} - valuesKey: GITHUB_APP_CERT - targetPath: prow.githubAppCert - - kind: Secret - name: ${PROW_SECRET_NAME} - valuesKey: GITHUB_APP_WEBHOOK_HMAC - targetPath: prow.githubHmacToken - - kind: Secret - name: ${PROW_SECRET_NAME} - valuesKey: GITHUB_TOKEN - targetPath: prow.githubOauthToken - - kind: Secret - name: ${PROW_SECRET_NAME} - valuesKey: DOMAIN_NAME - targetPath: prow.domainName - values: - prow: - podsNamespace: ${TEST_PODS_NAMESPACE} # should delete old prow-pcm pods when changed. - githubOrg: PingCAP-QE - deck: - image: - repository: ticommunityinfra/deck - tag: v20230323-3ade632 - tide: - image: - repository: ticommunityinfra/tide - tag: v20230323-3ade632 - hook: - image: - repository: ticommunityinfra/hook - tag: latest - pipeline: - image: - repository: ticommunityinfra/pipeline - tag: latest - jenkinsOperator: - enabled: true - skipReport: true - dryRun: false - jenkinsUrl: http://jenkins:8080/jenkins/ - auth: - secretName: ${JENKINS_OPERATOR_AUTH_SEC_NAME} - secretKeyJenkinsUser: ${JENKINS_OPERATOR_AUTH_SEC_KEY_USER} - secretKeyJenkinsToken: ${JENKINS_OPERATOR_AUTH_SEC_KEY_TOKEN} - thirdPlugins: - chatgpt: - service: - type: ClusterIP - replicaCount: 1 - image: - repository: ticommunityinfra/chatgpt - tag: v20230511-83c30cb - ports: - http: 8888 - args: - - --dry-run=false - - --github-app-id=$(GITHUB_APP_ID) - - --github-app-private-key-path=/etc/github/cert - - --github-endpoint=http://prow-ghproxy - - --github-graphql-endpoint=http://prow-ghproxy/graphql - - --openai-config-file=/etc/openai/config.yaml - - --openai-tasks-file=/etc/openai/tasks.yaml - - --openai-model="gpt-3.5-turbo" - - --issue-comment-command=review - env: - - name: GITHUB_APP_ID - valueFrom: - secretKeyRef: - name: prow-github-token - key: appid - volumeMounts: - - name: openai-config - mountPath: /etc/openai - readOnly: true - volumes: - - name: openai-config - projected: - sources: - - secret: - name: prow-openai - optional: true - items: - - key: config.yaml - path: config.yaml - - configMap: - name: prow-openai - items: - - key: tasks.yaml - path: tasks.yaml - needs-rebase: - replicaCount: 1 - image: - repository: gcr.io/k8s-prow/needs-rebase - ports: - http: 8888 - resources: {} - args: - - --dry-run=false - - --github-app-id=$(GITHUB_APP_ID) - - --github-app-private-key-path=/etc/github/cert - - --github-endpoint=http://prow-ghproxy - - --github-graphql-endpoint=http://prow-ghproxy/graphql - service: - type: ClusterIP - persistent: - type: s3 - bucketName: ${BUCKET_NAME} - credentials: | - { - "region": "${BUCKET_REGION:=ceph}", - "endpoint": "${BUCKET_HOST}:${BUCKET_PORT}", - "insecure": true, - "s3_force_path_style": true, - "access_key": "${AWS_ACCESS_KEY_ID}", - "secret_key": "${AWS_SECRET_ACCESS_KEY}" - } - postRenderers: - - kustomize: - patchesJson6902: - # for updating ConfigMaps in after release deployment. - - target: - version: v1 - kind: ConfigMap - name: prow-config - namespace: apps - patch: - # for merging configmap - # TODO(wuhuizuo): how to merge the inner yaml from value content. - - op: replace - path: /metadata/annotations.kustomize.toolkit.fluxcd.io/ssa - value: merge - - target: - version: v1 - kind: ConfigMap - name: prow-job-config - namespace: apps - patch: - # for merging configmap - # TODO(wuhuizuo): how to merge the inner yaml from value content. - - op: replace - path: /metadata/annotations.kustomize.toolkit.fluxcd.io/ssa - value: merge - - target: - version: v1 - kind: ConfigMap - name: prow-plugins - namespace: apps - patch: - # for merging configmap - # TODO(wuhuizuo): how to merge the inner yaml from value content. - - op: replace - path: /metadata/annotations.kustomize.toolkit.fluxcd.io/ssa - value: merge diff --git a/clusters/staging/README.md b/clusters/prod/README.md similarity index 86% rename from clusters/staging/README.md rename to clusters/prod/README.md index 6a95c3084..bcc090670 100644 --- a/clusters/staging/README.md +++ b/clusters/prod/README.md @@ -13,8 +13,6 @@ | apps | coveralls-token | `kubectl -n apps create secret generic ...` | for coveralls uploading, keys: `tiflow` | | apps | tekton-ingress | `kubectl -n apps create secret generic tekton-ingress ...` | tekton component, keys: `domain`, `path_for_dashboard` | | flux-system | prow | `kubectl -n flux-system create secret generic ...` | secret configurations to deploy prow github app | -| ci-demo | github-app | `kubectl -n ci-demo create secret generic github-app ...` | tekton test, keys: `app-id`, `app-cert`, `app-cert-pkcs8` | -| ci-demo | github-secret | `kubectl -n ci-demo create secret generic github-secret ...` | tekton test, keys: `secretToken` | | apps | prow-jenkins-operator-auth | `kubectl -n apps create secret generic prow-jenkins-operator-auth ...` | auth to external jenkins controller, keys: `user`, `token` | - How to create jenkins api token? diff --git a/clusters/staging/apps.yaml b/clusters/staging/apps.yaml deleted file mode 100644 index 0713767f2..000000000 --- a/clusters/staging/apps.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: apps - namespace: flux-system -spec: - dependsOn: - - name: infrastructure - interval: 1m0s - sourceRef: - kind: GitRepository - name: flux-system - path: ./apps/staging - prune: true diff --git a/clusters/staging/flux-system/gotk-components.yaml b/clusters/staging/flux-system/gotk-components.yaml deleted file mode 100644 index 71fd98954..000000000 --- a/clusters/staging/flux-system/gotk-components.yaml +++ /dev/null @@ -1,6788 +0,0 @@ ---- -# This manifest was generated by flux. DO NOT EDIT. -# Flux Version: v0.41.2 -# Components: source-controller,kustomize-controller,helm-controller,notification-controller -apiVersion: v1 -kind: Namespace -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - pod-security.kubernetes.io/warn: restricted - pod-security.kubernetes.io/warn-version: latest - name: flux-system ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: alerts.notification.toolkit.fluxcd.io -spec: - group: notification.toolkit.fluxcd.io - names: - kind: Alert - listKind: AlertList - plural: alerts - singular: alert - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Alert is the Schema for the alerts API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlertSpec defines an alerting rule for events involving a - list of objects - properties: - eventSeverity: - default: info - description: Filter events based on severity, defaults to ('info'). - If set to 'info' no events will be filtered. - enum: - - info - - error - type: string - eventSources: - description: Filter events based on the involved objects. - items: - description: CrossNamespaceObjectReference contains enough information - to let you locate the typed referenced object at cluster level - properties: - apiVersion: - description: API version of the referent - type: string - kind: - description: Kind of the referent - enum: - - Bucket - - GitRepository - - Kustomization - - HelmRelease - - HelmChart - - HelmRepository - - ImageRepository - - ImagePolicy - - ImageUpdateAutomation - - OCIRepository - type: string - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - name: - description: Name of the referent - maxLength: 53 - minLength: 1 - type: string - namespace: - description: Namespace of the referent - maxLength: 53 - minLength: 1 - type: string - required: - - name - type: object - type: array - exclusionList: - description: A list of Golang regular expressions to be used for excluding - messages. - items: - type: string - type: array - providerRef: - description: Send events using this provider. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - summary: - description: Short description of the impact and affected cluster. - type: string - suspend: - description: This flag tells the controller to suspend subsequent - events dispatching. Defaults to false. - type: boolean - required: - - eventSources - - providerRef - type: object - status: - default: - observedGeneration: -1 - description: AlertStatus defines the observed state of Alert - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Alert is the Schema for the alerts API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: AlertSpec defines an alerting rule for events involving a - list of objects. - properties: - eventSeverity: - default: info - description: EventSeverity specifies how to filter events based on - severity. If set to 'info' no events will be filtered. - enum: - - info - - error - type: string - eventSources: - description: EventSources specifies how to filter events based on - the involved object kind, name and namespace. - items: - description: CrossNamespaceObjectReference contains enough information - to let you locate the typed referenced object at cluster level - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: Kind of the referent. - enum: - - Bucket - - GitRepository - - Kustomization - - HelmRelease - - HelmChart - - HelmRepository - - ImageRepository - - ImagePolicy - - ImageUpdateAutomation - - OCIRepository - type: string - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - name: - description: Name of the referent. - maxLength: 53 - minLength: 1 - type: string - namespace: - description: Namespace of the referent. - maxLength: 53 - minLength: 1 - type: string - required: - - name - type: object - type: array - exclusionList: - description: ExclusionList specifies a list of Golang regular expressions - to be used for excluding messages. - items: - type: string - type: array - providerRef: - description: ProviderRef specifies which Provider this Alert should - use. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - summary: - description: Summary holds a short description of the impact and affected - cluster. - maxLength: 255 - type: string - suspend: - description: Suspend tells the controller to suspend subsequent events - handling for this Alert. - type: boolean - required: - - eventSources - - providerRef - type: object - status: - default: - observedGeneration: -1 - description: AlertStatus defines the observed state of the Alert. - properties: - conditions: - description: Conditions holds the conditions for the Alert. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: buckets.source.toolkit.fluxcd.io -spec: - group: source.toolkit.fluxcd.io - names: - kind: Bucket - listKind: BucketList - plural: buckets - singular: bucket - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.endpoint - name: Endpoint - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Bucket is the Schema for the buckets API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BucketSpec defines the desired state of an S3 compatible - bucket - properties: - accessFrom: - description: AccessFrom defines an Access Control List for allowing - cross-namespace references to this object. - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - bucketName: - description: The bucket name. - type: string - endpoint: - description: The bucket endpoint address. - type: string - ignore: - description: Ignore overrides the set of excluded patterns in the - .sourceignore format (which is the same as .gitignore). If not provided, - a default will be used, consult the documentation for your version - to find out what those are. - type: string - insecure: - description: Insecure allows connecting to a non-TLS S3 HTTP endpoint. - type: boolean - interval: - description: The interval at which to check for bucket updates. - type: string - provider: - default: generic - description: The S3 compatible storage provider name, default ('generic'). - enum: - - generic - - aws - - gcp - type: string - region: - description: The bucket region. - type: string - secretRef: - description: The name of the secret containing authentication credentials - for the Bucket. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: This flag tells the controller to suspend the reconciliation - of this source. - type: boolean - timeout: - default: 60s - description: The timeout for download operations, defaults to 60s. - type: string - required: - - bucketName - - endpoint - - interval - type: object - status: - default: - observedGeneration: -1 - description: BucketStatus defines the observed state of a bucket - properties: - artifact: - description: Artifact represents the output of the last successful - Bucket sync. - properties: - checksum: - description: Checksum is the SHA256 checksum of the artifact. - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of this artifact. - format: date-time - type: string - path: - description: Path is the relative file path of this artifact. - type: string - revision: - description: Revision is a human readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm index timestamp, a Helm chart version, etc. - type: string - url: - description: URL is the HTTP address of this artifact. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the Bucket. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - url: - description: URL is the download link for the artifact output of the - last Bucket sync. - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.endpoint - name: Endpoint - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Bucket is the Schema for the buckets API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BucketSpec specifies the required configuration to produce - an Artifact for an object storage bucket. - properties: - accessFrom: - description: 'AccessFrom specifies an Access Control List for allowing - cross-namespace references to this object. NOTE: Not implemented, - provisional as of https://github.com/fluxcd/flux2/pull/2092' - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - bucketName: - description: BucketName is the name of the object storage bucket. - type: string - endpoint: - description: Endpoint is the object storage address the BucketName - is located at. - type: string - ignore: - description: Ignore overrides the set of excluded patterns in the - .sourceignore format (which is the same as .gitignore). If not provided, - a default will be used, consult the documentation for your version - to find out what those are. - type: string - insecure: - description: Insecure allows connecting to a non-TLS HTTP Endpoint. - type: boolean - interval: - description: Interval at which to check the Endpoint for updates. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - provider: - default: generic - description: Provider of the object storage bucket. Defaults to 'generic', - which expects an S3 (API) compatible object storage. - enum: - - generic - - aws - - gcp - - azure - type: string - region: - description: Region of the Endpoint where the BucketName is located - in. - type: string - secretRef: - description: SecretRef specifies the Secret containing authentication - credentials for the Bucket. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: Suspend tells the controller to suspend the reconciliation - of this Bucket. - type: boolean - timeout: - default: 60s - description: Timeout for fetch operations, defaults to 60s. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - required: - - bucketName - - endpoint - - interval - type: object - status: - default: - observedGeneration: -1 - description: BucketStatus records the observed state of a Bucket. - properties: - artifact: - description: Artifact represents the last successful Bucket reconciliation. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI annotations. - type: object - path: - description: Path is the relative file path of the Artifact. It - can be used to locate the file in the root of the Artifact storage - on the local file system of the controller managing the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the Bucket. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation of - the Bucket object. - format: int64 - type: integer - observedIgnore: - description: ObservedIgnore is the observed exclusion patterns used - for constructing the source artifact. - type: string - url: - description: URL is the dynamic fetch link for the latest Artifact. - It is provided on a "best effort" basis, and using the precise BucketStatus.Artifact - data is recommended. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: gitrepositories.source.toolkit.fluxcd.io -spec: - group: source.toolkit.fluxcd.io - names: - kind: GitRepository - listKind: GitRepositoryList - plural: gitrepositories - shortNames: - - gitrepo - singular: gitrepository - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.url - name: URL - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: GitRepository is the Schema for the gitrepositories API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GitRepositorySpec defines the desired state of a Git repository. - properties: - accessFrom: - description: AccessFrom defines an Access Control List for allowing - cross-namespace references to this object. - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - gitImplementation: - default: go-git - description: Determines which git client library to use. Defaults - to go-git, valid values are ('go-git', 'libgit2'). - enum: - - go-git - - libgit2 - type: string - ignore: - description: Ignore overrides the set of excluded patterns in the - .sourceignore format (which is the same as .gitignore). If not provided, - a default will be used, consult the documentation for your version - to find out what those are. - type: string - include: - description: Extra git repositories to map into the repository - items: - description: GitRepositoryInclude defines a source with a from and - to path. - properties: - fromPath: - description: The path to copy contents from, defaults to the - root directory. - type: string - repository: - description: Reference to a GitRepository to include. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - toPath: - description: The path to copy contents to, defaults to the name - of the source ref. - type: string - required: - - repository - type: object - type: array - interval: - description: The interval at which to check for repository updates. - type: string - recurseSubmodules: - description: When enabled, after the clone is created, initializes - all submodules within, using their default settings. This option - is available only when using the 'go-git' GitImplementation. - type: boolean - ref: - description: The Git reference to checkout and monitor for changes, - defaults to master branch. - properties: - branch: - description: The Git branch to checkout, defaults to master. - type: string - commit: - description: The Git commit SHA to checkout, if specified Tag - filters will be ignored. - type: string - semver: - description: The Git tag semver expression, takes precedence over - Tag. - type: string - tag: - description: The Git tag to checkout, takes precedence over Branch. - type: string - type: object - secretRef: - description: The secret name containing the Git credentials. For HTTPS - repositories the secret must contain username and password fields. - For SSH repositories the secret must contain identity and known_hosts - fields. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: This flag tells the controller to suspend the reconciliation - of this source. - type: boolean - timeout: - default: 60s - description: The timeout for remote Git operations like cloning, defaults - to 60s. - type: string - url: - description: The repository URL, can be a HTTP/S or SSH address. - pattern: ^(http|https|ssh)://.*$ - type: string - verify: - description: Verify OpenPGP signature for the Git commit HEAD points - to. - properties: - mode: - description: Mode describes what git object should be verified, - currently ('head'). - enum: - - head - type: string - secretRef: - description: The secret name containing the public keys of all - trusted Git authors. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - mode - type: object - required: - - interval - - url - type: object - status: - default: - observedGeneration: -1 - description: GitRepositoryStatus defines the observed state of a Git repository. - properties: - artifact: - description: Artifact represents the output of the last successful - repository sync. - properties: - checksum: - description: Checksum is the SHA256 checksum of the artifact. - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of this artifact. - format: date-time - type: string - path: - description: Path is the relative file path of this artifact. - type: string - revision: - description: Revision is a human readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm index timestamp, a Helm chart version, etc. - type: string - url: - description: URL is the HTTP address of this artifact. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the GitRepository. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - includedArtifacts: - description: IncludedArtifacts represents the included artifacts from - the last successful repository sync. - items: - description: Artifact represents the output of a source synchronisation. - properties: - checksum: - description: Checksum is the SHA256 checksum of the artifact. - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of this artifact. - format: date-time - type: string - path: - description: Path is the relative file path of this artifact. - type: string - revision: - description: Revision is a human readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm index timestamp, a Helm chart version, etc. - type: string - url: - description: URL is the HTTP address of this artifact. - type: string - required: - - path - - url - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - url: - description: URL is the download link for the artifact output of the - last repository sync. - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.url - name: URL - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: GitRepository is the Schema for the gitrepositories API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: GitRepositorySpec specifies the required configuration to - produce an Artifact for a Git repository. - properties: - accessFrom: - description: 'AccessFrom specifies an Access Control List for allowing - cross-namespace references to this object. NOTE: Not implemented, - provisional as of https://github.com/fluxcd/flux2/pull/2092' - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - gitImplementation: - default: go-git - description: 'GitImplementation specifies which Git client library - implementation to use. Defaults to ''go-git'', valid values are - (''go-git'', ''libgit2''). Deprecated: gitImplementation is deprecated - now that ''go-git'' is the only supported implementation.' - enum: - - go-git - - libgit2 - type: string - ignore: - description: Ignore overrides the set of excluded patterns in the - .sourceignore format (which is the same as .gitignore). If not provided, - a default will be used, consult the documentation for your version - to find out what those are. - type: string - include: - description: Include specifies a list of GitRepository resources which - Artifacts should be included in the Artifact produced for this GitRepository. - items: - description: GitRepositoryInclude specifies a local reference to - a GitRepository which Artifact (sub-)contents must be included, - and where they should be placed. - properties: - fromPath: - description: FromPath specifies the path to copy contents from, - defaults to the root of the Artifact. - type: string - repository: - description: GitRepositoryRef specifies the GitRepository which - Artifact contents must be included. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - toPath: - description: ToPath specifies the path to copy contents to, - defaults to the name of the GitRepositoryRef. - type: string - required: - - repository - type: object - type: array - interval: - description: Interval at which to check the GitRepository for updates. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - recurseSubmodules: - description: RecurseSubmodules enables the initialization of all submodules - within the GitRepository as cloned from the URL, using their default - settings. - type: boolean - ref: - description: Reference specifies the Git reference to resolve and - monitor for changes, defaults to the 'master' branch. - properties: - branch: - description: Branch to check out, defaults to 'master' if no other - field is defined. - type: string - commit: - description: "Commit SHA to check out, takes precedence over all - reference fields. \n This can be combined with Branch to shallow - clone the branch, in which the commit is expected to exist." - type: string - name: - description: "Name of the reference to check out; takes precedence - over Branch, Tag and SemVer. \n It must be a valid Git reference: - https://git-scm.com/docs/git-check-ref-format#_description Examples: - \"refs/heads/main\", \"refs/tags/v0.1.0\", \"refs/pull/420/head\", - \"refs/merge-requests/1/head\"" - type: string - semver: - description: SemVer tag expression to check out, takes precedence - over Tag. - type: string - tag: - description: Tag to check out, takes precedence over Branch. - type: string - type: object - secretRef: - description: SecretRef specifies the Secret containing authentication - credentials for the GitRepository. For HTTPS repositories the Secret - must contain 'username' and 'password' fields for basic auth or - 'bearerToken' field for token auth. For SSH repositories the Secret - must contain 'identity' and 'known_hosts' fields. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: Suspend tells the controller to suspend the reconciliation - of this GitRepository. - type: boolean - timeout: - default: 60s - description: Timeout for Git operations like cloning, defaults to - 60s. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - url: - description: URL specifies the Git repository URL, it can be an HTTP/S - or SSH address. - pattern: ^(http|https|ssh)://.*$ - type: string - verify: - description: Verification specifies the configuration to verify the - Git commit signature(s). - properties: - mode: - description: Mode specifies what Git object should be verified, - currently ('head'). - enum: - - head - type: string - secretRef: - description: SecretRef specifies the Secret containing the public - keys of trusted Git authors. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - mode - type: object - required: - - interval - - url - type: object - status: - default: - observedGeneration: -1 - description: GitRepositoryStatus records the observed state of a Git repository. - properties: - artifact: - description: Artifact represents the last successful GitRepository - reconciliation. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI annotations. - type: object - path: - description: Path is the relative file path of the Artifact. It - can be used to locate the file in the root of the Artifact storage - on the local file system of the controller managing the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the GitRepository. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - contentConfigChecksum: - description: "ContentConfigChecksum is a checksum of all the configurations - related to the content of the source artifact: - .spec.ignore - - .spec.recurseSubmodules - .spec.included and the checksum of the - included artifacts observed in .status.observedGeneration version - of the object. This can be used to determine if the content of the - included repository has changed. It has the format of `:`, - for example: `sha256:`. \n Deprecated: Replaced with explicit - fields for observed artifact content config in the status." - type: string - includedArtifacts: - description: IncludedArtifacts contains a list of the last successfully - included Artifacts as instructed by GitRepositorySpec.Include. - items: - description: Artifact represents the output of a Source reconciliation. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of - ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI - annotations. - type: object - path: - description: Path is the relative file path of the Artifact. - It can be used to locate the file in the root of the Artifact - storage on the local file system of the controller managing - the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation of - the GitRepository object. - format: int64 - type: integer - observedIgnore: - description: ObservedIgnore is the observed exclusion patterns used - for constructing the source artifact. - type: string - observedInclude: - description: ObservedInclude is the observed list of GitRepository - resources used to to produce the current Artifact. - items: - description: GitRepositoryInclude specifies a local reference to - a GitRepository which Artifact (sub-)contents must be included, - and where they should be placed. - properties: - fromPath: - description: FromPath specifies the path to copy contents from, - defaults to the root of the Artifact. - type: string - repository: - description: GitRepositoryRef specifies the GitRepository which - Artifact contents must be included. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - toPath: - description: ToPath specifies the path to copy contents to, - defaults to the name of the GitRepositoryRef. - type: string - required: - - repository - type: object - type: array - observedRecurseSubmodules: - description: ObservedRecurseSubmodules is the observed resource submodules - configuration used to produce the current Artifact. - type: boolean - url: - description: URL is the dynamic fetch link for the latest Artifact. - It is provided on a "best effort" basis, and using the precise GitRepositoryStatus.Artifact - data is recommended. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: helmcharts.source.toolkit.fluxcd.io -spec: - group: source.toolkit.fluxcd.io - names: - kind: HelmChart - listKind: HelmChartList - plural: helmcharts - shortNames: - - hc - singular: helmchart - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.chart - name: Chart - type: string - - jsonPath: .spec.version - name: Version - type: string - - jsonPath: .spec.sourceRef.kind - name: Source Kind - type: string - - jsonPath: .spec.sourceRef.name - name: Source Name - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: HelmChart is the Schema for the helmcharts API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: HelmChartSpec defines the desired state of a Helm chart. - properties: - accessFrom: - description: AccessFrom defines an Access Control List for allowing - cross-namespace references to this object. - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - chart: - description: The name or path the Helm chart is available at in the - SourceRef. - type: string - interval: - description: The interval at which to check the Source for updates. - type: string - reconcileStrategy: - default: ChartVersion - description: Determines what enables the creation of a new artifact. - Valid values are ('ChartVersion', 'Revision'). See the documentation - of the values for an explanation on their behavior. Defaults to - ChartVersion when omitted. - enum: - - ChartVersion - - Revision - type: string - sourceRef: - description: The reference to the Source the chart is available at. - properties: - apiVersion: - description: APIVersion of the referent. - type: string - kind: - description: Kind of the referent, valid values are ('HelmRepository', - 'GitRepository', 'Bucket'). - enum: - - HelmRepository - - GitRepository - - Bucket - type: string - name: - description: Name of the referent. - type: string - required: - - kind - - name - type: object - suspend: - description: This flag tells the controller to suspend the reconciliation - of this source. - type: boolean - valuesFile: - description: Alternative values file to use as the default chart values, - expected to be a relative path in the SourceRef. Deprecated in favor - of ValuesFiles, for backwards compatibility the file defined here - is merged before the ValuesFiles items. Ignored when omitted. - type: string - valuesFiles: - description: Alternative list of values files to use as the chart - values (values.yaml is not included by default), expected to be - a relative path in the SourceRef. Values files are merged in the - order of this list with the last file overriding the first. Ignored - when omitted. - items: - type: string - type: array - version: - default: '*' - description: The chart version semver expression, ignored for charts - from GitRepository and Bucket sources. Defaults to latest when omitted. - type: string - required: - - chart - - interval - - sourceRef - type: object - status: - default: - observedGeneration: -1 - description: HelmChartStatus defines the observed state of the HelmChart. - properties: - artifact: - description: Artifact represents the output of the last successful - chart sync. - properties: - checksum: - description: Checksum is the SHA256 checksum of the artifact. - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of this artifact. - format: date-time - type: string - path: - description: Path is the relative file path of this artifact. - type: string - revision: - description: Revision is a human readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm index timestamp, a Helm chart version, etc. - type: string - url: - description: URL is the HTTP address of this artifact. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the HelmChart. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - url: - description: URL is the download link for the last chart pulled. - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.chart - name: Chart - type: string - - jsonPath: .spec.version - name: Version - type: string - - jsonPath: .spec.sourceRef.kind - name: Source Kind - type: string - - jsonPath: .spec.sourceRef.name - name: Source Name - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: HelmChart is the Schema for the helmcharts API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: HelmChartSpec specifies the desired state of a Helm chart. - properties: - accessFrom: - description: 'AccessFrom specifies an Access Control List for allowing - cross-namespace references to this object. NOTE: Not implemented, - provisional as of https://github.com/fluxcd/flux2/pull/2092' - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - chart: - description: Chart is the name or path the Helm chart is available - at in the SourceRef. - type: string - interval: - description: Interval is the interval at which to check the Source - for updates. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - reconcileStrategy: - default: ChartVersion - description: ReconcileStrategy determines what enables the creation - of a new artifact. Valid values are ('ChartVersion', 'Revision'). - See the documentation of the values for an explanation on their - behavior. Defaults to ChartVersion when omitted. - enum: - - ChartVersion - - Revision - type: string - sourceRef: - description: SourceRef is the reference to the Source the chart is - available at. - properties: - apiVersion: - description: APIVersion of the referent. - type: string - kind: - description: Kind of the referent, valid values are ('HelmRepository', - 'GitRepository', 'Bucket'). - enum: - - HelmRepository - - GitRepository - - Bucket - type: string - name: - description: Name of the referent. - type: string - required: - - kind - - name - type: object - suspend: - description: Suspend tells the controller to suspend the reconciliation - of this source. - type: boolean - valuesFile: - description: ValuesFile is an alternative values file to use as the - default chart values, expected to be a relative path in the SourceRef. - Deprecated in favor of ValuesFiles, for backwards compatibility - the file specified here is merged before the ValuesFiles items. - Ignored when omitted. - type: string - valuesFiles: - description: ValuesFiles is an alternative list of values files to - use as the chart values (values.yaml is not included by default), - expected to be a relative path in the SourceRef. Values files are - merged in the order of this list with the last file overriding the - first. Ignored when omitted. - items: - type: string - type: array - verify: - description: Verify contains the secret name containing the trusted - public keys used to verify the signature and specifies which provider - to use to check whether OCI image is authentic. This field is only - supported when using HelmRepository source with spec.type 'oci'. - Chart dependencies, which are not bundled in the umbrella chart - artifact, are not verified. - properties: - provider: - default: cosign - description: Provider specifies the technology used to sign the - OCI Artifact. - enum: - - cosign - type: string - secretRef: - description: SecretRef specifies the Kubernetes Secret containing - the trusted public keys. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - provider - type: object - version: - default: '*' - description: Version is the chart version semver expression, ignored - for charts from GitRepository and Bucket sources. Defaults to latest - when omitted. - type: string - required: - - chart - - interval - - sourceRef - type: object - status: - default: - observedGeneration: -1 - description: HelmChartStatus records the observed state of the HelmChart. - properties: - artifact: - description: Artifact represents the output of the last successful - reconciliation. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI annotations. - type: object - path: - description: Path is the relative file path of the Artifact. It - can be used to locate the file in the root of the Artifact storage - on the local file system of the controller managing the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the HelmChart. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedChartName: - description: ObservedChartName is the last observed chart name as - specified by the resolved chart reference. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation of - the HelmChart object. - format: int64 - type: integer - observedSourceArtifactRevision: - description: ObservedSourceArtifactRevision is the last observed Artifact.Revision - of the HelmChartSpec.SourceRef. - type: string - url: - description: URL is the dynamic fetch link for the latest Artifact. - It is provided on a "best effort" basis, and using the precise BucketStatus.Artifact - data is recommended. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: helm-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: helmreleases.helm.toolkit.fluxcd.io -spec: - group: helm.toolkit.fluxcd.io - names: - kind: HelmRelease - listKind: HelmReleaseList - plural: helmreleases - shortNames: - - hr - singular: helmrelease - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v2beta1 - schema: - openAPIV3Schema: - description: HelmRelease is the Schema for the helmreleases API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: HelmReleaseSpec defines the desired state of a Helm release. - properties: - chart: - description: Chart defines the template of the v1beta2.HelmChart that - should be created for this HelmRelease. - properties: - spec: - description: Spec holds the template for the v1beta2.HelmChartSpec - for this HelmRelease. - properties: - chart: - description: The name or path the Helm chart is available - at in the SourceRef. - type: string - interval: - description: Interval at which to check the v1beta2.Source - for updates. Defaults to 'HelmReleaseSpec.Interval'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - reconcileStrategy: - default: ChartVersion - description: Determines what enables the creation of a new - artifact. Valid values are ('ChartVersion', 'Revision'). - See the documentation of the values for an explanation on - their behavior. Defaults to ChartVersion when omitted. - enum: - - ChartVersion - - Revision - type: string - sourceRef: - description: The name and namespace of the v1beta2.Source - the chart is available at. - properties: - apiVersion: - description: APIVersion of the referent. - type: string - kind: - description: Kind of the referent. - enum: - - HelmRepository - - GitRepository - - Bucket - type: string - name: - description: Name of the referent. - maxLength: 253 - minLength: 1 - type: string - namespace: - description: Namespace of the referent. - maxLength: 63 - minLength: 1 - type: string - required: - - name - type: object - valuesFile: - description: Alternative values file to use as the default - chart values, expected to be a relative path in the SourceRef. - Deprecated in favor of ValuesFiles, for backwards compatibility - the file defined here is merged before the ValuesFiles items. - Ignored when omitted. - type: string - valuesFiles: - description: Alternative list of values files to use as the - chart values (values.yaml is not included by default), expected - to be a relative path in the SourceRef. Values files are - merged in the order of this list with the last file overriding - the first. Ignored when omitted. - items: - type: string - type: array - verify: - description: Verify contains the secret name containing the - trusted public keys used to verify the signature and specifies - which provider to use to check whether OCI image is authentic. - This field is only supported for OCI sources. Chart dependencies, - which are not bundled in the umbrella chart artifact, are - not verified. - properties: - provider: - default: cosign - description: Provider specifies the technology used to - sign the OCI Helm chart. - enum: - - cosign - type: string - secretRef: - description: SecretRef specifies the Kubernetes Secret - containing the trusted public keys. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - provider - type: object - version: - default: '*' - description: Version semver expression, ignored for charts - from v1beta2.GitRepository and v1beta2.Bucket sources. Defaults - to latest when omitted. - type: string - required: - - chart - - sourceRef - type: object - required: - - spec - type: object - dependsOn: - description: DependsOn may contain a meta.NamespacedObjectReference - slice with references to HelmRelease resources that must be ready - before this HelmRelease can be reconciled. - items: - description: NamespacedObjectReference contains enough information - to locate the referenced Kubernetes resource object in any namespace. - properties: - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, when not specified it - acts as LocalObjectReference. - type: string - required: - - name - type: object - type: array - install: - description: Install holds the configuration for Helm install actions - for this HelmRelease. - properties: - crds: - description: "CRDs upgrade CRDs from the Helm Chart's crds directory - according to the CRD upgrade policy provided here. Valid values - are `Skip`, `Create` or `CreateReplace`. Default is `Create` - and if omitted CRDs are installed but not updated. \n Skip: - do neither install nor replace (update) any CRDs. \n Create: - new CRDs are created, existing CRDs are neither updated nor - deleted. \n CreateReplace: new CRDs are created, existing CRDs - are updated (replaced) but not deleted. \n By default, CRDs - are applied (installed) during Helm install action. With this - option users can opt-in to CRD replace existing CRDs on Helm - install actions, which is not (yet) natively supported by Helm. - https://helm.sh/docs/chart_best_practices/custom_resource_definitions." - enum: - - Skip - - Create - - CreateReplace - type: string - createNamespace: - description: CreateNamespace tells the Helm install action to - create the HelmReleaseSpec.TargetNamespace if it does not exist - yet. On uninstall, the namespace will not be garbage collected. - type: boolean - disableHooks: - description: DisableHooks prevents hooks from running during the - Helm install action. - type: boolean - disableOpenAPIValidation: - description: DisableOpenAPIValidation prevents the Helm install - action from validating rendered templates against the Kubernetes - OpenAPI Schema. - type: boolean - disableWait: - description: DisableWait disables the waiting for resources to - be ready after a Helm install has been performed. - type: boolean - disableWaitForJobs: - description: DisableWaitForJobs disables waiting for jobs to complete - after a Helm install has been performed. - type: boolean - remediation: - description: Remediation holds the remediation configuration for - when the Helm install action for the HelmRelease fails. The - default is to not perform any action. - properties: - ignoreTestFailures: - description: IgnoreTestFailures tells the controller to skip - remediation when the Helm tests are run after an install - action but fail. Defaults to 'Test.IgnoreFailures'. - type: boolean - remediateLastFailure: - description: RemediateLastFailure tells the controller to - remediate the last failure, when no retries remain. Defaults - to 'false'. - type: boolean - retries: - description: Retries is the number of retries that should - be attempted on failures before bailing. Remediation, using - an uninstall, is performed between each attempt. Defaults - to '0', a negative integer equals to unlimited retries. - type: integer - type: object - replace: - description: Replace tells the Helm install action to re-use the - 'ReleaseName', but only if that name is a deleted release which - remains in the history. - type: boolean - skipCRDs: - description: "SkipCRDs tells the Helm install action to not install - any CRDs. By default, CRDs are installed if not already present. - \n Deprecated use CRD policy (`crds`) attribute with value `Skip` - instead." - type: boolean - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation (like Jobs for hooks) during the performance of a - Helm install action. Defaults to 'HelmReleaseSpec.Timeout'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - type: object - interval: - description: Interval at which to reconcile the Helm release. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - kubeConfig: - description: KubeConfig for reconciling the HelmRelease on a remote - cluster. When used in combination with HelmReleaseSpec.ServiceAccountName, - forces the controller to act on behalf of that Service Account at - the target cluster. If the --default-service-account flag is set, - its value will be used as a controller level fallback for when HelmReleaseSpec.ServiceAccountName - is empty. - properties: - secretRef: - description: SecretRef holds the name of a secret that contains - a key with the kubeconfig file as the value. If no key is set, - the key will default to 'value'. It is recommended that the - kubeconfig is self-contained, and the secret is regularly updated - if credentials such as a cloud-access-token expire. Cloud specific - `cmd-path` auth helpers will not function without adding binaries - and credentials to the Pod that is responsible for reconciling - Kubernetes resources. - properties: - key: - description: Key in the Secret, when not specified an implementation-specific - default key is used. - type: string - name: - description: Name of the Secret. - type: string - required: - - name - type: object - required: - - secretRef - type: object - maxHistory: - description: MaxHistory is the number of revisions saved by Helm for - this HelmRelease. Use '0' for an unlimited number of revisions; - defaults to '10'. - type: integer - postRenderers: - description: PostRenderers holds an array of Helm PostRenderers, which - will be applied in order of their definition. - items: - description: PostRenderer contains a Helm PostRenderer specification. - properties: - kustomize: - description: Kustomization to apply as PostRenderer. - properties: - images: - description: Images is a list of (image name, new name, - new tag or digest) for changing image names, tags or digests. - This can also be achieved with a patch, but this operator - is simpler to specify. - items: - description: Image contains an image name, a new name, - a new tag or digest, which will replace the original - name and tag. - properties: - digest: - description: Digest is the value used to replace the - original image tag. If digest is present NewTag - value is ignored. - type: string - name: - description: Name is a tag-less image name. - type: string - newName: - description: NewName is the value used to replace - the original name. - type: string - newTag: - description: NewTag is the value used to replace the - original tag. - type: string - required: - - name - type: object - type: array - patches: - description: Strategic merge and JSON patches, defined as - inline YAML objects, capable of targeting objects based - on kind, label and annotation selectors. - items: - description: Patch contains an inline StrategicMerge or - JSON6902 patch, and the target the patch should be applied - to. - properties: - patch: - description: Patch contains an inline StrategicMerge - patch or an inline JSON6902 patch with an array - of operation objects. - type: string - target: - description: Target points to the resources that the - patch document should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that - follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select - resources from. Together with Version and Kind - it is capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources - from. Together with Group and Version it is - capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select - resources from. Together with Group and Kind - it is capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - type: object - type: array - patchesJson6902: - description: JSON 6902 patches, defined as inline YAML objects. - items: - description: JSON6902Patch contains a JSON6902 patch and - the target the patch should be applied to. - properties: - patch: - description: Patch contains the JSON6902 patch document - with an array of operation objects. - items: - description: JSON6902 is a JSON6902 operation object. - https://datatracker.ietf.org/doc/html/rfc6902#section-4 - properties: - from: - description: From contains a JSON-pointer value - that references a location within the target - document where the operation is performed. - The meaning of the value depends on the value - of Op, and is NOT taken into account by all - operations. - type: string - op: - description: Op indicates the operation to perform. - Its value MUST be one of "add", "remove", - "replace", "move", "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4 - enum: - - test - - remove - - add - - replace - - move - - copy - type: string - path: - description: Path contains the JSON-pointer - value that references a location within the - target document where the operation is performed. - The meaning of the value depends on the value - of Op. - type: string - value: - description: Value contains a valid JSON structure. - The meaning of the value depends on the value - of Op, and is NOT taken into account by all - operations. - x-kubernetes-preserve-unknown-fields: true - required: - - op - - path - type: object - type: array - target: - description: Target points to the resources that the - patch document should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that - follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select - resources from. Together with Version and Kind - it is capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources - from. Together with Group and Version it is - capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select - resources from. Together with Group and Kind - it is capable of unambiguously identifying and/or - selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - required: - - patch - - target - type: object - type: array - patchesStrategicMerge: - description: Strategic merge patches, defined as inline - YAML objects. - items: - x-kubernetes-preserve-unknown-fields: true - type: array - type: object - type: object - type: array - releaseName: - description: ReleaseName used for the Helm release. Defaults to a - composition of '[TargetNamespace-]Name'. - maxLength: 53 - minLength: 1 - type: string - rollback: - description: Rollback holds the configuration for Helm rollback actions - for this HelmRelease. - properties: - cleanupOnFail: - description: CleanupOnFail allows deletion of new resources created - during the Helm rollback action when it fails. - type: boolean - disableHooks: - description: DisableHooks prevents hooks from running during the - Helm rollback action. - type: boolean - disableWait: - description: DisableWait disables the waiting for resources to - be ready after a Helm rollback has been performed. - type: boolean - disableWaitForJobs: - description: DisableWaitForJobs disables waiting for jobs to complete - after a Helm rollback has been performed. - type: boolean - force: - description: Force forces resource updates through a replacement - strategy. - type: boolean - recreate: - description: Recreate performs pod restarts for the resource if - applicable. - type: boolean - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation (like Jobs for hooks) during the performance of a - Helm rollback action. Defaults to 'HelmReleaseSpec.Timeout'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - type: object - serviceAccountName: - description: The name of the Kubernetes service account to impersonate - when reconciling this HelmRelease. - type: string - storageNamespace: - description: StorageNamespace used for the Helm storage. Defaults - to the namespace of the HelmRelease. - maxLength: 63 - minLength: 1 - type: string - suspend: - description: Suspend tells the controller to suspend reconciliation - for this HelmRelease, it does not apply to already started reconciliations. - Defaults to false. - type: boolean - targetNamespace: - description: TargetNamespace to target when performing operations - for the HelmRelease. Defaults to the namespace of the HelmRelease. - maxLength: 63 - minLength: 1 - type: string - test: - description: Test holds the configuration for Helm test actions for - this HelmRelease. - properties: - enable: - description: Enable enables Helm test actions for this HelmRelease - after an Helm install or upgrade action has been performed. - type: boolean - ignoreFailures: - description: IgnoreFailures tells the controller to skip remediation - when the Helm tests are run but fail. Can be overwritten for - tests run after install or upgrade actions in 'Install.IgnoreTestFailures' - and 'Upgrade.IgnoreTestFailures'. - type: boolean - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation during the performance of a Helm test action. Defaults - to 'HelmReleaseSpec.Timeout'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - type: object - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation (like Jobs for hooks) during the performance of a Helm - action. Defaults to '5m0s'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - uninstall: - description: Uninstall holds the configuration for Helm uninstall - actions for this HelmRelease. - properties: - disableHooks: - description: DisableHooks prevents hooks from running during the - Helm rollback action. - type: boolean - disableWait: - description: DisableWait disables waiting for all the resources - to be deleted after a Helm uninstall is performed. - type: boolean - keepHistory: - description: KeepHistory tells Helm to remove all associated resources - and mark the release as deleted, but retain the release history. - type: boolean - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation (like Jobs for hooks) during the performance of a - Helm uninstall action. Defaults to 'HelmReleaseSpec.Timeout'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - type: object - upgrade: - description: Upgrade holds the configuration for Helm upgrade actions - for this HelmRelease. - properties: - cleanupOnFail: - description: CleanupOnFail allows deletion of new resources created - during the Helm upgrade action when it fails. - type: boolean - crds: - description: "CRDs upgrade CRDs from the Helm Chart's crds directory - according to the CRD upgrade policy provided here. Valid values - are `Skip`, `Create` or `CreateReplace`. Default is `Skip` and - if omitted CRDs are neither installed nor upgraded. \n Skip: - do neither install nor replace (update) any CRDs. \n Create: - new CRDs are created, existing CRDs are neither updated nor - deleted. \n CreateReplace: new CRDs are created, existing CRDs - are updated (replaced) but not deleted. \n By default, CRDs - are not applied during Helm upgrade action. With this option - users can opt-in to CRD upgrade, which is not (yet) natively - supported by Helm. https://helm.sh/docs/chart_best_practices/custom_resource_definitions." - enum: - - Skip - - Create - - CreateReplace - type: string - disableHooks: - description: DisableHooks prevents hooks from running during the - Helm upgrade action. - type: boolean - disableOpenAPIValidation: - description: DisableOpenAPIValidation prevents the Helm upgrade - action from validating rendered templates against the Kubernetes - OpenAPI Schema. - type: boolean - disableWait: - description: DisableWait disables the waiting for resources to - be ready after a Helm upgrade has been performed. - type: boolean - disableWaitForJobs: - description: DisableWaitForJobs disables waiting for jobs to complete - after a Helm upgrade has been performed. - type: boolean - force: - description: Force forces resource updates through a replacement - strategy. - type: boolean - preserveValues: - description: PreserveValues will make Helm reuse the last release's - values and merge in overrides from 'Values'. Setting this flag - makes the HelmRelease non-declarative. - type: boolean - remediation: - description: Remediation holds the remediation configuration for - when the Helm upgrade action for the HelmRelease fails. The - default is to not perform any action. - properties: - ignoreTestFailures: - description: IgnoreTestFailures tells the controller to skip - remediation when the Helm tests are run after an upgrade - action but fail. Defaults to 'Test.IgnoreFailures'. - type: boolean - remediateLastFailure: - description: RemediateLastFailure tells the controller to - remediate the last failure, when no retries remain. Defaults - to 'false' unless 'Retries' is greater than 0. - type: boolean - retries: - description: Retries is the number of retries that should - be attempted on failures before bailing. Remediation, using - 'Strategy', is performed between each attempt. Defaults - to '0', a negative integer equals to unlimited retries. - type: integer - strategy: - description: Strategy to use for failure remediation. Defaults - to 'rollback'. - enum: - - rollback - - uninstall - type: string - type: object - timeout: - description: Timeout is the time to wait for any individual Kubernetes - operation (like Jobs for hooks) during the performance of a - Helm upgrade action. Defaults to 'HelmReleaseSpec.Timeout'. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - type: object - values: - description: Values holds the values for this Helm release. - x-kubernetes-preserve-unknown-fields: true - valuesFrom: - description: ValuesFrom holds references to resources containing Helm - values for this HelmRelease, and information about how they should - be merged. - items: - description: ValuesReference contains a reference to a resource - containing Helm values, and optionally the key they can be found - at. - properties: - kind: - description: Kind of the values referent, valid values are ('Secret', - 'ConfigMap'). - enum: - - Secret - - ConfigMap - type: string - name: - description: Name of the values referent. Should reside in the - same namespace as the referring resource. - maxLength: 253 - minLength: 1 - type: string - optional: - description: Optional marks this ValuesReference as optional. - When set, a not found error for the values reference is ignored, - but any ValuesKey, TargetPath or transient error will still - result in a reconciliation failure. - type: boolean - targetPath: - description: TargetPath is the YAML dot notation path the value - should be merged at. When set, the ValuesKey is expected to - be a single flat value. Defaults to 'None', which results - in the values getting merged at the root. - maxLength: 250 - pattern: ^([a-zA-Z0-9_\-.\\\/]|\[[0-9]{1,5}\])+$ - type: string - valuesKey: - description: ValuesKey is the data key where the values.yaml - or a specific value can be found at. Defaults to 'values.yaml'. - When set, must be a valid Data Key, consisting of alphanumeric - characters, '-', '_' or '.'. - maxLength: 253 - pattern: ^[\-._a-zA-Z0-9]+$ - type: string - required: - - kind - - name - type: object - type: array - required: - - chart - - interval - type: object - status: - default: - observedGeneration: -1 - description: HelmReleaseStatus defines the observed state of a HelmRelease. - properties: - conditions: - description: Conditions holds the conditions for the HelmRelease. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - failures: - description: Failures is the reconciliation failure count against - the latest desired state. It is reset after a successful reconciliation. - format: int64 - type: integer - helmChart: - description: HelmChart is the namespaced name of the HelmChart resource - created by the controller for the HelmRelease. - type: string - installFailures: - description: InstallFailures is the install failure count against - the latest desired state. It is reset after a successful reconciliation. - format: int64 - type: integer - lastAppliedRevision: - description: LastAppliedRevision is the revision of the last successfully - applied source. - type: string - lastAttemptedRevision: - description: LastAttemptedRevision is the revision of the last reconciliation - attempt. - type: string - lastAttemptedValuesChecksum: - description: LastAttemptedValuesChecksum is the SHA1 checksum of the - values of the last reconciliation attempt. - type: string - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - lastReleaseRevision: - description: LastReleaseRevision is the revision of the last successful - Helm release. - type: integer - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - upgradeFailures: - description: UpgradeFailures is the upgrade failure count against - the latest desired state. It is reset after a successful reconciliation. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: helmrepositories.source.toolkit.fluxcd.io -spec: - group: source.toolkit.fluxcd.io - names: - kind: HelmRepository - listKind: HelmRepositoryList - plural: helmrepositories - shortNames: - - helmrepo - singular: helmrepository - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.url - name: URL - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: HelmRepository is the Schema for the helmrepositories API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: HelmRepositorySpec defines the reference to a Helm repository. - properties: - accessFrom: - description: AccessFrom defines an Access Control List for allowing - cross-namespace references to this object. - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - interval: - description: The interval at which to check the upstream for updates. - type: string - passCredentials: - description: PassCredentials allows the credentials from the SecretRef - to be passed on to a host that does not match the host as defined - in URL. This may be required if the host of the advertised chart - URLs in the index differ from the defined URL. Enabling this should - be done with caution, as it can potentially result in credentials - getting stolen in a MITM-attack. - type: boolean - secretRef: - description: The name of the secret containing authentication credentials - for the Helm repository. For HTTP/S basic auth the secret must contain - username and password fields. For TLS the secret must contain a - certFile and keyFile, and/or caFile fields. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: This flag tells the controller to suspend the reconciliation - of this source. - type: boolean - timeout: - default: 60s - description: The timeout of index downloading, defaults to 60s. - type: string - url: - description: The Helm repository URL, a valid URL contains at least - a protocol and host. - type: string - required: - - interval - - url - type: object - status: - default: - observedGeneration: -1 - description: HelmRepositoryStatus defines the observed state of the HelmRepository. - properties: - artifact: - description: Artifact represents the output of the last successful - repository sync. - properties: - checksum: - description: Checksum is the SHA256 checksum of the artifact. - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of this artifact. - format: date-time - type: string - path: - description: Path is the relative file path of this artifact. - type: string - revision: - description: Revision is a human readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm index timestamp, a Helm chart version, etc. - type: string - url: - description: URL is the HTTP address of this artifact. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the HelmRepository. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - url: - description: URL is the download link for the last index fetched. - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.url - name: URL - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: HelmRepository is the Schema for the helmrepositories API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: HelmRepositorySpec specifies the required configuration to - produce an Artifact for a Helm repository index YAML. - properties: - accessFrom: - description: 'AccessFrom specifies an Access Control List for allowing - cross-namespace references to this object. NOTE: Not implemented, - provisional as of https://github.com/fluxcd/flux2/pull/2092' - properties: - namespaceSelectors: - description: NamespaceSelectors is the list of namespace selectors - to which this ACL applies. Items in this list are evaluated - using a logical OR operation. - items: - description: NamespaceSelector selects the namespaces to which - this ACL applies. An empty map of MatchLabels matches all - namespaces in a cluster. - properties: - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - type: array - required: - - namespaceSelectors - type: object - interval: - description: Interval at which to check the URL for updates. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - passCredentials: - description: PassCredentials allows the credentials from the SecretRef - to be passed on to a host that does not match the host as defined - in URL. This may be required if the host of the advertised chart - URLs in the index differ from the defined URL. Enabling this should - be done with caution, as it can potentially result in credentials - getting stolen in a MITM-attack. - type: boolean - provider: - default: generic - description: Provider used for authentication, can be 'aws', 'azure', - 'gcp' or 'generic'. This field is optional, and only taken into - account if the .spec.type field is set to 'oci'. When not specified, - defaults to 'generic'. - enum: - - generic - - aws - - azure - - gcp - type: string - secretRef: - description: SecretRef specifies the Secret containing authentication - credentials for the HelmRepository. For HTTP/S basic auth the secret - must contain 'username' and 'password' fields. For TLS the secret - must contain a 'certFile' and 'keyFile', and/or 'caFile' fields. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: Suspend tells the controller to suspend the reconciliation - of this HelmRepository. - type: boolean - timeout: - default: 60s - description: Timeout is used for the index fetch operation for an - HTTPS helm repository, and for remote OCI Repository operations - like pulling for an OCI helm repository. Its default value is 60s. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - type: - description: Type of the HelmRepository. When this field is set to "oci", - the URL field value must be prefixed with "oci://". - enum: - - default - - oci - type: string - url: - description: URL of the Helm repository, a valid URL contains at least - a protocol and host. - type: string - required: - - interval - - url - type: object - status: - default: - observedGeneration: -1 - description: HelmRepositoryStatus records the observed state of the HelmRepository. - properties: - artifact: - description: Artifact represents the last successful HelmRepository - reconciliation. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI annotations. - type: object - path: - description: Path is the relative file path of the Artifact. It - can be used to locate the file in the root of the Artifact storage - on the local file system of the controller managing the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the HelmRepository. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation of - the HelmRepository object. - format: int64 - type: integer - url: - description: URL is the dynamic fetch link for the latest Artifact. - It is provided on a "best effort" basis, and using the precise HelmRepositoryStatus.Artifact - data is recommended. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: kustomize-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: kustomizations.kustomize.toolkit.fluxcd.io -spec: - group: kustomize.toolkit.fluxcd.io - names: - kind: Kustomization - listKind: KustomizationList - plural: kustomizations - shortNames: - - ks - singular: kustomization - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - description: Kustomization is the Schema for the kustomizations API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: KustomizationSpec defines the desired state of a kustomization. - properties: - decryption: - description: Decrypt Kubernetes secrets before applying them on the - cluster. - properties: - provider: - description: Provider is the name of the decryption engine. - enum: - - sops - type: string - secretRef: - description: The secret name containing the private OpenPGP keys - used for decryption. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - provider - type: object - dependsOn: - description: DependsOn may contain a meta.NamespacedObjectReference - slice with references to Kustomization resources that must be ready - before this Kustomization can be reconciled. - items: - description: NamespacedObjectReference contains enough information - to locate the referenced Kubernetes resource object in any namespace. - properties: - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, when not specified it - acts as LocalObjectReference. - type: string - required: - - name - type: object - type: array - force: - default: false - description: Force instructs the controller to recreate resources - when patching fails due to an immutable field change. - type: boolean - healthChecks: - description: A list of resources to be included in the health assessment. - items: - description: NamespacedObjectKindReference contains enough information - to locate the typed referenced Kubernetes resource object in any - namespace. - properties: - apiVersion: - description: API version of the referent, if not specified the - Kubernetes preferred version will be used. - type: string - kind: - description: Kind of the referent. - type: string - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, when not specified it - acts as LocalObjectReference. - type: string - required: - - kind - - name - type: object - type: array - images: - description: Images is a list of (image name, new name, new tag or - digest) for changing image names, tags or digests. This can also - be achieved with a patch, but this operator is simpler to specify. - items: - description: Image contains an image name, a new name, a new tag - or digest, which will replace the original name and tag. - properties: - digest: - description: Digest is the value used to replace the original - image tag. If digest is present NewTag value is ignored. - type: string - name: - description: Name is a tag-less image name. - type: string - newName: - description: NewName is the value used to replace the original - name. - type: string - newTag: - description: NewTag is the value used to replace the original - tag. - type: string - required: - - name - type: object - type: array - interval: - description: The interval at which to reconcile the Kustomization. - type: string - kubeConfig: - description: The KubeConfig for reconciling the Kustomization on a - remote cluster. When specified, KubeConfig takes precedence over - ServiceAccountName. - properties: - secretRef: - description: SecretRef holds the name to a secret that contains - a 'value' key with the kubeconfig file as the value. It must - be in the same namespace as the Kustomization. It is recommended - that the kubeconfig is self-contained, and the secret is regularly - updated if credentials such as a cloud-access-token expire. - Cloud specific `cmd-path` auth helpers will not function without - adding binaries and credentials to the Pod that is responsible - for reconciling the Kustomization. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - type: object - patches: - description: Strategic merge and JSON patches, defined as inline YAML - objects, capable of targeting objects based on kind, label and annotation - selectors. - items: - description: Patch contains an inline StrategicMerge or JSON6902 - patch, and the target the patch should be applied to. - properties: - patch: - description: Patch contains an inline StrategicMerge patch or - an inline JSON6902 patch with an array of operation objects. - type: string - target: - description: Target points to the resources that the patch document - should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select resources - from. Together with Version and Kind it is capable of - unambiguously identifying and/or selecting resources. - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources from. - Together with Group and Version it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows the - label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select resources - from. Together with Group and Kind it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - type: object - type: array - patchesJson6902: - description: JSON 6902 patches, defined as inline YAML objects. - items: - description: JSON6902Patch contains a JSON6902 patch and the target - the patch should be applied to. - properties: - patch: - description: Patch contains the JSON6902 patch document with - an array of operation objects. - items: - description: JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4 - properties: - from: - description: From contains a JSON-pointer value that references - a location within the target document where the operation - is performed. The meaning of the value depends on the - value of Op, and is NOT taken into account by all operations. - type: string - op: - description: Op indicates the operation to perform. Its - value MUST be one of "add", "remove", "replace", "move", - "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4 - enum: - - test - - remove - - add - - replace - - move - - copy - type: string - path: - description: Path contains the JSON-pointer value that - references a location within the target document where - the operation is performed. The meaning of the value - depends on the value of Op. - type: string - value: - description: Value contains a valid JSON structure. The - meaning of the value depends on the value of Op, and - is NOT taken into account by all operations. - x-kubernetes-preserve-unknown-fields: true - required: - - op - - path - type: object - type: array - target: - description: Target points to the resources that the patch document - should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select resources - from. Together with Version and Kind it is capable of - unambiguously identifying and/or selecting resources. - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources from. - Together with Group and Version it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows the - label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select resources - from. Together with Group and Kind it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - required: - - patch - - target - type: object - type: array - patchesStrategicMerge: - description: Strategic merge patches, defined as inline YAML objects. - items: - x-kubernetes-preserve-unknown-fields: true - type: array - path: - description: Path to the directory containing the kustomization.yaml - file, or the set of plain YAMLs a kustomization.yaml should be generated - for. Defaults to 'None', which translates to the root path of the - SourceRef. - type: string - postBuild: - description: PostBuild describes which actions to perform on the YAML - manifest generated by building the kustomize overlay. - properties: - substitute: - additionalProperties: - type: string - description: Substitute holds a map of key/value pairs. The variables - defined in your YAML manifests that match any of the keys defined - in the map will be substituted with the set value. Includes - support for bash string replacement functions e.g. ${var:=default}, - ${var:position} and ${var/substring/replacement}. - type: object - substituteFrom: - description: SubstituteFrom holds references to ConfigMaps and - Secrets containing the variables and their values to be substituted - in the YAML manifests. The ConfigMap and the Secret data keys - represent the var names and they must match the vars declared - in the manifests for the substitution to happen. - items: - description: SubstituteReference contains a reference to a resource - containing the variables name and value. - properties: - kind: - description: Kind of the values referent, valid values are - ('Secret', 'ConfigMap'). - enum: - - Secret - - ConfigMap - type: string - name: - description: Name of the values referent. Should reside - in the same namespace as the referring resource. - maxLength: 253 - minLength: 1 - type: string - required: - - kind - - name - type: object - type: array - type: object - prune: - description: Prune enables garbage collection. - type: boolean - retryInterval: - description: The interval at which to retry a previously failed reconciliation. - When not specified, the controller uses the KustomizationSpec.Interval - value to retry failures. - type: string - serviceAccountName: - description: The name of the Kubernetes service account to impersonate - when reconciling this Kustomization. - type: string - sourceRef: - description: Reference of the source where the kustomization file - is. - properties: - apiVersion: - description: API version of the referent - type: string - kind: - description: Kind of the referent - enum: - - GitRepository - - Bucket - type: string - name: - description: Name of the referent - type: string - namespace: - description: Namespace of the referent, defaults to the Kustomization - namespace - type: string - required: - - kind - - name - type: object - suspend: - description: This flag tells the controller to suspend subsequent - kustomize executions, it does not apply to already started executions. - Defaults to false. - type: boolean - targetNamespace: - description: TargetNamespace sets or overrides the namespace in the - kustomization.yaml file. - maxLength: 63 - minLength: 1 - type: string - timeout: - description: Timeout for validation, apply and health checking operations. - Defaults to 'Interval' duration. - type: string - validation: - description: Validate the Kubernetes objects before applying them - on the cluster. The validation strategy can be 'client' (local dry-run), - 'server' (APIServer dry-run) or 'none'. When 'Force' is 'true', - validation will fallback to 'client' if set to 'server' because - server-side validation is not supported in this scenario. - enum: - - none - - client - - server - type: string - required: - - interval - - prune - - sourceRef - type: object - status: - default: - observedGeneration: -1 - description: KustomizationStatus defines the observed state of a kustomization. - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastAppliedRevision: - description: The last successfully applied revision. The revision - format for Git sources is /. - type: string - lastAttemptedRevision: - description: LastAttemptedRevision is the revision of the last reconciliation - attempt. - type: string - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last reconciled generation. - format: int64 - type: integer - snapshot: - description: The last successfully applied revision metadata. - properties: - checksum: - description: The manifests sha1 checksum. - type: string - entries: - description: A list of Kubernetes kinds grouped by namespace. - items: - description: Snapshot holds the metadata of namespaced Kubernetes - objects - properties: - kinds: - additionalProperties: - type: string - description: The list of Kubernetes kinds. - type: object - namespace: - description: The namespace of this entry. - type: string - required: - - kinds - type: object - type: array - required: - - checksum - - entries - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Kustomization is the Schema for the kustomizations API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: KustomizationSpec defines the configuration to calculate - the desired state from a Source using Kustomize. - properties: - components: - description: Components specifies relative paths to specifications - of other Components - items: - type: string - type: array - decryption: - description: Decrypt Kubernetes secrets before applying them on the - cluster. - properties: - provider: - description: Provider is the name of the decryption engine. - enum: - - sops - type: string - secretRef: - description: The secret name containing the private OpenPGP keys - used for decryption. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - provider - type: object - dependsOn: - description: DependsOn may contain a meta.NamespacedObjectReference - slice with references to Kustomization resources that must be ready - before this Kustomization can be reconciled. - items: - description: NamespacedObjectReference contains enough information - to locate the referenced Kubernetes resource object in any namespace. - properties: - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, when not specified it - acts as LocalObjectReference. - type: string - required: - - name - type: object - type: array - force: - default: false - description: Force instructs the controller to recreate resources - when patching fails due to an immutable field change. - type: boolean - healthChecks: - description: A list of resources to be included in the health assessment. - items: - description: NamespacedObjectKindReference contains enough information - to locate the typed referenced Kubernetes resource object in any - namespace. - properties: - apiVersion: - description: API version of the referent, if not specified the - Kubernetes preferred version will be used. - type: string - kind: - description: Kind of the referent. - type: string - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, when not specified it - acts as LocalObjectReference. - type: string - required: - - kind - - name - type: object - type: array - images: - description: Images is a list of (image name, new name, new tag or - digest) for changing image names, tags or digests. This can also - be achieved with a patch, but this operator is simpler to specify. - items: - description: Image contains an image name, a new name, a new tag - or digest, which will replace the original name and tag. - properties: - digest: - description: Digest is the value used to replace the original - image tag. If digest is present NewTag value is ignored. - type: string - name: - description: Name is a tag-less image name. - type: string - newName: - description: NewName is the value used to replace the original - name. - type: string - newTag: - description: NewTag is the value used to replace the original - tag. - type: string - required: - - name - type: object - type: array - interval: - description: The interval at which to reconcile the Kustomization. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - kubeConfig: - description: The KubeConfig for reconciling the Kustomization on a - remote cluster. When used in combination with KustomizationSpec.ServiceAccountName, - forces the controller to act on behalf of that Service Account at - the target cluster. If the --default-service-account flag is set, - its value will be used as a controller level fallback for when KustomizationSpec.ServiceAccountName - is empty. - properties: - secretRef: - description: SecretRef holds the name of a secret that contains - a key with the kubeconfig file as the value. If no key is set, - the key will default to 'value'. It is recommended that the - kubeconfig is self-contained, and the secret is regularly updated - if credentials such as a cloud-access-token expire. Cloud specific - `cmd-path` auth helpers will not function without adding binaries - and credentials to the Pod that is responsible for reconciling - Kubernetes resources. - properties: - key: - description: Key in the Secret, when not specified an implementation-specific - default key is used. - type: string - name: - description: Name of the Secret. - type: string - required: - - name - type: object - required: - - secretRef - type: object - patches: - description: Strategic merge and JSON patches, defined as inline YAML - objects, capable of targeting objects based on kind, label and annotation - selectors. - items: - description: Patch contains an inline StrategicMerge or JSON6902 - patch, and the target the patch should be applied to. - properties: - patch: - description: Patch contains an inline StrategicMerge patch or - an inline JSON6902 patch with an array of operation objects. - type: string - target: - description: Target points to the resources that the patch document - should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select resources - from. Together with Version and Kind it is capable of - unambiguously identifying and/or selecting resources. - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources from. - Together with Group and Version it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows the - label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select resources - from. Together with Group and Kind it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - type: object - type: array - patchesJson6902: - description: 'JSON 6902 patches, defined as inline YAML objects. Deprecated: - Use Patches instead.' - items: - description: JSON6902Patch contains a JSON6902 patch and the target - the patch should be applied to. - properties: - patch: - description: Patch contains the JSON6902 patch document with - an array of operation objects. - items: - description: JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4 - properties: - from: - description: From contains a JSON-pointer value that references - a location within the target document where the operation - is performed. The meaning of the value depends on the - value of Op, and is NOT taken into account by all operations. - type: string - op: - description: Op indicates the operation to perform. Its - value MUST be one of "add", "remove", "replace", "move", - "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4 - enum: - - test - - remove - - add - - replace - - move - - copy - type: string - path: - description: Path contains the JSON-pointer value that - references a location within the target document where - the operation is performed. The meaning of the value - depends on the value of Op. - type: string - value: - description: Value contains a valid JSON structure. The - meaning of the value depends on the value of Op, and - is NOT taken into account by all operations. - x-kubernetes-preserve-unknown-fields: true - required: - - op - - path - type: object - type: array - target: - description: Target points to the resources that the patch document - should be applied to. - properties: - annotationSelector: - description: AnnotationSelector is a string that follows - the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource annotations. - type: string - group: - description: Group is the API group to select resources - from. Together with Version and Kind it is capable of - unambiguously identifying and/or selecting resources. - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - kind: - description: Kind of the API Group to select resources from. - Together with Group and Version it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - labelSelector: - description: LabelSelector is a string that follows the - label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api - It matches with the resource labels. - type: string - name: - description: Name to match resources with. - type: string - namespace: - description: Namespace to select resources from. - type: string - version: - description: Version of the API Group to select resources - from. Together with Group and Kind it is capable of unambiguously - identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md - type: string - type: object - required: - - patch - - target - type: object - type: array - patchesStrategicMerge: - description: 'Strategic merge patches, defined as inline YAML objects. - Deprecated: Use Patches instead.' - items: - x-kubernetes-preserve-unknown-fields: true - type: array - path: - description: Path to the directory containing the kustomization.yaml - file, or the set of plain YAMLs a kustomization.yaml should be generated - for. Defaults to 'None', which translates to the root path of the - SourceRef. - type: string - postBuild: - description: PostBuild describes which actions to perform on the YAML - manifest generated by building the kustomize overlay. - properties: - substitute: - additionalProperties: - type: string - description: Substitute holds a map of key/value pairs. The variables - defined in your YAML manifests that match any of the keys defined - in the map will be substituted with the set value. Includes - support for bash string replacement functions e.g. ${var:=default}, - ${var:position} and ${var/substring/replacement}. - type: object - substituteFrom: - description: SubstituteFrom holds references to ConfigMaps and - Secrets containing the variables and their values to be substituted - in the YAML manifests. The ConfigMap and the Secret data keys - represent the var names and they must match the vars declared - in the manifests for the substitution to happen. - items: - description: SubstituteReference contains a reference to a resource - containing the variables name and value. - properties: - kind: - description: Kind of the values referent, valid values are - ('Secret', 'ConfigMap'). - enum: - - Secret - - ConfigMap - type: string - name: - description: Name of the values referent. Should reside - in the same namespace as the referring resource. - maxLength: 253 - minLength: 1 - type: string - optional: - default: false - description: Optional indicates whether the referenced resource - must exist, or whether to tolerate its absence. If true - and the referenced resource is absent, proceed as if the - resource was present but empty, without any variables - defined. - type: boolean - required: - - kind - - name - type: object - type: array - type: object - prune: - description: Prune enables garbage collection. - type: boolean - retryInterval: - description: The interval at which to retry a previously failed reconciliation. - When not specified, the controller uses the KustomizationSpec.Interval - value to retry failures. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - serviceAccountName: - description: The name of the Kubernetes service account to impersonate - when reconciling this Kustomization. - type: string - sourceRef: - description: Reference of the source where the kustomization file - is. - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: Kind of the referent. - enum: - - OCIRepository - - GitRepository - - Bucket - type: string - name: - description: Name of the referent. - type: string - namespace: - description: Namespace of the referent, defaults to the namespace - of the Kubernetes resource object that contains the reference. - type: string - required: - - kind - - name - type: object - suspend: - description: This flag tells the controller to suspend subsequent - kustomize executions, it does not apply to already started executions. - Defaults to false. - type: boolean - targetNamespace: - description: TargetNamespace sets or overrides the namespace in the - kustomization.yaml file. - maxLength: 63 - minLength: 1 - type: string - timeout: - description: Timeout for validation, apply and health checking operations. - Defaults to 'Interval' duration. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - validation: - description: 'Deprecated: Not used in v1beta2.' - enum: - - none - - client - - server - type: string - wait: - description: Wait instructs the controller to check the health of - all the reconciled resources. When enabled, the HealthChecks are - ignored. Defaults to false. - type: boolean - required: - - interval - - prune - - sourceRef - type: object - status: - default: - observedGeneration: -1 - description: KustomizationStatus defines the observed state of a kustomization. - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - inventory: - description: Inventory contains the list of Kubernetes resource object - references that have been successfully applied. - properties: - entries: - description: Entries of Kubernetes resource object references. - items: - description: ResourceRef contains the information necessary - to locate a resource within a cluster. - properties: - id: - description: ID is the string representation of the Kubernetes - resource object's metadata, in the format '___'. - type: string - v: - description: Version is the API version of the Kubernetes - resource object's kind. - type: string - required: - - id - - v - type: object - type: array - required: - - entries - type: object - lastAppliedRevision: - description: The last successfully applied revision. Equals the Revision - of the applied Artifact from the referenced Source. - type: string - lastAttemptedRevision: - description: LastAttemptedRevision is the revision of the last reconciliation - attempt. - type: string - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last reconciled generation. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: ocirepositories.source.toolkit.fluxcd.io -spec: - group: source.toolkit.fluxcd.io - names: - kind: OCIRepository - listKind: OCIRepositoryList - plural: ocirepositories - shortNames: - - ocirepo - singular: ocirepository - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.url - name: URL - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta2 - schema: - openAPIV3Schema: - description: OCIRepository is the Schema for the ocirepositories API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: OCIRepositorySpec defines the desired state of OCIRepository - properties: - certSecretRef: - description: "CertSecretRef can be given the name of a secret containing - either or both of \n - a PEM-encoded client certificate (`certFile`) - and private key (`keyFile`); - a PEM-encoded CA certificate (`caFile`) - \n and whichever are supplied, will be used for connecting to the - registry. The client cert and key are useful if you are authenticating - with a certificate; the CA cert is useful if you are using a self-signed - server certificate." - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - ignore: - description: Ignore overrides the set of excluded patterns in the - .sourceignore format (which is the same as .gitignore). If not provided, - a default will be used, consult the documentation for your version - to find out what those are. - type: string - insecure: - description: Insecure allows connecting to a non-TLS HTTP container - registry. - type: boolean - interval: - description: The interval at which to check for image updates. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - layerSelector: - description: LayerSelector specifies which layer should be extracted - from the OCI artifact. When not specified, the first layer found - in the artifact is selected. - properties: - mediaType: - description: MediaType specifies the OCI media type of the layer - which should be extracted from the OCI Artifact. The first layer - matching this type is selected. - type: string - operation: - description: Operation specifies how the selected layer should - be processed. By default, the layer compressed content is extracted - to storage. When the operation is set to 'copy', the layer compressed - content is persisted to storage as it is. - enum: - - extract - - copy - type: string - type: object - provider: - default: generic - description: The provider used for authentication, can be 'aws', 'azure', - 'gcp' or 'generic'. When not specified, defaults to 'generic'. - enum: - - generic - - aws - - azure - - gcp - type: string - ref: - description: The OCI reference to pull and monitor for changes, defaults - to the latest tag. - properties: - digest: - description: Digest is the image digest to pull, takes precedence - over SemVer. The value should be in the format 'sha256:'. - type: string - semver: - description: SemVer is the range of tags to pull selecting the - latest within the range, takes precedence over Tag. - type: string - tag: - description: Tag is the image tag to pull, defaults to latest. - type: string - type: object - secretRef: - description: SecretRef contains the secret name containing the registry - login credentials to resolve image metadata. The secret must be - of type kubernetes.io/dockerconfigjson. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - serviceAccountName: - description: 'ServiceAccountName is the name of the Kubernetes ServiceAccount - used to authenticate the image pull if the service account has attached - pull secrets. For more information: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account' - type: string - suspend: - description: This flag tells the controller to suspend the reconciliation - of this source. - type: boolean - timeout: - default: 60s - description: The timeout for remote OCI Repository operations like - pulling, defaults to 60s. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - url: - description: URL is a reference to an OCI artifact repository hosted - on a remote container registry. - pattern: ^oci://.*$ - type: string - verify: - description: Verify contains the secret name containing the trusted - public keys used to verify the signature and specifies which provider - to use to check whether OCI image is authentic. - properties: - provider: - default: cosign - description: Provider specifies the technology used to sign the - OCI Artifact. - enum: - - cosign - type: string - secretRef: - description: SecretRef specifies the Kubernetes Secret containing - the trusted public keys. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - required: - - provider - type: object - required: - - interval - - url - type: object - status: - default: - observedGeneration: -1 - description: OCIRepositoryStatus defines the observed state of OCIRepository - properties: - artifact: - description: Artifact represents the output of the last successful - OCI Repository sync. - properties: - checksum: - description: 'Checksum is the SHA256 checksum of the Artifact - file. Deprecated: use Artifact.Digest instead.' - type: string - digest: - description: Digest is the digest of the file in the form of ':'. - pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ - type: string - lastUpdateTime: - description: LastUpdateTime is the timestamp corresponding to - the last update of the Artifact. - format: date-time - type: string - metadata: - additionalProperties: - type: string - description: Metadata holds upstream information such as OCI annotations. - type: object - path: - description: Path is the relative file path of the Artifact. It - can be used to locate the file in the root of the Artifact storage - on the local file system of the controller managing the Source. - type: string - revision: - description: Revision is a human-readable identifier traceable - in the origin source system. It can be a Git commit SHA, Git - tag, a Helm chart version, etc. - type: string - size: - description: Size is the number of bytes in the file. - format: int64 - type: integer - url: - description: URL is the HTTP address of the Artifact as exposed - by the controller managing the Source. It can be used to retrieve - the Artifact for consumption, e.g. by another controller applying - the Artifact contents. - type: string - required: - - path - - url - type: object - conditions: - description: Conditions holds the conditions for the OCIRepository. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - contentConfigChecksum: - description: "ContentConfigChecksum is a checksum of all the configurations - related to the content of the source artifact: - .spec.ignore - - .spec.layerSelector observed in .status.observedGeneration version - of the object. This can be used to determine if the content configuration - has changed and the artifact needs to be rebuilt. It has the format - of `:`, for example: `sha256:`. \n Deprecated: - Replaced with explicit fields for observed artifact content config - in the status." - type: string - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - observedIgnore: - description: ObservedIgnore is the observed exclusion patterns used - for constructing the source artifact. - type: string - observedLayerSelector: - description: ObservedLayerSelector is the observed layer selector - used for constructing the source artifact. - properties: - mediaType: - description: MediaType specifies the OCI media type of the layer - which should be extracted from the OCI Artifact. The first layer - matching this type is selected. - type: string - operation: - description: Operation specifies how the selected layer should - be processed. By default, the layer compressed content is extracted - to storage. When the operation is set to 'copy', the layer compressed - content is persisted to storage as it is. - enum: - - extract - - copy - type: string - type: object - url: - description: URL is the download link for the artifact output of the - last OCI Repository sync. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: providers.notification.toolkit.fluxcd.io -spec: - group: notification.toolkit.fluxcd.io - names: - kind: Provider - listKind: ProviderList - plural: providers - singular: provider - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Provider is the Schema for the providers API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ProviderSpec defines the desired state of Provider - properties: - address: - description: HTTP/S webhook address of this provider - pattern: ^(http|https):// - type: string - certSecretRef: - description: CertSecretRef can be given the name of a secret containing - a PEM-encoded CA certificate (`caFile`) - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - channel: - description: Alert channel for this provider - type: string - proxy: - description: HTTP/S address of the proxy - pattern: ^(http|https):// - type: string - secretRef: - description: Secret reference containing the provider webhook URL - using "address" as data key - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: This flag tells the controller to suspend subsequent - events handling. Defaults to false. - type: boolean - timeout: - description: Timeout for sending alerts to the provider. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - type: - description: Type of provider - enum: - - slack - - discord - - msteams - - rocket - - generic - - generic-hmac - - github - - gitlab - - bitbucket - - azuredevops - - googlechat - - webex - - sentry - - azureeventhub - - telegram - - lark - - matrix - - opsgenie - - alertmanager - - grafana - - githubdispatch - type: string - username: - description: Bot username for this provider - type: string - required: - - type - type: object - status: - default: - observedGeneration: -1 - description: ProviderStatus defines the observed state of Provider - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the last reconciled generation. - format: int64 - type: integer - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Provider is the Schema for the providers API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ProviderSpec defines the desired state of the Provider. - properties: - address: - description: Address specifies the HTTP/S incoming webhook address - of this Provider. - maxLength: 2048 - pattern: ^(http|https)://.*$ - type: string - certSecretRef: - description: CertSecretRef specifies the Secret containing a PEM-encoded - CA certificate (`caFile`). - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - channel: - description: Channel specifies the destination channel where events - should be posted. - maxLength: 2048 - type: string - interval: - description: Interval at which to reconcile the Provider with its - Secret references. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - proxy: - description: Proxy the HTTP/S address of the proxy server. - maxLength: 2048 - pattern: ^(http|https)://.*$ - type: string - secretRef: - description: SecretRef specifies the Secret containing the authentication - credentials for this Provider. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: Suspend tells the controller to suspend subsequent events - handling for this Provider. - type: boolean - timeout: - description: Timeout for sending alerts to the Provider. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ - type: string - type: - description: Type specifies which Provider implementation to use. - enum: - - slack - - discord - - msteams - - rocket - - generic - - generic-hmac - - github - - gitlab - - gitea - - bitbucket - - azuredevops - - googlechat - - webex - - sentry - - azureeventhub - - telegram - - lark - - matrix - - opsgenie - - alertmanager - - grafana - - githubdispatch - type: string - username: - description: Username specifies the name under which events are posted. - maxLength: 2048 - type: string - required: - - type - type: object - status: - default: - observedGeneration: -1 - description: ProviderStatus defines the observed state of the Provider. - properties: - conditions: - description: Conditions holds the conditions for the Provider. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last reconciled generation. - format: int64 - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: receivers.notification.toolkit.fluxcd.io -spec: - group: notification.toolkit.fluxcd.io - names: - kind: Receiver - listKind: ReceiverList - plural: receivers - singular: receiver - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Receiver is the Schema for the receivers API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ReceiverSpec defines the desired state of Receiver - properties: - events: - description: A list of events to handle, e.g. 'push' for GitHub or - 'Push Hook' for GitLab. - items: - type: string - type: array - resources: - description: A list of resources to be notified about changes. - items: - description: CrossNamespaceObjectReference contains enough information - to let you locate the typed referenced object at cluster level - properties: - apiVersion: - description: API version of the referent - type: string - kind: - description: Kind of the referent - enum: - - Bucket - - GitRepository - - Kustomization - - HelmRelease - - HelmChart - - HelmRepository - - ImageRepository - - ImagePolicy - - ImageUpdateAutomation - - OCIRepository - type: string - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - name: - description: Name of the referent - maxLength: 53 - minLength: 1 - type: string - namespace: - description: Namespace of the referent - maxLength: 53 - minLength: 1 - type: string - required: - - name - type: object - type: array - secretRef: - description: Secret reference containing the token used to validate - the payload authenticity - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: This flag tells the controller to suspend subsequent - events handling. Defaults to false. - type: boolean - type: - description: Type of webhook sender, used to determine the validation - procedure and payload deserialization. - enum: - - generic - - generic-hmac - - github - - gitlab - - bitbucket - - harbor - - dockerhub - - quay - - gcr - - nexus - - acr - type: string - required: - - resources - - type - type: object - status: - default: - observedGeneration: -1 - description: ReceiverStatus defines the observed state of Receiver - properties: - conditions: - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the last observed generation. - format: int64 - type: integer - url: - description: Generated webhook URL in the format of '/hook/sha256sum(token+name+namespace)'. - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Receiver is the Schema for the receivers API. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ReceiverSpec defines the desired state of the Receiver. - properties: - events: - description: Events specifies the list of event types to handle, e.g. - 'push' for GitHub or 'Push Hook' for GitLab. - items: - type: string - type: array - interval: - description: Interval at which to reconcile the Receiver with its - Secret references. - pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ - type: string - resources: - description: A list of resources to be notified about changes. - items: - description: CrossNamespaceObjectReference contains enough information - to let you locate the typed referenced object at cluster level - properties: - apiVersion: - description: API version of the referent. - type: string - kind: - description: Kind of the referent. - enum: - - Bucket - - GitRepository - - Kustomization - - HelmRelease - - HelmChart - - HelmRepository - - ImageRepository - - ImagePolicy - - ImageUpdateAutomation - - OCIRepository - type: string - matchLabels: - additionalProperties: - type: string - description: MatchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - name: - description: Name of the referent. - maxLength: 53 - minLength: 1 - type: string - namespace: - description: Namespace of the referent. - maxLength: 53 - minLength: 1 - type: string - required: - - name - type: object - type: array - secretRef: - description: SecretRef specifies the Secret containing the token used - to validate the payload authenticity. - properties: - name: - description: Name of the referent. - type: string - required: - - name - type: object - suspend: - description: Suspend tells the controller to suspend subsequent events - handling for this receiver. - type: boolean - type: - description: Type of webhook sender, used to determine the validation - procedure and payload deserialization. - enum: - - generic - - generic-hmac - - github - - gitlab - - bitbucket - - harbor - - dockerhub - - quay - - gcr - - nexus - - acr - type: string - required: - - resources - - type - type: object - status: - default: - observedGeneration: -1 - description: ReceiverStatus defines the observed state of the Receiver. - properties: - conditions: - description: Conditions holds the conditions for the Receiver. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" - properties: - lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. - format: int64 - minimum: 0 - type: integer - reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. - This field may not be empty. - maxLength: 1024 - minLength: 1 - pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ - type: string - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - 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])$ - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - lastHandledReconcileAt: - description: LastHandledReconcileAt holds the value of the most recent - reconcile request value, so a change of the annotation value can - be detected. - type: string - observedGeneration: - description: ObservedGeneration is the last observed generation of - the Receiver object. - format: int64 - type: integer - url: - description: 'URL is the generated incoming webhook address in the - format of ''/hook/sha256sum(token+name+namespace)''. Deprecated: - Replaced by WebhookPath.' - type: string - webhookPath: - description: WebhookPath is the generated incoming webhook address - in the format of '/hook/sha256sum(token+name+namespace)'. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: helm-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: helm-controller - namespace: flux-system ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: kustomize-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: kustomize-controller - namespace: flux-system ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: notification-controller - namespace: flux-system ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: source-controller - namespace: flux-system ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: crd-controller-flux-system -rules: -- apiGroups: - - source.toolkit.fluxcd.io - resources: - - '*' - verbs: - - '*' -- apiGroups: - - kustomize.toolkit.fluxcd.io - resources: - - '*' - verbs: - - '*' -- apiGroups: - - helm.toolkit.fluxcd.io - resources: - - '*' - verbs: - - '*' -- apiGroups: - - notification.toolkit.fluxcd.io - resources: - - '*' - verbs: - - '*' -- apiGroups: - - image.toolkit.fluxcd.io - resources: - - '*' - verbs: - - '*' -- apiGroups: - - "" - resources: - - namespaces - - secrets - - configmaps - - serviceaccounts - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - events - verbs: - - create - - patch -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- apiGroups: - - "" - resources: - - configmaps/status - verbs: - - get - - update - - patch -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - list - - watch - - create - - update - - patch - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - rbac.authorization.k8s.io/aggregate-to-admin: "true" - rbac.authorization.k8s.io/aggregate-to-edit: "true" - name: flux-edit-flux-system -rules: -- apiGroups: - - notification.toolkit.fluxcd.io - - source.toolkit.fluxcd.io - - helm.toolkit.fluxcd.io - - image.toolkit.fluxcd.io - - kustomize.toolkit.fluxcd.io - resources: - - '*' - verbs: - - create - - delete - - deletecollection - - patch - - update ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - rbac.authorization.k8s.io/aggregate-to-admin: "true" - rbac.authorization.k8s.io/aggregate-to-edit: "true" - rbac.authorization.k8s.io/aggregate-to-view: "true" - name: flux-view-flux-system -rules: -- apiGroups: - - notification.toolkit.fluxcd.io - - source.toolkit.fluxcd.io - - helm.toolkit.fluxcd.io - - image.toolkit.fluxcd.io - - kustomize.toolkit.fluxcd.io - resources: - - '*' - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: cluster-reconciler-flux-system -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- kind: ServiceAccount - name: kustomize-controller - namespace: flux-system -- kind: ServiceAccount - name: helm-controller - namespace: flux-system ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: crd-controller-flux-system -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: crd-controller-flux-system -subjects: -- kind: ServiceAccount - name: kustomize-controller - namespace: flux-system -- kind: ServiceAccount - name: helm-controller - namespace: flux-system -- kind: ServiceAccount - name: source-controller - namespace: flux-system -- kind: ServiceAccount - name: notification-controller - namespace: flux-system -- kind: ServiceAccount - name: image-reflector-controller - namespace: flux-system -- kind: ServiceAccount - name: image-automation-controller - namespace: flux-system ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: notification-controller - namespace: flux-system -spec: - ports: - - name: http - port: 80 - protocol: TCP - targetPort: http - selector: - app: notification-controller - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: source-controller - namespace: flux-system -spec: - ports: - - name: http - port: 80 - protocol: TCP - targetPort: http - selector: - app: source-controller - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: webhook-receiver - namespace: flux-system -spec: - ports: - - name: http - port: 80 - protocol: TCP - targetPort: http-webhook - selector: - app: notification-controller - type: ClusterIP ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: helm-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: helm-controller - namespace: flux-system -spec: - replicas: 1 - selector: - matchLabels: - app: helm-controller - template: - metadata: - annotations: - prometheus.io/port: "8080" - prometheus.io/scrape: "true" - labels: - app: helm-controller - spec: - containers: - - args: - - --events-addr=http://notification-controller.flux-system.svc.cluster.local./ - - --watch-all-namespaces=true - - --log-level=info - - --log-encoding=json - - --enable-leader-election - env: - - name: RUNTIME_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - image: ghcr.io/fluxcd/helm-controller:v0.31.2 - imagePullPolicy: IfNotPresent - livenessProbe: - httpGet: - path: /healthz - port: healthz - name: manager - ports: - - containerPort: 8080 - name: http-prom - protocol: TCP - - containerPort: 9440 - name: healthz - protocol: TCP - readinessProbe: - httpGet: - path: /readyz - port: healthz - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 100m - memory: 64Mi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: temp - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 1337 - serviceAccountName: helm-controller - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: temp ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: kustomize-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: kustomize-controller - namespace: flux-system -spec: - replicas: 1 - selector: - matchLabels: - app: kustomize-controller - template: - metadata: - annotations: - prometheus.io/port: "8080" - prometheus.io/scrape: "true" - labels: - app: kustomize-controller - spec: - containers: - - args: - - --events-addr=http://notification-controller.flux-system.svc.cluster.local./ - - --watch-all-namespaces=true - - --log-level=info - - --log-encoding=json - - --enable-leader-election - env: - - name: RUNTIME_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - image: ghcr.io/fluxcd/kustomize-controller:v0.35.1 - imagePullPolicy: IfNotPresent - livenessProbe: - httpGet: - path: /healthz - port: healthz - name: manager - ports: - - containerPort: 8080 - name: http-prom - protocol: TCP - - containerPort: 9440 - name: healthz - protocol: TCP - readinessProbe: - httpGet: - path: /readyz - port: healthz - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 100m - memory: 64Mi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: temp - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 1337 - serviceAccountName: kustomize-controller - terminationGracePeriodSeconds: 60 - volumes: - - emptyDir: {} - name: temp ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: notification-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: notification-controller - namespace: flux-system -spec: - replicas: 1 - selector: - matchLabels: - app: notification-controller - template: - metadata: - annotations: - prometheus.io/port: "8080" - prometheus.io/scrape: "true" - labels: - app: notification-controller - spec: - containers: - - args: - - --watch-all-namespaces=true - - --log-level=info - - --log-encoding=json - - --enable-leader-election - env: - - name: RUNTIME_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - image: ghcr.io/fluxcd/notification-controller:v0.33.0 - imagePullPolicy: IfNotPresent - livenessProbe: - httpGet: - path: /healthz - port: healthz - name: manager - ports: - - containerPort: 9090 - name: http - protocol: TCP - - containerPort: 9292 - name: http-webhook - protocol: TCP - - containerPort: 8080 - name: http-prom - protocol: TCP - - containerPort: 9440 - name: healthz - protocol: TCP - readinessProbe: - httpGet: - path: /readyz - port: healthz - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 100m - memory: 64Mi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: temp - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 1337 - serviceAccountName: notification-controller - terminationGracePeriodSeconds: 10 - volumes: - - emptyDir: {} - name: temp ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: source-controller - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - control-plane: controller - name: source-controller - namespace: flux-system -spec: - replicas: 1 - selector: - matchLabels: - app: source-controller - strategy: - type: Recreate - template: - metadata: - annotations: - prometheus.io/port: "8080" - prometheus.io/scrape: "true" - labels: - app: source-controller - spec: - containers: - - args: - - --events-addr=http://notification-controller.flux-system.svc.cluster.local./ - - --watch-all-namespaces=true - - --log-level=info - - --log-encoding=json - - --enable-leader-election - - --storage-path=/data - - --storage-adv-addr=source-controller.$(RUNTIME_NAMESPACE).svc.cluster.local. - env: - - name: RUNTIME_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: TUF_ROOT - value: /tmp/.sigstore - image: ghcr.io/fluxcd/source-controller:v0.36.1 - imagePullPolicy: IfNotPresent - livenessProbe: - httpGet: - path: /healthz - port: healthz - name: manager - ports: - - containerPort: 9090 - name: http - protocol: TCP - - containerPort: 8080 - name: http-prom - protocol: TCP - - containerPort: 9440 - name: healthz - protocol: TCP - readinessProbe: - httpGet: - path: / - port: http - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 50m - memory: 64Mi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /data - name: data - - mountPath: /tmp - name: tmp - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 1337 - serviceAccountName: source-controller - terminationGracePeriodSeconds: 10 - volumes: - - emptyDir: {} - name: data - - emptyDir: {} - name: tmp ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: allow-egress - namespace: flux-system -spec: - egress: - - {} - ingress: - - from: - - podSelector: {} - podSelector: {} - policyTypes: - - Ingress - - Egress ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: allow-scraping - namespace: flux-system -spec: - ingress: - - from: - - namespaceSelector: {} - ports: - - port: 8080 - protocol: TCP - podSelector: {} - policyTypes: - - Ingress ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - labels: - app.kubernetes.io/instance: flux-system - app.kubernetes.io/part-of: flux - app.kubernetes.io/version: v0.41.2 - name: allow-webhooks - namespace: flux-system -spec: - ingress: - - from: - - namespaceSelector: {} - podSelector: - matchLabels: - app: notification-controller - policyTypes: - - Ingress diff --git a/clusters/staging/flux-system/gotk-sync.yaml b/clusters/staging/flux-system/gotk-sync.yaml deleted file mode 100644 index e11a28f38..000000000 --- a/clusters/staging/flux-system/gotk-sync.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# This manifest was generated by flux. DO NOT EDIT. ---- -apiVersion: source.toolkit.fluxcd.io/v1beta2 -kind: GitRepository -metadata: - name: flux-system - namespace: flux-system -spec: - interval: 1h0m0s - ref: - branch: main - secretRef: - name: flux-system - url: ssh://git@github.com/PingCAP-QE/ee-ops ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: flux-system - namespace: flux-system -spec: - interval: 10m0s - path: ./clusters/staging - prune: true - sourceRef: - kind: GitRepository - name: flux-system diff --git a/clusters/staging/flux-system/kustomization.yaml b/clusters/staging/flux-system/kustomization.yaml deleted file mode 100644 index f5bac22ec..000000000 --- a/clusters/staging/flux-system/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- gotk-components.yaml -- gotk-sync.yaml -- notification.yaml diff --git a/clusters/staging/flux-system/notification.yaml b/clusters/staging/flux-system/notification.yaml deleted file mode 100644 index 8dba60489..000000000 --- a/clusters/staging/flux-system/notification.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Provider -metadata: - name: lark - namespace: flux-system -spec: - type: lark - secretRef: - name: lark-token ---- -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Provider -metadata: - name: lark-error - namespace: flux-system -spec: - type: lark - secretRef: - name: lark-token-error ---- -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Alert -metadata: - name: lark - namespace: flux-system -spec: - summary: "Staging cluster GitOps notify" - providerRef: - name: lark - eventSeverity: info - eventSources: - - kind: GitRepository - name: '*' - - kind: Kustomization - name: '*' - - kind: HelmRelease - name: '*' ---- -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Alert -metadata: - name: lark-error - namespace: flux-system -spec: - summary: "Staging cluster GitOps alert" - providerRef: - name: lark-error - eventSeverity: error - eventSources: - - kind: Kustomization - name: '*' - - kind: HelmRelease - name: '*' diff --git a/clusters/staging/infrastructure.yaml b/clusters/staging/infrastructure.yaml deleted file mode 100644 index bfa61c8e3..000000000 --- a/clusters/staging/infrastructure.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: infrastructure - namespace: flux-system -spec: - interval: 10m0s - sourceRef: - kind: GitRepository - name: flux-system - path: ./infrastructure/staging - prune: true diff --git a/infrastructure/staging/OWNERS b/infrastructure/staging/OWNERS deleted file mode 100644 index 012317d88..000000000 --- a/infrastructure/staging/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -labels: - - env/staging diff --git a/infrastructure/staging/kustomization.yaml b/infrastructure/staging/kustomization.yaml deleted file mode 100644 index c1ea9d1c0..000000000 --- a/infrastructure/staging/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - ../_base - - nginx - - monitoring - - rook-ceph diff --git a/infrastructure/staging/monitoring/kustomization.yaml b/infrastructure/staging/monitoring/kustomization.yaml deleted file mode 100644 index f474c8c8e..000000000 --- a/infrastructure/staging/monitoring/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - operator.yaml - - stack.yaml diff --git a/infrastructure/staging/monitoring/operator.yaml b/infrastructure/staging/monitoring/operator.yaml deleted file mode 100644 index 05cd404ee..000000000 --- a/infrastructure/staging/monitoring/operator.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prometheus-operator - namespace: flux-system -spec: - interval: 24h - path: ./manifests/setup - prune: true - sourceRef: - kind: GitRepository - name: kube-prometheus diff --git a/infrastructure/staging/monitoring/stack.yaml b/infrastructure/staging/monitoring/stack.yaml deleted file mode 100644 index 01257f3d5..000000000 --- a/infrastructure/staging/monitoring/stack.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 -kind: Kustomization -metadata: - name: prometheus-stack - namespace: flux-system -spec: - dependsOn: - - name: prometheus-operator - interval: 24h - path: ./manifests - prune: true - sourceRef: - kind: GitRepository - name: kube-prometheus - patches: - - patch: | - apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRole - metadata: - name: prometheus-k8s - rules: - - apiGroups: - - "" - resources: - - nodes - - nodes/metrics - - services - - endpoints - - pods - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: - - get - - list - - watch - - nonResourceURLs: - - /metrics - verbs: - - get - target: - kind: ClusterRole - labelSelector: >- - app.kubernetes.io/component=prometheus, - app.kubernetes.io/name=prometheus, - app.kubernetes.io/part-of=kube-prometheus - \ No newline at end of file diff --git a/infrastructure/staging/nginx/kustomization.yaml b/infrastructure/staging/nginx/kustomization.yaml deleted file mode 100644 index cb08b0dbe..000000000 --- a/infrastructure/staging/nginx/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - namespace.yaml - - release.yaml diff --git a/infrastructure/staging/nginx/namespace.yaml b/infrastructure/staging/nginx/namespace.yaml deleted file mode 100644 index 269834219..000000000 --- a/infrastructure/staging/nginx/namespace.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: nginx \ No newline at end of file diff --git a/infrastructure/staging/nginx/release.yaml b/infrastructure/staging/nginx/release.yaml deleted file mode 100644 index 3760a3d28..000000000 --- a/infrastructure/staging/nginx/release.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: ingress-nginx - namespace: flux-system -spec: - releaseName: ingress-nginx - targetNamespace: nginx - chart: - spec: - chart: ingress-nginx - sourceRef: - kind: HelmRepository - name: ingress-nginx - namespace: flux-system - version: "4.1.2" - interval: 1h0m0s - install: - remediation: - retries: 3 - values: - controller: - service: - type: NodePort - nodePorts: - http: "30080" - https: "30443" - ingressClassResource: - default: true - diff --git a/infrastructure/staging/rook-ceph/kustomization.yaml b/infrastructure/staging/rook-ceph/kustomization.yaml deleted file mode 100644 index b8892ff88..000000000 --- a/infrastructure/staging/rook-ceph/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - namespace.yaml - - release-operator.yaml - - release-cluster.yaml diff --git a/infrastructure/staging/rook-ceph/namespace.yaml b/infrastructure/staging/rook-ceph/namespace.yaml deleted file mode 100644 index 1696c56ee..000000000 --- a/infrastructure/staging/rook-ceph/namespace.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: rook-ceph diff --git a/infrastructure/staging/rook-ceph/release-cluster.yaml b/infrastructure/staging/rook-ceph/release-cluster.yaml deleted file mode 100644 index c9392997a..000000000 --- a/infrastructure/staging/rook-ceph/release-cluster.yaml +++ /dev/null @@ -1,62 +0,0 @@ ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: rook-ceph-cluster - namespace: rook-ceph -spec: - releaseName: rook-ceph-cluster - dependsOn: - - name: rook-ceph - namespace: rook-ceph - chart: - spec: - chart: rook-ceph-cluster - sourceRef: - kind: HelmRepository - name: rook - namespace: flux-system - # renovate: datasource=helm registryUrl=https://charts.rook.io/release depName=rook-ceph-cluster versioning=helm - version: "v1.11.0" - interval: 1h0m0s - install: - remediation: - retries: 3 - values: - operatorNamespace: rook-ceph - toolbox: - enabled: true - monitoring: - enabled: true - createPrometheusRules: true - cephClusterSpec: - dataDirHostPath: /var/lib/rook - dashboard: - enabled: true - ssl: false - storage: - useAllNodes: false - useAllDevices: false - nodes: - - name: "staging-node55" - deviceFilter: "nvme0n1" # 3.7T - config: { osdsPerDevice: "5" } - - name: "staging-node83" - deviceFilter: "nvme0n1" # 1.5T - config: { osdsPerDevice: "2" } - - name: "staging-node90" - deviceFilter: "nvme0n1" # 3.7T - config: { osdsPerDevice: "5" } - configOverride: | - [client] - rbd_cache = true - rbd_cache_policy = writeback - rbd_read_from_replica_policy = balance - rbd_cache_size = 320Mi - rbd_cache_max_dirty = 240Mi - rbd_cache_target_dirty = 160Mi - - [client.rgw.ceph.objectstore.a] - rgw_d3n_l1_local_datacache_enabled = true - rgw_d3n_l1_datacache_persistent_path = "/var/lib/ceph/rgw/ceph-ceph-objectstore/rgw_datacache" - rgw_d3n_l1_datacache_size = 10737418240 diff --git a/infrastructure/staging/rook-ceph/release-operator.yaml b/infrastructure/staging/rook-ceph/release-operator.yaml deleted file mode 100644 index f85bbf564..000000000 --- a/infrastructure/staging/rook-ceph/release-operator.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: rook-ceph - namespace: rook-ceph -spec: - releaseName: rook-ceph - chart: - spec: - chart: rook-ceph - sourceRef: - kind: HelmRepository - name: rook - namespace: flux-system - # renovate: datasource=helm registryUrl=https://charts.rook.io/release depName=rook-ceph versioning=helm - version: "v1.11.0" - interval: 1h0m0s - install: - remediation: - retries: 3 - values: - monitoring: - enabled: true - resources: - limits: - cpu: 4 - memory: 8Gi - requests: - cpu: 1 - memory: 1Gi - logLevel: DEBUG