fix: vendor observability charts
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
{{- if and .Values.singleBinary.persistence.enabled .Values.singleBinary.persistence.enableStatefulSetRecreationForSizeChange -}}
|
||||
{{- $newStatefulSet := include (print $.Template.BasePath "/single-binary/statefulset.yaml") . | fromYaml -}}
|
||||
{{- $currentStatefulset := dict -}}
|
||||
{{- if $newStatefulSet -}}
|
||||
{{- $currentStatefulset = lookup $newStatefulSet.apiVersion $newStatefulSet.kind $newStatefulSet.metadata.namespace $newStatefulSet.metadata.name -}}
|
||||
{{- $needsRecreation := false -}}
|
||||
{{- $templates := dict -}}
|
||||
{{- if $currentStatefulset -}}
|
||||
{{- if ne (len $newStatefulSet.spec.volumeClaimTemplates) (len $currentStatefulset.spec.volumeClaimTemplates) -}}
|
||||
{{- $needsRecreation = true -}}
|
||||
{{- end -}}
|
||||
{{- range $index, $newVolumeClaimTemplate := $newStatefulSet.spec.volumeClaimTemplates -}}
|
||||
{{- $currentVolumeClaimTemplateSpec := dict -}}
|
||||
{{- range $oldVolumeClaimTemplate := $currentStatefulset.spec.volumeClaimTemplates -}}
|
||||
{{- if eq $oldVolumeClaimTemplate.metadata.name $newVolumeClaimTemplate.metadata.name -}}
|
||||
{{- $currentVolumeClaimTemplateSpec = $oldVolumeClaimTemplate.spec -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $newVolumeClaimTemplateStorageSize := $newVolumeClaimTemplate.spec.resources.requests.storage -}}
|
||||
{{- if not $currentVolumeClaimTemplateSpec -}}
|
||||
{{- $needsRecreation = true -}}
|
||||
{{- else -}}
|
||||
{{- if ne $newVolumeClaimTemplateStorageSize $currentVolumeClaimTemplateSpec.resources.requests.storage -}}
|
||||
{{- $needsRecreation = true -}}
|
||||
{{- $templates = set $templates $newVolumeClaimTemplate.metadata.name $newVolumeClaimTemplateStorageSize -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if $needsRecreation -}}
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
namespace: {{ $newStatefulSet.metadata.namespace }}
|
||||
labels:
|
||||
{{- include "loki.singleBinaryLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: statefulset-recreate-job
|
||||
annotations:
|
||||
"helm.sh/hook": pre-upgrade
|
||||
"helm.sh/hook-weight": "-5"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
spec:
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "loki.singleBinarySelectorLabels" . | nindent 8 }}
|
||||
app.kubernetes.io/component: statefulset-recreate-job
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
serviceAccountName: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
containers:
|
||||
- name: recreate-statefulset
|
||||
image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" (.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" .Values.global.image) }}
|
||||
command:
|
||||
- delete
|
||||
- statefulset
|
||||
- --namespace={{ $newStatefulSet.metadata.namespace }}
|
||||
- --cascade=orphan
|
||||
- {{ $newStatefulSet.metadata.name }}
|
||||
{{- range $index := until (int $currentStatefulset.spec.replicas) }}
|
||||
{{- range $template, $size := $templates }}
|
||||
- name: patch-pvc-{{ $template }}-{{ $index }}
|
||||
image: {{ include "loki.baseImage" (dict "service" (dict "registry" "docker.io" "repository" "rancher/kubectl" "tag" ($.Capabilities.KubeVersion.Version | default "v1.33.0")) "global" $.Values.global.image) }}
|
||||
command:
|
||||
- patch
|
||||
- pvc
|
||||
- --namespace={{ $newStatefulSet.metadata.namespace }}
|
||||
- {{ printf "%s-%s-%d" $template $newStatefulSet.metadata.name $index }}
|
||||
- --type='json'
|
||||
- '-p=[{"op": "replace", "path": "/spec/resources/requests/storage", "value": "{{ $size }}"}]'
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
namespace: {{ $newStatefulSet.metadata.namespace }}
|
||||
labels:
|
||||
{{- include "loki.singleBinaryLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: statefulset-recreate-job
|
||||
annotations:
|
||||
"helm.sh/hook": pre-upgrade
|
||||
"helm.sh/hook-weight": "-10"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
namespace: {{ $newStatefulSet.metadata.namespace }}
|
||||
labels:
|
||||
{{- include "loki.singleBinaryLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: statefulset-recreate-job
|
||||
annotations:
|
||||
"helm.sh/hook": pre-upgrade
|
||||
"helm.sh/hook-weight": "-10"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
resourceNames:
|
||||
- {{ $newStatefulSet.metadata.name }}
|
||||
verbs:
|
||||
- delete
|
||||
{{- if $templates }}
|
||||
- apiGroups:
|
||||
- v1
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
resourceNames:
|
||||
{{- range $index := until (int $currentStatefulset.spec.replicas) }}
|
||||
{{- range $template := $templates | keys }}
|
||||
- {{ printf "%s-%s-%d" $template $newStatefulSet.metadata.name $index }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
verbs:
|
||||
- patch
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
namespace: {{ $newStatefulSet.metadata.namespace }}
|
||||
labels:
|
||||
{{- include "loki.singleBinaryLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: statefulset-recreate-job
|
||||
annotations:
|
||||
"helm.sh/hook": pre-upgrade
|
||||
"helm.sh/hook-weight": "-10"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
namespace: {{ $newStatefulSet.metadata.namespace }}
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: {{ $newStatefulSet.metadata.name }}-recreate
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
Reference in New Issue
Block a user