## Summary - Upgrade External Secrets Operator from v1.3.2 (helm-chart-2.0.0) to v2.2.0 - Migrate from Helm chart deployment to static kustomize manifests, matching the repo's kustomize-first pattern - Merge separate `-config` ArgoCD apps into the main operator apps (6 → 4 apps) - Clean up Helm-specific labels (`helm.sh/chart`, `managed-by: Helm`) - Update README example from v1beta1 to v1 API ## Breaking changes assessment Low risk — v2.0.0 removed Alibaba and Device42 providers (we use neither). No templating changes affect us. All ExternalSecrets already use v1 API. ## Deployment steps 1. Sync CRDs first on both clusters (new CRD version) 2. Sync operator apps (now kustomize-based) 3. Verify ClusterSecretStore and all ExternalSecrets are healthy 4. Delete orphaned config apps: `argocd app delete external-secrets-config` and `-config-ringtail` 5. `mise run services-check` Reviewed-on: #312
445 lines
9.8 KiB
YAML
445 lines
9.8 KiB
YAML
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: external-secrets-cert-controller
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets-cert-controller
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rules:
|
|
- apiGroups:
|
|
- "apiextensions.k8s.io"
|
|
resources:
|
|
- "customresourcedefinitions"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- "admissionregistration.k8s.io"
|
|
resources:
|
|
- "validatingwebhookconfigurations"
|
|
verbs:
|
|
- "list"
|
|
- "watch"
|
|
- "get"
|
|
- apiGroups:
|
|
- "admissionregistration.k8s.io"
|
|
resources:
|
|
- "validatingwebhookconfigurations"
|
|
resourceNames:
|
|
- "secretstore-validate"
|
|
- "externalsecret-validate"
|
|
verbs:
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "endpoints"
|
|
verbs:
|
|
- "list"
|
|
- "get"
|
|
- "watch"
|
|
- apiGroups:
|
|
- "discovery.k8s.io"
|
|
resources:
|
|
- "endpointslices"
|
|
verbs:
|
|
- "list"
|
|
- "get"
|
|
- "watch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "events"
|
|
verbs:
|
|
- "create"
|
|
- "patch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "secrets"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- "coordination.k8s.io"
|
|
resources:
|
|
- "leases"
|
|
verbs:
|
|
- "get"
|
|
- "create"
|
|
- "update"
|
|
- "patch"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: external-secrets-controller
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rules:
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "secretstores"
|
|
- "clustersecretstores"
|
|
- "externalsecrets"
|
|
- "clusterexternalsecrets"
|
|
- "pushsecrets"
|
|
- "clusterpushsecrets"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "externalsecrets"
|
|
- "externalsecrets/status"
|
|
- "externalsecrets/finalizers"
|
|
- "secretstores"
|
|
- "secretstores/status"
|
|
- "secretstores/finalizers"
|
|
- "clustersecretstores"
|
|
- "clustersecretstores/status"
|
|
- "clustersecretstores/finalizers"
|
|
- "clusterexternalsecrets"
|
|
- "clusterexternalsecrets/status"
|
|
- "clusterexternalsecrets/finalizers"
|
|
- "pushsecrets"
|
|
- "pushsecrets/status"
|
|
- "pushsecrets/finalizers"
|
|
- "clusterpushsecrets"
|
|
- "clusterpushsecrets/status"
|
|
- "clusterpushsecrets/finalizers"
|
|
verbs:
|
|
- "get"
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- "generators.external-secrets.io"
|
|
resources:
|
|
- "generatorstates"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- "create"
|
|
- "update"
|
|
- "patch"
|
|
- "delete"
|
|
- "deletecollection"
|
|
- apiGroups:
|
|
- "generators.external-secrets.io"
|
|
resources:
|
|
- "acraccesstokens"
|
|
- "cloudsmithaccesstokens"
|
|
- "clustergenerators"
|
|
- "ecrauthorizationtokens"
|
|
- "fakes"
|
|
- "gcraccesstokens"
|
|
- "githubaccesstokens"
|
|
- "quayaccesstokens"
|
|
- "passwords"
|
|
- "sshkeys"
|
|
- "stssessiontokens"
|
|
- "uuids"
|
|
- "vaultdynamicsecrets"
|
|
- "webhooks"
|
|
- "grafanas"
|
|
- "mfas"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "serviceaccounts"
|
|
- "namespaces"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "namespaces"
|
|
verbs:
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "configmaps"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "secrets"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
- "create"
|
|
- "update"
|
|
- "delete"
|
|
- "patch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "serviceaccounts/token"
|
|
verbs:
|
|
- "create"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "events"
|
|
verbs:
|
|
- "create"
|
|
- "patch"
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "externalsecrets"
|
|
verbs:
|
|
- "create"
|
|
- "update"
|
|
- "delete"
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "pushsecrets"
|
|
verbs:
|
|
- "create"
|
|
- "update"
|
|
- "delete"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: external-secrets-view
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
|
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
|
rules:
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "externalsecrets"
|
|
- "secretstores"
|
|
- "clustersecretstores"
|
|
- "pushsecrets"
|
|
- "clusterpushsecrets"
|
|
verbs:
|
|
- "get"
|
|
- "watch"
|
|
- "list"
|
|
- apiGroups:
|
|
- "generators.external-secrets.io"
|
|
resources:
|
|
- "acraccesstokens"
|
|
- "cloudsmithaccesstokens"
|
|
- "clustergenerators"
|
|
- "ecrauthorizationtokens"
|
|
- "fakes"
|
|
- "gcraccesstokens"
|
|
- "githubaccesstokens"
|
|
- "quayaccesstokens"
|
|
- "passwords"
|
|
- "sshkeys"
|
|
- "vaultdynamicsecrets"
|
|
- "webhooks"
|
|
- "grafanas"
|
|
- "generatorstates"
|
|
- "mfas"
|
|
- "uuids"
|
|
verbs:
|
|
- "get"
|
|
- "watch"
|
|
- "list"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: external-secrets-edit
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
|
rules:
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "externalsecrets"
|
|
- "secretstores"
|
|
- "clustersecretstores"
|
|
- "pushsecrets"
|
|
- "clusterpushsecrets"
|
|
verbs:
|
|
- "create"
|
|
- "delete"
|
|
- "deletecollection"
|
|
- "patch"
|
|
- "update"
|
|
- apiGroups:
|
|
- "generators.external-secrets.io"
|
|
resources:
|
|
- "acraccesstokens"
|
|
- "cloudsmithaccesstokens"
|
|
- "clustergenerators"
|
|
- "ecrauthorizationtokens"
|
|
- "fakes"
|
|
- "gcraccesstokens"
|
|
- "githubaccesstokens"
|
|
- "quayaccesstokens"
|
|
- "passwords"
|
|
- "sshkeys"
|
|
- "vaultdynamicsecrets"
|
|
- "webhooks"
|
|
- "grafanas"
|
|
- "generatorstates"
|
|
- "mfas"
|
|
- "uuids"
|
|
verbs:
|
|
- "create"
|
|
- "delete"
|
|
- "deletecollection"
|
|
- "patch"
|
|
- "update"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: external-secrets-servicebindings
|
|
labels:
|
|
servicebinding.io/controller: "true"
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rules:
|
|
- apiGroups:
|
|
- "external-secrets.io"
|
|
resources:
|
|
- "externalsecrets"
|
|
- "pushsecrets"
|
|
verbs:
|
|
- "get"
|
|
- "list"
|
|
- "watch"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: external-secrets-cert-controller
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets-cert-controller
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: external-secrets-cert-controller
|
|
subjects:
|
|
- name: external-secrets-cert-controller
|
|
namespace: external-secrets
|
|
kind: ServiceAccount
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: external-secrets-controller
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: external-secrets-controller
|
|
subjects:
|
|
- name: external-secrets
|
|
namespace: external-secrets
|
|
kind: ServiceAccount
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: external-secrets-leaderelection
|
|
namespace: external-secrets
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "configmaps"
|
|
resourceNames:
|
|
- "external-secrets-controller"
|
|
verbs:
|
|
- "get"
|
|
- "update"
|
|
- "patch"
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- "configmaps"
|
|
verbs:
|
|
- "create"
|
|
- apiGroups:
|
|
- "coordination.k8s.io"
|
|
resources:
|
|
- "leases"
|
|
verbs:
|
|
- "get"
|
|
- "create"
|
|
- "update"
|
|
- "patch"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: external-secrets-leaderelection
|
|
namespace: external-secrets
|
|
labels:
|
|
app.kubernetes.io/name: external-secrets
|
|
app.kubernetes.io/instance: external-secrets
|
|
app.kubernetes.io/version: "v2.2.0"
|
|
app.kubernetes.io/managed-by: kustomize
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: external-secrets-leaderelection
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: external-secrets
|
|
namespace: external-secrets
|