From b7ab816c7f4c0386660bb358db9cadef01fc83cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Wed, 15 Jan 2025 09:27:44 +0100 Subject: [PATCH] wip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke Signed-off-by: Jan-Otto Kröpke --- .../charts/crds/files/crds.tar.xz | Bin 0 -> 80044 bytes .../charts/crds/templates/_helpers.tpl | 20 +++ .../crds/templates/upgrade/clusterrole.yaml | 35 +++++ .../templates/upgrade/clusterrolebinding.yaml | 21 +++ .../charts/crds/templates/upgrade/crds.yaml | 15 ++ .../charts/crds/templates/upgrade/job.yaml | 143 ++++++++++++++++++ .../templates/upgrade/serviceaccount.yaml | 20 +++ charts/kube-prometheus-stack/ci/lint.sh | 15 +- .../kube-prometheus-stack/hack/update_crds.sh | 8 + .../templates/_helpers.tpl | 2 +- charts/kube-prometheus-stack/values.yaml | 120 +++++++++++++++ 11 files changed, 397 insertions(+), 2 deletions(-) create mode 100644 charts/kube-prometheus-stack/charts/crds/files/crds.tar.xz create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/_helpers.tpl create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrole.yaml create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrolebinding.yaml create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/upgrade/crds.yaml create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/upgrade/job.yaml create mode 100644 charts/kube-prometheus-stack/charts/crds/templates/upgrade/serviceaccount.yaml diff --git a/charts/kube-prometheus-stack/charts/crds/files/crds.tar.xz b/charts/kube-prometheus-stack/charts/crds/files/crds.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..4c1e865f62493d49656865b3b30853b6f4c3e5fb GIT binary patch literal 80044 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±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 literal 0 HcmV?d00001 diff --git a/charts/kube-prometheus-stack/charts/crds/templates/_helpers.tpl b/charts/kube-prometheus-stack/charts/crds/templates/_helpers.tpl new file mode 100644 index 000000000000..e382875dd6dd --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/_helpers.tpl @@ -0,0 +1,20 @@ +{{/* Shortened name suffixed with upgrade-crd */}} +{{- define "kube-prometheus-stack.upgradeCRD.name" -}} +{{- print (include "kube-prometheus-stack.fullname" .) "-upgrade" -}} +{{- end -}} + +{{- define "kube-prometheus-stack.upgradeCRD.labels" -}} +{{- include "kube-prometheus-stack.labels" . }} +app: {{ template "kube-prometheus-stack.name" . }}-operator +app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus-operator +app.kubernetes.io/component: crds-upgrade +{{- end -}} + +{{/* Create the name of upgradeCRD service account to use */}} +{{- define "kube-prometheus-stack.upgradeCRD.serviceAccountName" -}} +{{- if .Values.upgradeJob.serviceAccount.create -}} + {{ default (include "kube-prometheus-stack.upgradeCRD.name" .) .Values.upgradeJob.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.upgradeJob.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrole.yaml b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrole.yaml new file mode 100644 index 000000000000..2940b84222b1 --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrole.yaml @@ -0,0 +1,35 @@ +{{- if .Values.upgradeJob.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "kube-prometheus-stack.upgradeCRD.name" . }} + namespace: {{ template "kube-prometheus-stack.namespace" . }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + labels: + {{- include "kube-prometheus-stack.upgradeCRD.labels" . | nindent 4 }} +rules: + - apiGroups: + - "apiextensions.k8s.io" + resources: + - "customresourcedefinitions" + verbs: + - create + - patch + - update + - get + - list + resourceNames: + - alertmanagerconfigs.monitoring.coreos.com + - alertmanagers.monitoring.coreos.com + - podmonitors.monitoring.coreos.com + - probes.monitoring.coreos.com + - prometheusagents.monitoring.coreos.com + - prometheuses.monitoring.coreos.com + - prometheusrules.monitoring.coreos.com + - scrapeconfigs.monitoring.coreos.com + - servicemonitors.monitoring.coreos.com + - thanosrulers.monitoring.coreos.com +{{- end }} diff --git a/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrolebinding.yaml b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrolebinding.yaml new file mode 100644 index 000000000000..572c866e569b --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/clusterrolebinding.yaml @@ -0,0 +1,21 @@ +{{- if .Values.upgradeJob.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "kube-prometheus-stack.upgradeCRD.name" . }} + namespace: {{ template "kube-prometheus-stack.namespace" . }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + "helm.sh/hook-weight": "-3" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + labels: + {{- include "kube-prometheus-stack.upgradeCRD.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + namespace: {{ template "kube-prometheus-stack.namespace" . }} + name: {{ template "kube-prometheus-stack.upgradeCRD.serviceAccountName" . }} +roleRef: + kind: ClusterRole + name: {{ template "kube-prometheus-stack.upgradeCRD.name" . }} + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/charts/kube-prometheus-stack/charts/crds/templates/upgrade/crds.yaml b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/crds.yaml new file mode 100644 index 000000000000..c09dd168c907 --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/crds.yaml @@ -0,0 +1,15 @@ +{{- if .Values.upgradeJob.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "kube-prometheus-stack.upgradeCRD.serviceAccountName" . }} + namespace: {{ template "kube-prometheus-stack.namespace" . }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + "helm.sh/hook-weight": "-2" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + labels: + {{- include "kube-prometheus-stack.upgradeCRD.labels" . | nindent 4 }} +binaryData: + crds.tar.xz: {{ .Files.Get "files/crds.tar.xz" | b64enc }} +{{- end }} diff --git a/charts/kube-prometheus-stack/charts/crds/templates/upgrade/job.yaml b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/job.yaml new file mode 100644 index 000000000000..552c9017454a --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/job.yaml @@ -0,0 +1,143 @@ +{{- if .Values.upgradeJob.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ template "kube-prometheus-stack.upgradeCRD.name" . }} + namespace: {{ template "kube-prometheus-stack.namespace" . }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + {{- with .Values.upgradeJob.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "kube-prometheus-stack.upgradeCRD.labels" . | nindent 4 }} + {{- with .Values.upgradeJob.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + backoffLimit: 3 + template: + metadata: + {{- with .Values.upgradeJob.podLabels }} + labels: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.upgradeJob.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- if .Values.global.imagePullSecrets }} + imagePullSecrets: + {{- include "kube-prometheus-stack.imagePullSecrets" . | indent 8 }} + {{- end }} + serviceAccountName: {{ include "kube-prometheus-stack.upgradeCRD.serviceAccountName" . }} + initContainers: + - name: busybox + {{- $busyboxRegistry := .Values.global.imageRegistry | default .Values.upgradeJob.image.busybox.registry -}} + {{- if .Values.upgradeJob.image.sha }} + image: "{{ $busyboxRegistry }}/{{ .Values.upgradeJob.image.busybox.repository }}:{{ .Values.upgradeJob.image.busybox.tag }}@sha256:{{ .Values.upgradeJob.image.busybox.sha }}" + {{- else }} + image: "{{ $busyboxRegistry }}/{{ .Values.upgradeJob.image.busybox.repository }}:{{ .Values.upgradeJob.image.busybox.tag }}" + {{- end }} + imagePullPolicy: "{{ .Values.upgradeJob.image.busybox.pullPolicy }}" + workingDir: /tmp/ + command: + - tar + args: + - xvJf + - /crds/crds.tar.xz + {{- with .Values.upgradeJob.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.upgradeJob.containerSecurityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + - mountPath: /crds/ + name: crds + - mountPath: /tmp/ + name: tmp + {{- with .Values.upgradeJob.extraVolumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.upgradeJob.env }} + env: + {{- range $key, $value := . }} + - name: {{ $key }} + value: {{ $value | quote }} + {{- end }} + {{- end }} + containers: + - name: kubectl + {{- $kubectlRegistry := .Values.global.imageRegistry | default .Values.upgradeJob.image.kubectl.registry -}} + {{- if .Values.upgradeJob.image.kubectl.sha }} + image: "{{ $kubectlRegistry }}/{{ .Values.upgradeJob.image.kubectl.repository }}:{{ .Values.upgradeJob.image.kubectl.tag | default .Capabilities.KubeVersion.Version }}@sha256:{{ .Values.upgradeJob.image.kubectl.sha }}" + {{- else }} + image: "{{ $kubectlRegistry }}/{{ .Values.upgradeJob.image.kubectl.repository }}:{{ .Values.upgradeJob.image.kubectl.tag | default .Capabilities.KubeVersion.Version }}" + {{- end }} + imagePullPolicy: "{{ .Values.upgradeJob.image.kubectl.pullPolicy }}" + command: + - kubectl + args: + - apply + - --server-side + - --recursive + - --filename + - /tmp/ + {{- with .Values.upgradeJob.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.upgradeJob.containerSecurityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + - mountPath: /tmp/ + name: tmp + {{- with .Values.upgradeJob.extraVolumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.upgradeJob.env }} + env: + {{- range $key, $value := . }} + - name: {{ $key }} + value: {{ $value | quote }} + {{- end }} + {{- end }} + volumes: + - name: tmp + emptyDir: {} + - name: crds + configMap: + name: {{ template "kube-prometheus-stack.upgradeCRD.name" . }} + {{- with .Values.upgradeJob.extraVolumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + restartPolicy: OnFailure + {{- with .Values.upgradeJob.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.upgradeJob.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.upgradeJob.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.upgradeJob.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.upgradeJob.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} diff --git a/charts/kube-prometheus-stack/charts/crds/templates/upgrade/serviceaccount.yaml b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/serviceaccount.yaml new file mode 100644 index 000000000000..93e861c6c929 --- /dev/null +++ b/charts/kube-prometheus-stack/charts/crds/templates/upgrade/serviceaccount.yaml @@ -0,0 +1,20 @@ +{{- if and .Values.upgradeJob.enabled .Values.upgradeJob.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +automountServiceAccountToken: {{ .Values.upgradeJob.serviceAccount.automountServiceAccountToken }} +metadata: + name: {{ include "kube-prometheus-stack.upgradeCRD.serviceAccountName" . }} + namespace: {{ template "kube-prometheus-stack.namespace" . }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,pre-rollback + "helm.sh/hook-weight": "-4" + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded + {{- with .Values.upgradeJob.serviceAccount.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "kube-prometheus-stack.upgradeCRD.labels" . | nindent 4 }} + {{- with .Values.upgradeJob.serviceAccount.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/kube-prometheus-stack/ci/lint.sh b/charts/kube-prometheus-stack/ci/lint.sh index f1704f76ab6e..686f9acf0825 100644 --- a/charts/kube-prometheus-stack/ci/lint.sh +++ b/charts/kube-prometheus-stack/ci/lint.sh @@ -8,11 +8,24 @@ set -euo pipefail cd "${SCRIPT_DIR}/../" ./hack/update_crds.sh - if ! git diff "$GITHUB_SHA" --color=always --exit-code; then + if ! git diff "$GITHUB_SHA" --color=always --exit-code -- ':!*.tar.xz'; then echo "Please run ./hack/update_crds.sh" exit 1 fi + cd "${SCRIPT_DIR}/../charts/crds/crds/" + + rm ./*.yaml + + tar xJf "${SCRIPT_DIR}/../charts/crds/files/crds.tar.xz" + + if ! git diff "$GITHUB_SHA" --color=always --exit-code -- ':!*.tar.xz'; then + echo "Suspicious crds.tar.xz. Please run ./hack/update_crds.sh" + exit 1 + fi + + cd "${SCRIPT_DIR}/../" + cd hack export PIP_DISABLE_PIP_VERSION_CHECK=1 diff --git a/charts/kube-prometheus-stack/hack/update_crds.sh b/charts/kube-prometheus-stack/hack/update_crds.sh index 22d7124516c7..a9a47afc8840 100755 --- a/charts/kube-prometheus-stack/hack/update_crds.sh +++ b/charts/kube-prometheus-stack/hack/update_crds.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) if [[ $(uname -s) = "Darwin" ]]; then @@ -36,3 +38,9 @@ for line in "${FILES[@]}"; do exit 1 fi done + +cd "${SCRIPT_DIR}/../charts/crds/crds/" + +# COPYFILE_DISABLE is used to prevent tar from including BSD metadata in the tarball +# ref: https://unix.stackexchange.com/a/282142/433641 +env COPYFILE_DISABLE=1 tar cJf ../files/crds.tar.xz crd-* diff --git a/charts/kube-prometheus-stack/templates/_helpers.tpl b/charts/kube-prometheus-stack/templates/_helpers.tpl index b3a5af703dc2..b6d2e512075a 100644 --- a/charts/kube-prometheus-stack/templates/_helpers.tpl +++ b/charts/kube-prometheus-stack/templates/_helpers.tpl @@ -72,7 +72,6 @@ The longest name that gets created adds and extra 37 characters, so truncation s {{- default (printf "%s-thanos-ruler" (include "kube-prometheus-stack.name" .)) .Values.thanosRuler.name -}} {{- end }} - {{/* Create chart name and version as used by the chart label. */}} {{- define "kube-prometheus-stack.chartref" -}} {{- replace "+" "_" .Chart.Version | printf "%s-%s" .Chart.Name -}} @@ -126,6 +125,7 @@ heritage: {{ $.Release.Service | quote }} {{- else -}} {{ default "default" .Values.alertmanager.serviceAccount.name }} {{- end -}} + {{- end -}} {{/* Create the name of thanosRuler service account to use */}} diff --git a/charts/kube-prometheus-stack/values.yaml b/charts/kube-prometheus-stack/values.yaml index 5097cba32d47..49a2787f0fed 100644 --- a/charts/kube-prometheus-stack/values.yaml +++ b/charts/kube-prometheus-stack/values.yaml @@ -32,6 +32,126 @@ commonLabels: {} ## crds: enabled: true + ## The CRD upgrade job mitigates the limitation of helm not being able to upgrade CRDs. + ## The job will apply the CRDs to the cluster before the operator is deployed, using helm hooks. + ## It deploy a corresponding clusterrole, clusterrolebinding and serviceaccount to apply the CRDs. + ## This feature is in preview, off by default and may change in the future. + upgradeJob: + enabled: false + image: + busybox: + registry: docker.io + repository: busybox + tag: "latest" + sha: "" + pullPolicy: IfNotPresent + kubectl: + registry: registry.k8s.io + repository: kubectl + tag: "" # defaults to the Kubernetes version + sha: "" + pullPolicy: IfNotPresent + + env: {} + ## Define resources requests and limits for single Pods. + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## + resources: {} + + ## Additional volumes + ## + extraVolumes: [] + + ## Additional volume mounts + ## + extraVolumeMounts: [] + + ## Define which Nodes the Pods are scheduled on. + ## ref: https://kubernetes.io/docs/user-guide/node-selection/ + ## + nodeSelector: {} + + ## Assign custom affinity rules to the upgrade-crd job + ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ + ## + affinity: {} + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: kubernetes.io/e2e-az-name + # operator: In + # values: + # - e2e-az1 + # - e2e-az2 + + ## If specified, the pod's tolerations. + ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ + ## + tolerations: [] + # - key: "key" + # operator: "Equal" + # value: "value" + # effect: "NoSchedule" + + ## If specified, the pod's topology spread constraints. + ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + ## + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # whenUnsatisfiable: DoNotSchedule + # labelSelector: + # matchLabels: + # app: alertmanager + + # ## Labels to add to the upgrade-crd job + # ## + labels: {} + + ## Annotations to add to the upgrade-crd job + ## + annotations: {} + + ## Labels to add to the upgrade-crd pod + ## + podLabels: {} + + ## Annotations to add to the upgrade-crd pod + ## + podAnnotations: {} + + ## Service account for upgrade crd job to use. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ + ## + serviceAccount: + create: true + name: "" + annotations: {} + labels: {} + automountServiceAccountToken: true + + ## Container-specific security context configuration + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + ## + containerSecurityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: + - ALL + + ## SecurityContext holds pod-level security attributes and common container settings. + ## This defaults to non root user with uid 1000 and gid 2000. *v1.PodSecurityContext false + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + ## + securityContext: + fsGroup: 65534 + runAsGroup: 65534 + runAsNonRoot: true + runAsUser: 65534 + seccompProfile: + type: RuntimeDefault ## custom Rules to override "for" and "severity" in defaultRules ##