ClusterSecretStore/vault падал с no matches for kind "ClusterSecretStore" in version "external-secrets.io/v1": CR'ы лежали в одном Kustomization с HelmRelease оператора, а CRD'ы ставит сам чарт — они появляются только после установки релиза, то есть позже применения CR'ов из того же набора.
Что меняется
kubernetes/apps/security/external-secrets/ — только оператор: OCIRepository + HelmRelease.
kubernetes/apps/security/external-secrets-stores/ — новый Flux-Kustomization с dependsOn: external-secrets и wait: true, внутри ClusterSecretStore/vault и проверочный ExternalSecret/vault-smoke.
kubectl -n security get hr,ocirepository,pods
kubectl get crd | grep external-secrets
kubectl -n security get clustersecretstore vault -o jsonpath='{.status.conditions[*].reason}'
kubectl -n security get externalsecret vault-smoke -o wide
kubectl -n security get secret vault-smoke -o jsonpath='{.data.username}' | base64 -d
Ожидаемо: CRD'ы externalsecret, clustersecretstore, secretstore, pushsecret и т.д. на месте, у стора Valid, у ExternalSecret Ready=True/SecretSynced, в Secret — demo из Vault (значение кладётся vault kv put kv/demo username=demo password=s3cr3t).
`ClusterSecretStore/vault` падал с `no matches for kind "ClusterSecretStore" in version "external-secrets.io/v1"`: CR'ы лежали в одном Kustomization с HelmRelease оператора, а CRD'ы ставит сам чарт — они появляются только после установки релиза, то есть позже применения CR'ов из того же набора.
## Что меняется
- `kubernetes/apps/security/external-secrets/` — только оператор: OCIRepository + HelmRelease.
- `kubernetes/apps/security/external-secrets-stores/` — новый Flux-Kustomization с `dependsOn: external-secrets` и `wait: true`, внутри `ClusterSecretStore/vault` и проверочный `ExternalSecret/vault-smoke`.
- `kubernetes/apps/security/kustomization.yaml` — добавлен `./external-secrets-stores/ks.yaml`.
## Проверка
```
kubectl -n security get hr,ocirepository,pods
kubectl get crd | grep external-secrets
kubectl -n security get clustersecretstore vault -o jsonpath='{.status.conditions[*].reason}'
kubectl -n security get externalsecret vault-smoke -o wide
kubectl -n security get secret vault-smoke -o jsonpath='{.data.username}' | base64 -d
```
Ожидаемо: CRD'ы `externalsecret`, `clustersecretstore`, `secretstore`, `pushsecret` и т.д. на месте, у стора `Valid`, у ExternalSecret `Ready=True`/`SecretSynced`, в Secret — `demo` из Vault (значение кладётся `vault kv put kv/demo username=demo password=s3cr3t`).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
ClusterSecretStore/vaultпадал сno matches for kind "ClusterSecretStore" in version "external-secrets.io/v1": CR'ы лежали в одном Kustomization с HelmRelease оператора, а CRD'ы ставит сам чарт — они появляются только после установки релиза, то есть позже применения CR'ов из того же набора.Что меняется
kubernetes/apps/security/external-secrets/— только оператор: OCIRepository + HelmRelease.kubernetes/apps/security/external-secrets-stores/— новый Flux-Kustomization сdependsOn: external-secretsиwait: true, внутриClusterSecretStore/vaultи проверочныйExternalSecret/vault-smoke.kubernetes/apps/security/kustomization.yaml— добавлен./external-secrets-stores/ks.yaml.Проверка
Ожидаемо: CRD'ы
externalsecret,clustersecretstore,secretstore,pushsecretи т.д. на месте, у стораValid, у ExternalSecretReady=True/SecretSynced, в Secret —demoиз Vault (значение кладётсяvault kv put kv/demo username=demo password=s3cr3t).