From e8e231942f0449cb7193bfcbc72f5e49358521b2 Mon Sep 17 00:00:00 2001 From: Manabu McCloskey Date: Mon, 17 Jun 2024 10:31:31 -0700 Subject: [PATCH] remove examples directory (#280) Signed-off-by: Manabu McCloskey --- README.md | 35 +- examples/basic/README.md | 18 - examples/basic/package1/app.yaml | 24 - examples/basic/package1/manifests/alpine.yaml | 17 - examples/basic/package2/app.yaml | 22 - examples/basic/package2/app2.yaml | 22 - examples/local-backup/README.md | 169 - examples/local-backup/demo/backup.yaml | 12 - examples/local-backup/demo/restore.yaml | 10 - examples/local-backup/images/bucket.png | Bin 43655 -> 0 bytes examples/local-backup/images/nginx-backup.png | Bin 48584 -> 0 bytes examples/local-backup/kind.yaml | 18 - examples/local-backup/minio.yaml | 33 - examples/local-backup/minio/helm/values.yaml | 23 - .../minio/manifests/minio-pv.yaml | 12 - .../minio/manifests/secret-sync.yaml | 154 - examples/local-backup/velero.yaml | 31 - examples/local-backup/velero/helm/values.yaml | 23 - examples/localstack-integration/README.md | 17 - .../crossplane-provider-localstack.yaml | 22 - .../provider-config-localstack.yaml | 19 - .../localstack-integration/localstack.yaml | 24 - examples/ref-implementation/README.md | 162 - .../ref-implementation/argo-workflows.yaml | 23 - .../manifests/base/install.yaml | 1352 --- .../manifests/base/kustomization.yaml | 2 - .../manifests/dev/external-secret.yaml | 20 - .../argo-workflows/manifests/dev/ingress.yaml | 31 - .../manifests/dev/kustomization.yaml | 8 - .../dev/patches/cm-argo-workflows.yaml | 26 - .../dev/patches/deployment-argo-server.yaml | 28 - .../manifests/dev/sa-admin.yaml | 32 - .../backstage-templates.yaml | 23 - .../skeleton/catalog-info.yaml | 30 - .../entities/app-with-bucket/skeleton/go.mod | 3 - .../kustomize/base/kustomization.yaml | 3 - .../skeleton/kustomize/base/nginx.yaml | 34 - .../skeleton/kustomize/dev/kustomization.yaml | 2 - .../kustomize/prod/kustomization.yaml | 35 - .../entities/app-with-bucket/skeleton/main.go | 5 - .../entities/app-with-bucket/template.yaml | 126 - .../argo-workflows/skeleton/catalog-info.yaml | 22 - .../skeleton/manifests/deployment.yaml | 109 - .../entities/argo-workflows/template.yaml | 62 - .../entities/basic/skeleton/catalog-info.yaml | 18 - .../basic/skeleton/manifests/deployment.yaml | 24 - .../entities/basic/template.yaml | 58 - .../entities/catalog-info.yaml | 10 - examples/ref-implementation/backstage.yaml | 21 - .../backstage/manifests/argocd-secrets.yaml | 77 - .../backstage/manifests/install.yaml | 457 - examples/ref-implementation/codespaces.md | 71 - examples/ref-implementation/coredns.yaml | 21 - .../coredns/manifests/cm-coredns.yaml | 33 - .../crossplane-compositions.yaml | 22 - .../manifests/s3/definition.yaml | 76 - .../manifests/s3/general-purpose.yaml | 80 - .../crossplane-providers.yaml | 22 - .../crossplane-providers/provider-aws.yaml | 6 - .../crossplane-providers/provider-config.yaml | 14 - .../crossplane-providers/provider-secret.yaml | 11 - examples/ref-implementation/crossplane.yaml | 26 - .../ref-implementation/external-secrets.yaml | 23 - .../external-secrets/generate-manifests.sh | 12 - .../external-secrets/manifests/install.yaml | 9277 ----------------- .../external-secrets/values.yaml | 0 .../images/backstage-templates-spark.png | Bin 189054 -> 0 bytes .../images/backstage-templates.png | Bin 185821 -> 0 bytes .../images/basic-deployment.png | Bin 43408 -> 0 bytes .../images/basic-template-flow.png | Bin 90298 -> 0 bytes .../images/codespaces-create.png | Bin 122148 -> 0 bytes .../ref-implementation/images/demo-entity.png | Bin 67245 -> 0 bytes .../images/demo2-entity.png | Bin 127951 -> 0 bytes examples/ref-implementation/images/port.png | Bin 6619 -> 0 bytes .../images/src/basic-deployment.excalidraw | 688 -- examples/ref-implementation/keycloak.yaml | 21 - .../keycloak/manifests/ingress.yaml | 30 - .../keycloak/manifests/install.yaml | 164 - .../keycloak/manifests/secret-gen.yaml | 179 - .../ref-implementation/metric-server.yaml | 29 - examples/ref-implementation/replace.sh | 36 - .../ref-implementation/spark-operator.yaml | 25 - examples/terraform-integrations/README.md | 17 - examples/terraform-integrations/fluxcd.yaml | 37 - .../tofu-controller.yaml | 33 - 85 files changed, 22 insertions(+), 14439 deletions(-) delete mode 100644 examples/basic/README.md delete mode 100644 examples/basic/package1/app.yaml delete mode 100644 examples/basic/package1/manifests/alpine.yaml delete mode 100644 examples/basic/package2/app.yaml delete mode 100644 examples/basic/package2/app2.yaml delete mode 100644 examples/local-backup/README.md delete mode 100644 examples/local-backup/demo/backup.yaml delete mode 100644 examples/local-backup/demo/restore.yaml delete mode 100644 examples/local-backup/images/bucket.png delete mode 100644 examples/local-backup/images/nginx-backup.png delete mode 100644 examples/local-backup/kind.yaml delete mode 100644 examples/local-backup/minio.yaml delete mode 100644 examples/local-backup/minio/helm/values.yaml delete mode 100644 examples/local-backup/minio/manifests/minio-pv.yaml delete mode 100644 examples/local-backup/minio/manifests/secret-sync.yaml delete mode 100644 examples/local-backup/velero.yaml delete mode 100644 examples/local-backup/velero/helm/values.yaml delete mode 100644 examples/localstack-integration/README.md delete mode 100644 examples/localstack-integration/crossplane-provider-localstack.yaml delete mode 100644 examples/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml delete mode 100644 examples/localstack-integration/localstack.yaml delete mode 100644 examples/ref-implementation/README.md delete mode 100644 examples/ref-implementation/argo-workflows.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/base/install.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/base/kustomization.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/external-secret.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/ingress.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/kustomization.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/patches/cm-argo-workflows.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/patches/deployment-argo-server.yaml delete mode 100644 examples/ref-implementation/argo-workflows/manifests/dev/sa-admin.yaml delete mode 100644 examples/ref-implementation/backstage-templates.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/catalog-info.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/go.mod delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/kustomization.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/nginx.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/dev/kustomization.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/prod/kustomization.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/main.go delete mode 100644 examples/ref-implementation/backstage-templates/entities/app-with-bucket/template.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/catalog-info.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/manifests/deployment.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/argo-workflows/template.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/basic/skeleton/catalog-info.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/basic/skeleton/manifests/deployment.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/basic/template.yaml delete mode 100644 examples/ref-implementation/backstage-templates/entities/catalog-info.yaml delete mode 100644 examples/ref-implementation/backstage.yaml delete mode 100644 examples/ref-implementation/backstage/manifests/argocd-secrets.yaml delete mode 100644 examples/ref-implementation/backstage/manifests/install.yaml delete mode 100644 examples/ref-implementation/codespaces.md delete mode 100644 examples/ref-implementation/coredns.yaml delete mode 100644 examples/ref-implementation/coredns/manifests/cm-coredns.yaml delete mode 100644 examples/ref-implementation/crossplane-compositions.yaml delete mode 100644 examples/ref-implementation/crossplane-compositions/manifests/s3/definition.yaml delete mode 100644 examples/ref-implementation/crossplane-compositions/manifests/s3/general-purpose.yaml delete mode 100644 examples/ref-implementation/crossplane-providers.yaml delete mode 100644 examples/ref-implementation/crossplane-providers/provider-aws.yaml delete mode 100644 examples/ref-implementation/crossplane-providers/provider-config.yaml delete mode 100644 examples/ref-implementation/crossplane-providers/provider-secret.yaml delete mode 100644 examples/ref-implementation/crossplane.yaml delete mode 100644 examples/ref-implementation/external-secrets.yaml delete mode 100755 examples/ref-implementation/external-secrets/generate-manifests.sh delete mode 100644 examples/ref-implementation/external-secrets/manifests/install.yaml delete mode 100644 examples/ref-implementation/external-secrets/values.yaml delete mode 100644 examples/ref-implementation/images/backstage-templates-spark.png delete mode 100644 examples/ref-implementation/images/backstage-templates.png delete mode 100644 examples/ref-implementation/images/basic-deployment.png delete mode 100644 examples/ref-implementation/images/basic-template-flow.png delete mode 100644 examples/ref-implementation/images/codespaces-create.png delete mode 100644 examples/ref-implementation/images/demo-entity.png delete mode 100644 examples/ref-implementation/images/demo2-entity.png delete mode 100644 examples/ref-implementation/images/port.png delete mode 100644 examples/ref-implementation/images/src/basic-deployment.excalidraw delete mode 100644 examples/ref-implementation/keycloak.yaml delete mode 100644 examples/ref-implementation/keycloak/manifests/ingress.yaml delete mode 100644 examples/ref-implementation/keycloak/manifests/install.yaml delete mode 100644 examples/ref-implementation/keycloak/manifests/secret-gen.yaml delete mode 100644 examples/ref-implementation/metric-server.yaml delete mode 100755 examples/ref-implementation/replace.sh delete mode 100644 examples/ref-implementation/spark-operator.yaml delete mode 100644 examples/terraform-integrations/README.md delete mode 100644 examples/terraform-integrations/fluxcd.yaml delete mode 100644 examples/terraform-integrations/tofu-controller.yaml diff --git a/README.md b/README.md index 4558823f..29fab318 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ You can obtain credentials for them by running the following command: ### Example commands -**For more advanced use cases, check out the [examples](./examples) directory.** +**For more advanced use cases, check out the [Stacks Repository](https://github.com/cnoe-io/stacks).** You can specify the kubernetes version by using the `--kube-version` flag. Supported versions are available [here](https://github.com/kubernetes-sigs/kind/releases). @@ -157,19 +157,25 @@ This flag expects a directory (local or remote) containing ArgoCD application fi In case of a remote directory, it must be a directory in a git repository, and the URL format must be a [kustomize remote URL format](https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md). -Examples of using custom packages are available in the [example](./examples) directory. -Let's take a look at [this example](examples/basic). This defines two custom package directories to deploy to the cluster. +Examples of using custom packages are available in the [stacks repository](https://github.com/cnoe-io/stacks). +Let's take a look at [this example](https://github.com/cnoe-io/stacks/tree/main/basic). This defines two custom package directories to deploy to the cluster. -To deploy these packages, run the following commands from this repository's root. +To deploy these packages, run the following command. ``` -./idpbuilder create --package-dir examples/basic/package1 --package-dir examples/basic/package2 +idpbuilder create -p https://github.com/cnoe-io/stacks//basic/package1 -p https://github.com/cnoe-io/stacks//basic/package2 + ``` -Alternatively, you can use the URL format: +Alternatively, you can use the local directory format. + +```bash +# clone the stacks repository +git clone https://github.com/cnoe-io/stacks.git +cd stacks +# run idpbuilder against the local directory +idpbuilder create --package-dir basic/package1 --package-dir basic/package2 -``` -./idpbuilder create --package-dir https://github.com/cnoe-io/idpbuilder//examples/basic/package1 --package-dir https://github.com/cnoe-io/idpbuilder//examples/basic/package2 ``` Running this command should create three additional ArgoCD applications in your cluster. @@ -182,9 +188,11 @@ guestbook2 Synced Healthy my-app Synced Healthy ``` -Let's break this down. The [first package directory](examples/basic/package1) defines an application. This corresponds to the `my-app` application above. In this application, we want to deploy manifests from local machine in GitOps way. +Let's break this down. The [first package directory](https://github.com/cnoe-io/stacks/tree/main/basic/package1) defines an application. +This corresponds to the `my-app` application above. In this application, we want to deploy manifests from local machine in GitOps way. -The directory contains an [ArgoCD application file](examples/basic/package1/app.yaml). This is a normal ArgoCD application file except for one field. +The directory contains an [ArgoCD application file](https://github.com/cnoe-io/stacks/blob/main/basic/package1/app.yaml). +This is a normal ArgoCD application file except for one field. ```yaml apiVersion: argoproj.io/v1alpha1 @@ -195,7 +203,8 @@ spec: ``` The `cnoe://` prefix in the `repoURL` field indicates that we want to sync from a local directory. -Values after `cnoe://` is treated as a relative path from this file. In this example, we are instructing idpbuilder to make ArgoCD sync from files in the [manifests directory](examples/basic/package1/manifests). +Values after `cnoe://` is treated as a relative path from this file. In this example, +we are instructing idpbuilder to make ArgoCD sync from files in the [manifests directory](https://github.com/cnoe-io/stacks/tree/main/basic/package1/manifests). As a result the following actions were taken by idpbuilder: 1. Create a Gitea repository. @@ -207,7 +216,7 @@ You can verify this by going to this address in your browser: https://gitea.cnoe ![img.png](docs/images/my-app-repo.png) -This is the repository that corresponds to the [manifests](examples/basic/package1/manifests) folder. +This is the repository that corresponds to the [manifests](https://github.com/cnoe-io/stacks/tree/main/basic/package1/manifests) folder. It contains a file called `alpine.yaml`, synced from the `manifests` directory above. You can also view the updated Application spec by going to this address: https://argocd.cnoe.localtest.me:8443/applications/argocd/my-app @@ -225,7 +234,7 @@ If you'd like to contribute to the project or know the architecture and internal ## Running in Codespaces -1. Create a Codespaces instance. ![img](examples/ref-implementation/images/codespaces-create.png) +1. Create a Codespaces instance. ![img](https://github.com/cnoe-io/stacks/blob/main/ref-implementation/images/codespaces-create.png) 2. Wait for it to be ready. It may take several minutes. 3. Get the latest release of idpbuilder: ```bash diff --git a/examples/basic/README.md b/examples/basic/README.md deleted file mode 100644 index 112b6615..00000000 --- a/examples/basic/README.md +++ /dev/null @@ -1,18 +0,0 @@ - -## Basic Example - -This directory contains basic examples of using the custom package feature. - -### Local manifests - -The [package1 directory](./package1) is an example of a custom package that you have developed locally, and you want test. - -This configuration instructs idpbuilder to: - -1. Create a Gitea repository. -2. Sync the contents of the [manifests](./package1/manifests) directory to the repository. -3. Replace the `spec.Source(s).repoURL` field with the Gitea repository URL. - -### Remote manifests - -The [package2 directory](./package2) is an example for packages available remotely. This is applied directly to the cluster. diff --git a/examples/basic/package1/app.yaml b/examples/basic/package1/app.yaml deleted file mode 100644 index eee5fdbf..00000000 --- a/examples/basic/package1/app.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: my-app - namespace: argocd - labels: - example: basic -spec: - destination: - namespace: my-app - server: "https://kubernetes.default.svc" - source: - # cnoe:// indicates we want to sync from a local directory. - # values after cnoe:// is treated as a relative path from this file. - repoURL: cnoe://manifests - targetRevision: HEAD - # with path set to '.' and cnoe://manifests. we are wanting ArgoCD to sync from the ./manifests directory. - path: "." - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/basic/package1/manifests/alpine.yaml b/examples/basic/package1/manifests/alpine.yaml deleted file mode 100644 index 47a63156..00000000 --- a/examples/basic/package1/manifests/alpine.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: busybox - namespace: argocd - labels: - abc: ded - notused: remove-me -spec: - containers: - - image: alpine:3.18 - command: - - sleep - - "3600" - imagePullPolicy: IfNotPresent - name: busybox - restartPolicy: Always diff --git a/examples/basic/package2/app.yaml b/examples/basic/package2/app.yaml deleted file mode 100644 index d0df5cf5..00000000 --- a/examples/basic/package2/app.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# this is an ordinary ArgoCD application file -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: guestbook - namespace: argocd - labels: - example: basic -spec: - project: default - source: - repoURL: https://github.com/argoproj/argocd-example-apps.git - targetRevision: HEAD - path: guestbook - destination: - server: https://kubernetes.default.svc - namespace: guestbook - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/basic/package2/app2.yaml b/examples/basic/package2/app2.yaml deleted file mode 100644 index c780b8ec..00000000 --- a/examples/basic/package2/app2.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# this is an ordinary ArgoCD application file -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: guestbook2 - namespace: argocd - labels: - example: basic -spec: - project: default - source: - repoURL: https://github.com/argoproj/argocd-example-apps.git - targetRevision: HEAD - path: guestbook - destination: - server: https://kubernetes.default.svc - namespace: guestbook2 - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/local-backup/README.md b/examples/local-backup/README.md deleted file mode 100644 index 8a08dfc2..00000000 --- a/examples/local-backup/README.md +++ /dev/null @@ -1,169 +0,0 @@ -# Local Backup with Velero and Minio - -This example creates a configuration that allows you to back up Kubernetes objects -to your laptop (or wherever you are running idpbuilder from). - -In short, it: -1. Creates a [MinIO](https://min.io/) installation that mounts a local directory. -2. Creates a [Velero](https://velero.io/) installation that targets the in-cluster MinIO storage. - -## Installation - -First, we need to ensure the local cluster is configured to mount a local directory. -This is done through the kind configuration file that you can supply to `idpbuilder`. - -Take a look at the [kind.yaml](./kind.yaml) file. The most relevant part is this bit: - -```yaml -nodes: - - role: control-plane - extraMounts: - - hostPath: /home/ubuntu/backup # replace with your own path - containerPath: /backup -``` - -This instructs Kind to make your machine's directory at `/home/ubuntu/backup` -available at `/backup` for the Kubernetes node. - -You **must** change this value for your own setup. This directory also must exist on your machine. -For example, you may want to change it to `/Users/my-name/backup`. - -Once you've made the change, run this command from the root of this repository. - -```bash -# example: mkdir /Users/my-name/backup -mkdir - -idpbuilder create --kind-config examples/local-backup/kind.yaml --package-dir examples/local-backup/ -``` - -This command: -1. Creates a standard idpbuilder installation, a kind cluster and core packages (ArgoCD, Gitea, and Ingress-Nginx). -2. Creates two custom packages: [MinIO](./minio.yaml) and [Velero](./velero.yaml). - -Once the command exits, you can check the status of installation by going to https://argocd.cnoe.localtest.me:8443/applications. - -You can also check the status with the following command: - -```bash -kubectl get application -n argocd -``` - -## Using it - -Once MinIO and Velero ArgoCD applications are ready, you can start playing with it. - -MinIO console is accessible at [https://minio.cnoe.localtest.me:8443/login](https://minio.cnoe.localtest.me:8443/login) - -You can log in to the console by obtaining credentials: - -```bash -kubectl -n minio get secret root-creds -o go-template='{{ range $key, $value := .data }}{{ printf "%s: %s\n" $key ($value | base64decode) }}{{ end }}' -# example output -# rootPassword: aKKZzLnyry6OYZts17vMTf32H5ghFL4WYgu6bHujm -# rootUser: ge8019yksArb7BICt3MLY9 -``` - -Once you log in, you will notice a bucket is already created for you. Velero will use this bucket to back up kubernetes objects. - -![image](./images/bucket.png) - -### Backup - -Let's try creating a backup of an example application. - -First, create an example nginx app straight from the Velero repository. - -```bash -kubectl apply -f https://raw.githubusercontent.com/vmware-tanzu/velero/main/examples/nginx-app/base.yaml -``` - -Once they are created and running, create a backup. - -```bash -kubectl apply -f examples/local-backup/demo/backup.yaml -``` - -This command is equivalent to this Velero command: `velero backup create nginx-backup --selector app=nginx` - -After you run the command, go back to the MinIO console. You will notice that file objects are created in your bucket. - -![img.png](./images/nginx-backup.png) - -You can also see these files on your local machine. - -```shell -$ ls -lh /home/ubuntu/backup/idpbuilder-backups/backups/nginx-backup/ -total 44K -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-csi-volumesnapshotclasses.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-csi-volumesnapshotcontents.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-csi-volumesnapshots.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-itemoperations.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-logs.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-podvolumebackups.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-resource-list.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-results.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup-volumesnapshots.json.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 nginx-backup.tar.gz -drwxr-xr-x 2 ubuntu ubuntu 4.0K Jan 18 01:25 velero-backup.json -``` - -### Restore - -Let's simulate a cluster loss by deleting the kind cluster forcibly. - -```bash -kind delete clusters localdev && docker system prune -f -``` - -Once it is destroyed, create it again. - -```bash -idpbuilder create --kind-config examples/local-backup/kind.yaml --package-dir examples/local-backup/ -``` - -Make sure everything looks good: - -```bash -$ kubectl get application -n argocd -NAME SYNC STATUS HEALTH STATUS -argocd Synced Healthy -gitea Synced Healthy -minio Synced Healthy -nginx Synced Healthy -velero Synced Healthy -``` - -Let's make sure Velero can validate the MinIO bucket: - -```bash -$ kubectl get backupstoragelocations.velero.io -n velero -NAME PHASE LAST VALIDATED AGE DEFAULT -default Available 4s 52m true -``` - -Looks good. Let's make sure the backup from the destroyed cluster is available. - -```bash -$ kubectl get backup -n velero -NAME AGE -nginx-backup 1m -``` - -Target this backup to restore objects. - -```bash -kubectl apply -f examples/local-backup/demo/restore.yaml -``` - -This command is equivalent to `velero restore create --from-backup nginx-backup`. - -Verify everything was restored: -```bash -$ kubectl get backup -n velero -o custom-columns="NAME":.metadata.name,"PHASE":.status.phase -NAME PHASE -nginx-backup Completed - -$ kubectl get pods -n nginx-example -``` - diff --git a/examples/local-backup/demo/backup.yaml b/examples/local-backup/demo/backup.yaml deleted file mode 100644 index 92c1e1d1..00000000 --- a/examples/local-backup/demo/backup.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# velero backup create nginx-backup --selector app=nginx -apiVersion: velero.io/v1 -kind: Backup -metadata: - name: nginx-backup - namespace: velero -spec: - includedNamespaces: - - 'nginx-example' - labelSelector: - matchLabels: - app: nginx diff --git a/examples/local-backup/demo/restore.yaml b/examples/local-backup/demo/restore.yaml deleted file mode 100644 index 779b9eaa..00000000 --- a/examples/local-backup/demo/restore.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# /velero restore create --from-backup nginx-backup -apiVersion: velero.io/v1 -kind: Restore -metadata: - name: nginx-backup - namespace: velero -spec: - backupName: nginx-backup - includedNamespaces: - - 'nginx-example' diff --git a/examples/local-backup/images/bucket.png b/examples/local-backup/images/bucket.png deleted file mode 100644 index 06038960c46d184bfbeaf843b8e1a58b46efdd22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43655 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 F`X95Vnl%6b diff --git a/examples/local-backup/images/nginx-backup.png b/examples/local-backup/images/nginx-backup.png deleted file mode 100644 index df5eb162726d9df755f3a5b264a9b177868cfc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48584 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 diff --git a/examples/local-backup/kind.yaml b/examples/local-backup/kind.yaml deleted file mode 100644 index 1658179e..00000000 --- a/examples/local-backup/kind.yaml +++ /dev/null @@ -1,18 +0,0 @@ -kind: Cluster -apiVersion: kind.x-k8s.io/v1alpha4 -nodes: -- role: control-plane - image: "kindest/node:v1.27.3" - kubeadmConfigPatches: - - | - kind: InitConfiguration - nodeRegistration: - kubeletExtraArgs: - node-labels: "ingress-ready=true" - extraMounts: - - hostPath: /home/ubuntu/backup # replace with your own path - containerPath: /backup - extraPortMappings: - - containerPort: 443 - hostPort: {{ .Port }} - protocol: TCP diff --git a/examples/local-backup/minio.yaml b/examples/local-backup/minio.yaml deleted file mode 100644 index a10ff750..00000000 --- a/examples/local-backup/minio.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: minio - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - sources: - - repoURL: 'https://charts.min.io' - targetRevision: 5.0.15 - helm: - releaseName: minio - valueFiles: - - $values/helm/values.yaml - chart: minio - - repoURL: cnoe://minio - targetRevision: HEAD - ref: values - - repoURL: cnoe://minio - targetRevision: HEAD - path: "manifests" - destination: - server: "https://kubernetes.default.svc" - namespace: minio - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - selfHeal: true diff --git a/examples/local-backup/minio/helm/values.yaml b/examples/local-backup/minio/helm/values.yaml deleted file mode 100644 index 03d0ccd4..00000000 --- a/examples/local-backup/minio/helm/values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -replicas: 1 -mode: standalone - -resources: - requests: - memory: 128Mi - -persistence: - enabled: true - storageClass: standard - size: 512Mi - volumeName: backup - -buckets: - - name: idpbuilder-backups - -consoleIngress: - enabled: true - ingressClassName: nginx - hosts: - - minio.cnoe.localtest.me - -existingSecret: root-creds diff --git a/examples/local-backup/minio/manifests/minio-pv.yaml b/examples/local-backup/minio/manifests/minio-pv.yaml deleted file mode 100644 index 1ee5c642..00000000 --- a/examples/local-backup/minio/manifests/minio-pv.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: PersistentVolume -metadata: - name: backup -spec: - storageClassName: standard - accessModes: - - ReadWriteOnce - capacity: - storage: 512Mi - hostPath: - path: /backup diff --git a/examples/local-backup/minio/manifests/secret-sync.yaml b/examples/local-backup/minio/manifests/secret-sync.yaml deleted file mode 100644 index 2872bccc..00000000 --- a/examples/local-backup/minio/manifests/secret-sync.yaml +++ /dev/null @@ -1,154 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: secret-sync - namespace: minio - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-20" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: secret-sync - namespace: minio - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-20" -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "create", "update", "patch"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: secret-sync - namespace: minio - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-20" -subjects: - - kind: ServiceAccount - name: secret-sync - namespace: minio -roleRef: - kind: Role - name: secret-sync - apiGroup: rbac.authorization.k8s.io ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: secret-sync - namespace: velero - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-20" -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "create", "update", "patch"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: secret-sync - namespace: velero - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-20" -subjects: - - kind: ServiceAccount - name: secret-sync - namespace: minio -roleRef: - kind: Role - name: secret-sync - apiGroup: rbac.authorization.k8s.io ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: secret-sync - namespace: minio - annotations: - argocd.argoproj.io/hook: PostSync -spec: - template: - metadata: - generateName: secret-sync - spec: - serviceAccountName: secret-sync - restartPolicy: Never - containers: - - name: kubectl - image: docker.io/bitnami/kubectl - command: ["/bin/bash", "-c"] - args: - - | - set -e - kubectl get secrets -n minio root-creds -o json > /tmp/secret - ACCESS=$(jq -r '.data.rootUser | @base64d' /tmp/secret) - SECRET=$(jq -r '.data.rootPassword | @base64d' /tmp/secret) - - echo \ - "apiVersion: v1 - kind: Secret - metadata: - name: secret-key - namespace: velero - type: Opaque - stringData: - aws: | - [default] - aws_access_key_id=${ACCESS} - aws_secret_access_key=${SECRET} - " > /tmp/secret.yaml - - kubectl apply -f /tmp/secret.yaml ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: minio-root-creds - namespace: minio - annotations: - argocd.argoproj.io/hook: Sync - argocd.argoproj.io/sync-wave: "-10" -spec: - template: - metadata: - generateName: minio-root-creds - spec: - serviceAccountName: secret-sync - restartPolicy: Never - containers: - - name: kubectl - image: docker.io/bitnami/kubectl - command: ["/bin/bash", "-c"] - args: - - | - kubectl get secrets -n minio root-creds - if [ $? -eq 0 ]; then - exit 0 - fi - - set -e - - NAME=$(openssl rand -base64 24) - PASS=$(openssl rand -base64 36) - - echo \ - "apiVersion: v1 - kind: Secret - metadata: - name: root-creds - namespace: minio - type: Opaque - stringData: - rootUser: "${NAME}" - rootPassword: "${PASS}" - " > /tmp/secret.yaml - - kubectl apply -f /tmp/secret.yaml diff --git a/examples/local-backup/velero.yaml b/examples/local-backup/velero.yaml deleted file mode 100644 index 318c26a5..00000000 --- a/examples/local-backup/velero.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: velero - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - sources: - - repoURL: 'https://vmware-tanzu.github.io/helm-charts' - targetRevision: 5.2.2 - helm: - releaseName: velero - valueFiles: - - $values/helm/values.yaml - chart: velero - - repoURL: cnoe://velero - targetRevision: HEAD - ref: values - destination: - server: "https://kubernetes.default.svc" - namespace: velero - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - prune: true - selfHeal: true diff --git a/examples/local-backup/velero/helm/values.yaml b/examples/local-backup/velero/helm/values.yaml deleted file mode 100644 index d88b3af7..00000000 --- a/examples/local-backup/velero/helm/values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -resources: - requests: - memory: 128Mi -snapshotsEnabled: false -initContainers: - - name: velero-plugin-for-aws - image: velero/velero-plugin-for-aws:v1.8.2 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins -configuration: - backupStorageLocation: - - name: default - provider: aws - bucket: idpbuilder-backups - credential: - name: secret-key - key: aws - config: - region: minio - s3Url: http://minio.minio.svc.cluster.local:9000 - s3ForcePathStyle: "true" diff --git a/examples/localstack-integration/README.md b/examples/localstack-integration/README.md deleted file mode 100644 index eaf6015f..00000000 --- a/examples/localstack-integration/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Localstack Integration - -Please use the below command to deploy an IDP reference implementation with an Argo application that adds Localstack, as well as integrating with Crossplane. - -```bash -idpbuilder create \ - --use-path-routing \ - --package-dir examples/ref-implementation \ - --package-dir examples/localstack-integration -``` - -As you see above, this add-on to `idpbuilder` has a dependency on the [reference implementation](../ref-implementation/). This command primarily does the following: - -1. Installs `localstack` helmchart as an `argo` application. -2. Adds localstack crossplane ProviderConfig, targetting localstack - -Once the custom package is installed, localstack can be used from the backstage template `app-with-aws-resources`, by changing the `providerConfigName` during the bucket configuration page from `default` to `localstack`. diff --git a/examples/localstack-integration/crossplane-provider-localstack.yaml b/examples/localstack-integration/crossplane-provider-localstack.yaml deleted file mode 100644 index 8403c179..00000000 --- a/examples/localstack-integration/crossplane-provider-localstack.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: crossplane-provider-localstack - namespace: argocd - labels: - example: localstack-integration -spec: - project: default - source: - repoURL: cnoe://crossplane-provider-localstack - targetRevision: HEAD - path: "." - destination: - server: "https://kubernetes.default.svc" - namespace: crossplane-system - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml b/examples/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml deleted file mode 100644 index 78ce7759..00000000 --- a/examples/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: aws.crossplane.io/v1beta1 -kind: ProviderConfig -metadata: - name: localstack - annotations: - argocd.argoproj.io/sync-wave: "20" - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true -spec: - credentials: - source: Secret - secretRef: - namespace: crossplane-system - name: local-secret - key: creds - endpoint: - hostnameImmutable: true - url: - type: Static - static: http://localstack.localstack.svc.cluster.local:4566 diff --git a/examples/localstack-integration/localstack.yaml b/examples/localstack-integration/localstack.yaml deleted file mode 100644 index afeb2c2c..00000000 --- a/examples/localstack-integration/localstack.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: localstack - namespace: argocd - labels: - example: localstack-integration -spec: - project: default - source: - repoURL: https://localstack.github.io/helm-charts - targetRevision: 0.6.12 - chart: localstack - helm: - releaseName: localstack - destination: - server: "https://kubernetes.default.svc" - namespace: localstack - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/ref-implementation/README.md b/examples/ref-implementation/README.md deleted file mode 100644 index 7045274b..00000000 --- a/examples/ref-implementation/README.md +++ /dev/null @@ -1,162 +0,0 @@ -# Reference implementation - -This example creates a local version of the CNOE reference implementation. - -## Prerequisites - -Ensure you have the following tools installed on your computer. - -**Required** - -- [idpbuilder](https://github.com/cnoe-io/idpbuilder/releases/latest): version `0.3.0` or later -- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl): version `1.27` or later -- Your computer should have at least 6 GB RAM allocated to Docker. If you are on Docker Desktop, see [this guide](https://docs.docker.com/desktop/settings/mac/). - -**Optional** - -- AWS credentials: Access Key and secret Key. If you want to create AWS resources in one of examples below. - -## Installation - -**_NOTE:_** -- If you'd like to run this in your web browser through Codespaces, please follow [the instructions here](./codespaces.md) to install instead. - -- _This example assumes that you run the reference implementation with the default port configguration of 8443 for the idpBuilder. -If you happen to configure a different host or port for the idpBuilder, the manifests in the reference example need to be updated -and be configured with the new host and port. you can use the [replace.sh](replace.sh) to change the port as desired prior to applying the manifest as instructed in the command above._ - -Run the following command from the root of this repository. - -```bash -idpbuilder create --use-path-routing --package-dir examples/ref-implementation -``` - -This will take ~6 minutes for everything to come up. To track the progress, you can go to the [ArgoCD UI](https://cnoe.localtest.me:8443/argocd/applications). - -### What was installed? - -1. **Argo Workflows** to enable workflow orchestrations. -2. **Backstage** as the UI for software catalog and templating. Source is available [here](https://github.com/cnoe-io/backstage-app). -3. **Crossplane**, AWS providers, and basic compositions for deploying cloud related resources (needs your credentials for this to work) -4. **External Secrets** to generate secrets and coordinate secrets between applications. -5. **Keycloak** as the identity provider for applications. -6. **Spark Operator** to demonstrate an example Spark workload through Backstage. - -If you don't want to install a package above, you can remove the ArgoCD Application file corresponding to the package you want to remove. -For example, if you want to remove Spark Operator, you can delete [this file](./spark-operator.yaml). - -```bash -# remove spark operator from this installation. -rm examples/ref-implementation/spark-operator.yaml -``` - -The only package that cannot be removed this way is Keycloak because other packages rely on it. - - -#### Accessing UIs -- Argo CD: https://cnoe.localtest.me:8443/argocd -- Argo Workflows: https://cnoe.localtest.me:8443/argo-workflows -- Backstage: https://cnoe.localtest.me:8443/ -- Gitea: https://cnoe.localtest.me:8443/gitea -- Keycloak: https://cnoe.localtest.me:8443/keycloak/admin/master/console/ - -# Using it - -For this example, we will walk through a few demonstrations. Once applications are ready, go to the [backstage URL](https://cnoe.localtest.me:8443). - -Click on the Sign-In button, you will be asked to log into the Keycloak instance. There are two users set up in this -configuration, and their password can be retrieved with the following command: - -```bash -idpbuilder get secrets -``` - -Use the username **`user1`** and the password value given by `USER_PASSWORD` field to login to the backstage instance. -`user1` is an admin user who has access to everything in the cluster, while `user2` is a regular user with limited access. -Both users use the same password retrieved above. - -If you want to create a new user or change existing users: - -1. Go to the [Keycloak UI](https://cnoe.localtest.me:8443/keycloak/admin/master/console/). -Login with the username `cnoe-admin`. Password is the `KEYCLOAK_ADMIN_PASSWORD` field from the command above. -2. Select `cnoe` from the realms drop down menu. -3. Select users tab. - - -## Basic Deployment - -Let's start by deploying a simple application to the cluster through Backstage. - -Click on the `Create...` button on the left, then select the `Create a Basic Deployment` template. - -![img.png](images/backstage-templates.png) - - -In the next screen, type `demo` for the name field, then click Review, then Create. -Once steps run, click the Open In Catalog button to go to the entity page. - -![img.png](images/basic-template-flow.png) - -In the demo entity page, you will notice a ArgoCD overview card associated with this entity. -You can click on the ArgoCD Application name to see more details. - -![img.png](images/demo-entity.png) - -### What just happened? - -1. Backstage created [a git repository](https://cnoe.localtest.me:8443/gitea/giteaAdmin/demo), then pushed templated contents to it. -2. Backstage created [an ArgoCD Application](https://cnoe.localtest.me:8443/argocd/applications/argocd/demo?) and pointed it to the git repository. -3. Backstage registered the application as [a component](https://cnoe.localtest.me:8443/gitea/giteaAdmin/demo/src/branch/main/catalog-info.yaml) in Backstage. -4. ArgoCD deployed the manifests stored in the repo to the cluster. -5. Backstage retrieved application health from ArgoCD API, then displayed it. - -![image.png](images/basic-deployment.png) - - -## Argo Workflows and Spark Operator - -In this example, we will deploy a simple Apache Spark job through Argo Workflows. - -Click on the `Create...` button on the left, then select the `Basic Argo Workflow with a Spark Job` template. - -![img.png](images/backstage-templates-spark.png) - -Type `demo2` for the name field, then click create. You will notice that the Backstage templating steps are very similar to the basic example above. -Click on the Open In Catalog button to go to the entity page. - -![img.png](images/demo2-entity.png) - -Deployment processes are the same as the first example. Instead of deploying a pod, we deployed a workflow to create a Spark job. - -In the entity page, there is a card for Argo Workflows, and it should say running or succeeded. -You can click the name in the card to go to the Argo Workflows UI to view more details about this workflow run. -When prompted to log in, click the login button under single sign on. Argo Workflows is configured to use SSO with Keycloak allowing you to login with the same credentials as Backstage login. - -Note that Argo Workflows are not usually deployed this way. This is just an example to show you how you can integrate workflows, backstage, and spark. - -Back in the entity page, you can view more details about Spark jobs by navigating to the Spark tab. - -## Application with cloud resources. - -Similar to the above, we can deploy an application with cloud resources using Backstage templates. -In this example, we will create an application with a S3 Bucket. - -Choose a template named `App with S3 bucket`, type `demo3` as the name, then choose a region to create this bucket in. - -Once you click the create button, you will have a very similar setup as the basic example. -The only difference is we now have a resource for a S3 Bucket which is managed by Crossplane. - -Note that Bucket is **not** created because Crossplane doesn't have necessary credentials to do so. -If you'd like it to actually create a bucket, update [the credentials secret file](crossplane-providers/provider-secret.yaml), then run `idpbuilder create --package-dir examples/ref-implementation`. - -In this example, we used Crossplane to provision resources, but you can use other cloud resource management tools such as Terraform instead. -Regardless of your tool choice, concepts are the same. We use Backstage as the templating mechanism and UI for users, then use Kubernetes API with GitOps to deploy resources. - -## Notes - -- In these examples, we have used the pattern of creating a new repository for every app, then having ArgoCD deploy it. -This is done for convenience and demonstration purposes only. There are alternative actions that you can use. -For example, you can create a PR to an existing repository, create a repository but not deploy them yet, etc. - -- If Backstage's pipelining and templating mechanisms is too simple, you can use more advanced workflow engines like Tekton or Argo Workflows. - You can invoke them in Backstage templates, then track progress similar to how it was described above. diff --git a/examples/ref-implementation/argo-workflows.yaml b/examples/ref-implementation/argo-workflows.yaml deleted file mode 100644 index 5d588254..00000000 --- a/examples/ref-implementation/argo-workflows.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argo-workflows - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: cnoe://argo-workflows/manifests - targetRevision: HEAD - path: "dev" - destination: - server: "https://kubernetes.default.svc" - namespace: argo - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - selfHeal: true diff --git a/examples/ref-implementation/argo-workflows/manifests/base/install.yaml b/examples/ref-implementation/argo-workflows/manifests/base/install.yaml deleted file mode 100644 index 23f8b247..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/base/install.yaml +++ /dev/null @@ -1,1352 +0,0 @@ -# This is an auto-generated file. DO NOT EDIT -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: clusterworkflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: ClusterWorkflowTemplate - listKind: ClusterWorkflowTemplateList - plural: clusterworkflowtemplates - shortNames: - - clusterwftmpl - - cwft - singular: clusterworkflowtemplate - scope: Cluster - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: cronworkflows.argoproj.io -spec: - group: argoproj.io - names: - kind: CronWorkflow - listKind: CronWorkflowList - plural: cronworkflows - shortNames: - - cwf - - cronwf - singular: cronworkflow - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - status: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workflowartifactgctasks.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowArtifactGCTask - listKind: WorkflowArtifactGCTaskList - plural: workflowartifactgctasks - shortNames: - - wfat - singular: workflowartifactgctask - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - status: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workfloweventbindings.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowEventBinding - listKind: WorkflowEventBindingList - plural: workfloweventbindings - shortNames: - - wfeb - singular: workfloweventbinding - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workflows.argoproj.io -spec: - group: argoproj.io - names: - kind: Workflow - listKind: WorkflowList - plural: workflows - shortNames: - - wf - singular: workflow - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Status of the workflow - jsonPath: .status.phase - name: Status - type: string - - description: When the workflow was started - format: date-time - jsonPath: .status.startedAt - name: Age - type: date - - description: Human readable message indicating details about why the workflow - is in this condition. - jsonPath: .status.message - name: Message - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - status: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true - subresources: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workflowtaskresults.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTaskResult - listKind: WorkflowTaskResultList - plural: workflowtaskresults - singular: workflowtaskresult - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - message: - type: string - metadata: - type: object - outputs: - properties: - artifacts: - items: - properties: - archive: - properties: - none: - type: object - tar: - properties: - compressionLevel: - format: int32 - type: integer - type: object - zip: - type: object - type: object - archiveLogs: - type: boolean - artifactGC: - properties: - podMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - serviceAccountName: - type: string - strategy: - enum: - - "" - - OnWorkflowCompletion - - OnWorkflowDeletion - - Never - type: string - type: object - artifactory: - properties: - passwordSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - url: - type: string - usernameSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - required: - - url - type: object - azure: - properties: - accountKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - blob: - type: string - container: - type: string - endpoint: - type: string - useSDKCreds: - type: boolean - required: - - blob - - container - - endpoint - type: object - deleted: - type: boolean - from: - type: string - fromExpression: - type: string - gcs: - properties: - bucket: - type: string - key: - type: string - serviceAccountKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - required: - - key - type: object - git: - properties: - branch: - type: string - depth: - format: int64 - type: integer - disableSubmodules: - type: boolean - fetch: - items: - type: string - type: array - insecureIgnoreHostKey: - type: boolean - passwordSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - repo: - type: string - revision: - type: string - singleBranch: - type: boolean - sshPrivateKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - usernameSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - required: - - repo - type: object - globalName: - type: string - hdfs: - properties: - addresses: - items: - type: string - type: array - force: - type: boolean - hdfsUser: - type: string - krbCCacheSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - krbConfigConfigMap: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - krbKeytabSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - krbRealm: - type: string - krbServicePrincipalName: - type: string - krbUsername: - type: string - path: - type: string - required: - - path - type: object - http: - properties: - auth: - properties: - basicAuth: - properties: - passwordSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - usernameSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - clientCert: - properties: - clientCertSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - clientKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - oauth2: - properties: - clientIDSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - clientSecretSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - endpointParams: - items: - properties: - key: - type: string - value: - type: string - required: - - key - type: object - type: array - scopes: - items: - type: string - type: array - tokenURLSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - type: object - headers: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - url: - type: string - required: - - url - type: object - mode: - format: int32 - type: integer - name: - type: string - optional: - type: boolean - oss: - properties: - accessKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - bucket: - type: string - createBucketIfNotPresent: - type: boolean - endpoint: - type: string - key: - type: string - lifecycleRule: - properties: - markDeletionAfterDays: - format: int32 - type: integer - markInfrequentAccessAfterDays: - format: int32 - type: integer - type: object - secretKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - securityToken: - type: string - useSDKCreds: - type: boolean - required: - - key - type: object - path: - type: string - raw: - properties: - data: - type: string - required: - - data - type: object - recurseMode: - type: boolean - s3: - properties: - accessKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - bucket: - type: string - caSecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - createBucketIfNotPresent: - properties: - objectLocking: - type: boolean - type: object - encryptionOptions: - properties: - enableEncryption: - type: boolean - kmsEncryptionContext: - type: string - kmsKeyId: - type: string - serverSideCustomerKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - type: object - endpoint: - type: string - insecure: - type: boolean - key: - type: string - region: - type: string - roleARN: - type: string - secretKeySecret: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - useSDKCreds: - type: boolean - type: object - subPath: - type: string - required: - - name - type: object - type: array - exitCode: - type: string - parameters: - items: - properties: - default: - type: string - description: - type: string - enum: - items: - type: string - type: array - globalName: - type: string - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - default: - type: string - event: - type: string - expression: - type: string - jqFilter: - type: string - jsonPath: - type: string - parameter: - type: string - path: - type: string - supplied: - type: object - type: object - required: - - name - type: object - type: array - result: - type: string - type: object - phase: - type: string - progress: - type: string - required: - - metadata - type: object - served: true - storage: true ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workflowtasksets.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTaskSet - listKind: WorkflowTaskSetList - plural: workflowtasksets - shortNames: - - wfts - singular: workflowtaskset - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - status: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: workflowtemplates.argoproj.io -spec: - group: argoproj.io - names: - kind: WorkflowTemplate - listKind: WorkflowTemplateList - plural: workflowtemplates - shortNames: - - wftmpl - singular: workflowtemplate - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-map-type: atomic - x-kubernetes-preserve-unknown-fields: true - required: - - metadata - - spec - type: object - served: true - storage: true ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo - namespace: argo ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: argo-server - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: argo-role - namespace: argo -rules: - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - get - - update - - apiGroups: - - "" - resources: - - secrets - verbs: - - get ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - rbac.authorization.k8s.io/aggregate-to-admin: "true" - name: argo-aggregate-to-admin -rules: - - apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - - workfloweventbindings - - workfloweventbindings/finalizers - - workflowtemplates - - workflowtemplates/finalizers - - cronworkflows - - cronworkflows/finalizers - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - - workflowtasksets - - workflowtasksets/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - rbac.authorization.k8s.io/aggregate-to-edit: "true" - name: argo-aggregate-to-edit -rules: - - apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - - workfloweventbindings - - workfloweventbindings/finalizers - - workflowtemplates - - workflowtemplates/finalizers - - cronworkflows - - cronworkflows/finalizers - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - rbac.authorization.k8s.io/aggregate-to-view: "true" - name: argo-aggregate-to-view -rules: - - apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - - workfloweventbindings - - workfloweventbindings/finalizers - - workflowtemplates - - workflowtemplates/finalizers - - cronworkflows - - cronworkflows/finalizers - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - - workflowtaskresults - - workflowtaskresults/finalizers - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-cluster-role -rules: - - apiGroups: - - "" - resources: - - pods - - pods/exec - verbs: - - create - - get - - list - - watch - - update - - patch - - delete - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list - - apiGroups: - - "" - resources: - - persistentvolumeclaims - - persistentvolumeclaims/finalizers - verbs: - - create - - update - - delete - - get - - apiGroups: - - argoproj.io - resources: - - workflows - - workflows/finalizers - - workflowtasksets - - workflowtasksets/finalizers - - workflowartifactgctasks - verbs: - - get - - list - - watch - - update - - patch - - delete - - create - - apiGroups: - - argoproj.io - resources: - - workflowtemplates - - workflowtemplates/finalizers - - clusterworkflowtemplates - - clusterworkflowtemplates/finalizers - verbs: - - get - - list - - watch - - apiGroups: - - argoproj.io - resources: - - workflowtaskresults - verbs: - - list - - watch - - deletecollection - - apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - list - - apiGroups: - - argoproj.io - resources: - - cronworkflows - - cronworkflows/finalizers - verbs: - - get - - list - - watch - - update - - patch - - delete - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - get - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: argo-server-cluster-role -rules: - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - watch - - list - - apiGroups: - - "" - resources: - - secrets - verbs: - - get - - create - - apiGroups: - - "" - resources: - - pods - - pods/exec - - pods/log - verbs: - - get - - list - - watch - - delete - - apiGroups: - - "" - resources: - - events - verbs: - - watch - - create - - patch - - apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - get - - list - - watch - - apiGroups: - - argoproj.io - resources: - - eventsources - - sensors - - workflows - - workfloweventbindings - - workflowtemplates - - cronworkflows - - clusterworkflowtemplates - verbs: - - create - - get - - list - - watch - - update - - patch - - delete ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: argo-binding - namespace: argo -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: argo-role -subjects: - - kind: ServiceAccount - name: argo - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-cluster-role -subjects: - - kind: ServiceAccount - name: argo - namespace: argo ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-server-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: argo-server-cluster-role -subjects: - - kind: ServiceAccount - name: argo-server - namespace: argo ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: workflow-controller-configmap - namespace: argo ---- -apiVersion: v1 -kind: Service -metadata: - name: argo-server - namespace: argo -spec: - ports: - - name: web - port: 2746 - targetPort: 2746 - selector: - app: argo-server ---- -apiVersion: scheduling.k8s.io/v1 -kind: PriorityClass -metadata: - name: workflow-controller -value: 1000000 ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: argo-server - namespace: argo -spec: - selector: - matchLabels: - app: argo-server - template: - metadata: - labels: - app: argo-server - spec: - containers: - - args: - - server - env: [] - image: quay.io/argoproj/argocli:v3.5.4 - name: argo-server - ports: - - containerPort: 2746 - name: web - readinessProbe: - httpGet: - path: / - port: 2746 - scheme: HTTPS - initialDelaySeconds: 10 - periodSeconds: 20 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - volumeMounts: - - mountPath: /tmp - name: tmp - nodeSelector: - kubernetes.io/os: linux - securityContext: - runAsNonRoot: true - serviceAccountName: argo-server - volumes: - - emptyDir: {} - name: tmp ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workflow-controller - namespace: argo -spec: - selector: - matchLabels: - app: workflow-controller - template: - metadata: - labels: - app: workflow-controller - spec: - containers: - - args: [] - command: - - workflow-controller - env: - - name: LEADER_ELECTION_IDENTITY - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - image: quay.io/argoproj/workflow-controller:v3.5.4 - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: 6060 - initialDelaySeconds: 90 - periodSeconds: 60 - timeoutSeconds: 30 - name: workflow-controller - ports: - - containerPort: 9090 - name: metrics - - containerPort: 6060 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - nodeSelector: - kubernetes.io/os: linux - priorityClassName: workflow-controller - securityContext: - runAsNonRoot: true - serviceAccountName: argo diff --git a/examples/ref-implementation/argo-workflows/manifests/base/kustomization.yaml b/examples/ref-implementation/argo-workflows/manifests/base/kustomization.yaml deleted file mode 100644 index 4cfe240e..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/base/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: - - install.yaml diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/external-secret.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/external-secret.yaml deleted file mode 100644 index 7b9117c3..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/external-secret.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: keycloak-oidc - namespace: argo -spec: - secretStoreRef: - name: keycloak - kind: ClusterSecretStore - target: - name: keycloak-oidc - data: - - secretKey: client-id - remoteRef: - key: keycloak-clients - property: ARGO_WORKFLOWS_CLIENT_ID - - secretKey: secret-key - remoteRef: - key: keycloak-clients - property: ARGO_WORKFLOWS_CLIENT_SECRET diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/ingress.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/ingress.yaml deleted file mode 100644 index b4ccaffe..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/ingress.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: argo-workflows-ingress - namespace: argo - annotations: - nginx.ingress.kubernetes.io/use-regex: "true" - nginx.ingress.kubernetes.io/rewrite-target: /$2 -spec: - ingressClassName: "nginx" - rules: - - host: localhost - http: - paths: - - path: /argo-workflows(/|$)(.*) - pathType: ImplementationSpecific - backend: - service: - name: argo-server - port: - name: web - - host: cnoe.localtest.me - http: - paths: - - path: /argo-workflows(/|$)(.*) - pathType: ImplementationSpecific - backend: - service: - name: argo-server - port: - name: web diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/kustomization.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/kustomization.yaml deleted file mode 100644 index 042c3f6b..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/kustomization.yaml +++ /dev/null @@ -1,8 +0,0 @@ -resources: - - ../base - - external-secret.yaml - - ingress.yaml - - sa-admin.yaml -patches: - - path: patches/cm-argo-workflows.yaml - - path: patches/deployment-argo-server.yaml diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/patches/cm-argo-workflows.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/patches/cm-argo-workflows.yaml deleted file mode 100644 index 911dadcc..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/patches/cm-argo-workflows.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: workflow-controller-configmap - namespace: argo -data: - config: | - sso: - insecureSkipVerify: true - issuer: https://cnoe.localtest.me:8443/keycloak/realms/cnoe - clientId: - name: keycloak-oidc - key: client-id - clientSecret: - name: keycloak-oidc - key: secret-key - redirectUrl: https://cnoe.localtest.me:8443/argo-workflows/oauth2/callback - rbac: - enabled: true - scopes: - - openid - - profile - - email - - groups - nodeEvents: - enabled: false diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/patches/deployment-argo-server.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/patches/deployment-argo-server.yaml deleted file mode 100644 index bcc03d55..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/patches/deployment-argo-server.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: argo-server - namespace: argo -spec: - template: - spec: - containers: - - name: argo-server - readinessProbe: - httpGet: - path: / - port: 2746 - scheme: HTTP - env: - - name: BASE_HREF - value: "/argo-workflows/" - args: - - server - - --configmap=workflow-controller-configmap - - --auth-mode=client - - --auth-mode=sso - - "--secure=false" - - "--loglevel" - - "info" - - "--log-format" - - "text" \ No newline at end of file diff --git a/examples/ref-implementation/argo-workflows/manifests/dev/sa-admin.yaml b/examples/ref-implementation/argo-workflows/manifests/dev/sa-admin.yaml deleted file mode 100644 index 988b299b..00000000 --- a/examples/ref-implementation/argo-workflows/manifests/dev/sa-admin.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# Used by users in the admin group -# TODO Need to tighten up permissions. -apiVersion: v1 -kind: ServiceAccount -metadata: - name: admin - namespace: argo - annotations: - workflows.argoproj.io/rbac-rule: "'admin' in groups" - workflows.argoproj.io/rbac-rule-precedence: "10" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: argo-admin -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: - - kind: ServiceAccount - name: admin - namespace: argo ---- -apiVersion: v1 -kind: Secret -metadata: - name: admin.service-account-token - annotations: - kubernetes.io/service-account.name: admin - namespace: argo -type: kubernetes.io/service-account-token diff --git a/examples/ref-implementation/backstage-templates.yaml b/examples/ref-implementation/backstage-templates.yaml deleted file mode 100644 index 66227200..00000000 --- a/examples/ref-implementation/backstage-templates.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: backstage-templates - namespace: argocd - labels: - env: dev -spec: - project: default - source: - repoURL: cnoe://backstage-templates/entities - targetRevision: HEAD - path: "." - directory: - exclude: 'catalog-info.yaml' - destination: - server: "https://kubernetes.default.svc" - namespace: backstage - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - selfHeal: true diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/catalog-info.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/catalog-info.yaml deleted file mode 100644 index 90c4e326..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/catalog-info.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Resource -metadata: - name: ${{values.name}}-bucket - description: Stores things - annotations: - argocd/app-name: ${{values.name | dump}} -spec: - type: s3-bucket - owner: guest ---- -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: ${{values.name | dump}} - description: This is for testing purposes - annotations: - backstage.io/kubernetes-label-selector: 'entity-id=${{values.name}}' - backstage.io/kubernetes-namespace: default - argocd/app-name: ${{values.name | dump}} - links: - - url: https://cnoe.localtest.me:8443/gitea - title: Repo URL - icon: github -spec: - owner: guest - lifecycle: experimental - type: service - dependsOn: - - resource:default/${{values.name}}-bucket diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/go.mod b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/go.mod deleted file mode 100644 index cc90c209..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module ${{ values.name }} - -go 1.19 diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/kustomization.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/kustomization.yaml deleted file mode 100644 index 46391ffe..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/kustomization.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resources: - - nginx.yaml - - ${{ values.name }}.yaml diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/nginx.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/nginx.yaml deleted file mode 100644 index 5b5aa603..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/base/nginx.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: nginx - labels: - app: nginx -spec: - replicas: 3 - selector: - matchLabels: - app: nginx - template: - metadata: - labels: - app: nginx - spec: - containers: - - name: nginx - image: nginx:1.14.2 - ports: - - containerPort: 80 ---- -apiVersion: v1 -kind: Service -metadata: - name: nginx - labels: - app: nginx -spec: - ports: - - port: 80 - targetPort: 80 - selector: - app: nginx diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/dev/kustomization.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/dev/kustomization.yaml deleted file mode 100644 index 6f69d81f..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/dev/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: - - ../base diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/prod/kustomization.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/prod/kustomization.yaml deleted file mode 100644 index 8df05cf5..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/kustomize/prod/kustomization.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{%- if values.awsResources %} -resources: -{%- if 'Bucket' in values.awsResources %} - - ../base/ -{%- endif %} -{%- if 'Table' in values.awsResources %} - - ../base/table.yaml -{%- endif %} -{%- endif %} -namespace: default - -patches: - - target: - kind: Deployment - patch: | - apiVersion: apps/v1 - kind: Deployment - metadata: - name: not-used - labels: - backstage.io/kubernetes-id: ${{values.name}} - spec: - template: - metadata: - labels: - backstage.io/kubernetes-id: ${{values.name}} - - target: - kind: Service - patch: | - apiVersion: apps/v1 - kind: Service - metadata: - name: not-used - labels: - backstage.io/kubernetes-id: ${{values.name}} diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/main.go b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/main.go deleted file mode 100644 index d3103f97..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/skeleton/main.go +++ /dev/null @@ -1,5 +0,0 @@ -package main - -func main() { - -} \ No newline at end of file diff --git a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/template.yaml b/examples/ref-implementation/backstage-templates/entities/app-with-bucket/template.yaml deleted file mode 100644 index b1097c2b..00000000 --- a/examples/ref-implementation/backstage-templates/entities/app-with-bucket/template.yaml +++ /dev/null @@ -1,126 +0,0 @@ -apiVersion: scaffolder.backstage.io/v1beta3 -kind: Template -metadata: - description: Adds a Go application with AWS resources - name: app-with-aws-resources - title: Add a Go App with AWS resources -spec: - owner: guest - type: service - parameters: - - properties: - name: - title: Application Name - type: string - description: Unique name of the component - ui:autofocus: true - labels: - title: Labels - type: object - additionalProperties: - type: string - description: Labels to apply to the application - ui:autofocus: true - required: - - name - title: Choose your repository location - - description: Configure your bucket - properties: - apiVersion: - default: awsblueprints.io/v1alpha1 - description: APIVersion for the resource - type: string - kind: - default: ObjectStorage - description: Kind for the resource - type: string - config: - description: ObjectStorageSpec defines the desired state of ObjectStorage - properties: - resourceConfig: - description: ResourceConfig defines general properties of this AWS resource. - properties: - deletionPolicy: - description: Defaults to Delete - enum: - - Delete - - Orphan - type: string - region: - type: string - providerConfigName: - type: string - default: default - tags: - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - required: - - region - type: object - required: - - resourceConfig - title: Bucket configuration options - type: object - steps: - - id: template - name: Generating component - action: fetch:template - input: - url: ./skeleton - values: - name: ${{parameters.name}} - - action: roadiehq:utils:serialize:yaml - id: serialize - input: - data: - apiVersion: awsblueprints.io/v1alpha1 - kind: ${{ parameters.kind }} - metadata: - name: ${{ parameters.name }} - spec: ${{ parameters.config }} - name: serialize - - action: roadiehq:utils:fs:write - id: write - input: - content: ${{ steps['serialize'].output.serialized }} - path: kustomize/base/${{ parameters.name }}.yaml - name: write-to-file - - id: publish - name: Publishing to a gitea git repository - action: publish:gitea - input: - description: This is an example app - # Hard coded value for this demo purposes only. - repoUrl: cnoe.localtest.me:8443/gitea?repo=${{parameters.name}} - defaultBranch: main - - id: create-argocd-app - name: Create ArgoCD App - action: cnoe:create-argocd-app - input: - appName: ${{parameters.name}} - appNamespace: default - argoInstance: in-cluster - projectName: default - # necessary until we generate our own cert - repoUrl: http://my-gitea-http.gitea.svc.cluster.local:3000/giteaAdmin/${{parameters.name}} - path: "kustomize/base" - - id: register - name: Register - action: catalog:register - input: - repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }} - catalogInfoPath: 'catalog-info.yaml' - output: - links: - - title: Open in catalog - icon: catalog - entityRef: ${{ steps['register'].output.entityRef }} diff --git a/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/catalog-info.yaml b/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/catalog-info.yaml deleted file mode 100644 index d517d42e..00000000 --- a/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/catalog-info.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: ${{values.name | dump}} - description: This is for testing purposes - annotations: - backstage.io/kubernetes-label-selector: 'entity-id=${{values.name}}' - backstage.io/kubernetes-namespace: argo - argocd/app-name: ${{values.name | dump}} - argo-workflows.cnoe.io/label-selector: env=dev,entity-id=${{values.name}} - argo-workflows.cnoe.io/cluster-name: local - apache-spark.cnoe.io/label-selector: env=dev,entity-id=${{values.name}} - apache-spark.cnoe.io/cluster-name: local - links: - - url: https://cnoe.localtest.me:8443/gitea - title: Repo URL - icon: github -spec: - owner: guest - lifecycle: experimental - type: service diff --git a/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/manifests/deployment.yaml b/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/manifests/deployment.yaml deleted file mode 100644 index 962bc6a9..00000000 --- a/examples/ref-implementation/backstage-templates/entities/argo-workflows/skeleton/manifests/deployment.yaml +++ /dev/null @@ -1,109 +0,0 @@ -# apiVersion: argoproj.io/v1alpha1 -# kind: Workflow -# metadata: -# name: ${{values.name}} -# namespace: argo -# labels: -# env: dev -# entity-id: ${{values.name}} -# spec: -# serviceAccountName: admin -# entrypoint: whalesay -# templates: -# - name: whalesay -# container: -# image: docker/whalesay:latest -# command: [cowsay] -# args: ["hello world"] ---- -apiVersion: argoproj.io/v1alpha1 -kind: Workflow -metadata: - name: ${{values.name}} - namespace: argo - labels: - env: dev - entity-id: ${{values.name}} -spec: - serviceAccountName: admin - entrypoint: main - action: create - templates: - - name: main - steps: - - - name: spark-job - template: spark-job - - - name: wait - template: wait - arguments: - parameters: - - name: spark-job-name - value: '{{steps.spark-job.outputs.parameters.spark-job-name}}' - - - name: wait - inputs: - parameters: - - name: spark-job-name - resource: - action: get - successCondition: status.applicationState.state == COMPLETED - failureCondition: status.applicationState.state == FAILED - manifest: | - apiVersion: "sparkoperator.k8s.io/v1beta2" - kind: SparkApplication - metadata: - name: {{inputs.parameters.spark-job-name}} - namespace: argo - - - name: spark-job - outputs: - parameters: - - name: spark-job-name - valueFrom: - jsonPath: '{.metadata.name}' - resource: - action: create - setOwnerReference: true - manifest: | - apiVersion: "sparkoperator.k8s.io/v1beta2" - kind: SparkApplication - metadata: - name: spark-pi-${{values.name}} - namespace: argo - labels: - env: dev - entity-id: ${{values.name}} - spec: - type: Scala - mode: cluster - image: "docker.io/apache/spark:v3.1.3" - imagePullPolicy: IfNotPresent - mainClass: org.apache.spark.examples.SparkPi - mainApplicationFile: "local:///opt/spark/examples/jars/spark-examples_2.12-3.1.3.jar" - sparkVersion: "3.1.1" - restartPolicy: - type: Never - volumes: - - name: "test-volume" - hostPath: - path: "/tmp" - type: Directory - driver: - cores: 1 - coreLimit: "1200m" - memory: "512m" - labels: - version: 3.1.1 - serviceAccount: admin - volumeMounts: - - name: "test-volume" - mountPath: "/tmp" - executor: - cores: 1 - instances: 1 - memory: "512m" - labels: - version: 3.1.1 - volumeMounts: - - name: "test-volume" - mountPath: "/tmp" diff --git a/examples/ref-implementation/backstage-templates/entities/argo-workflows/template.yaml b/examples/ref-implementation/backstage-templates/entities/argo-workflows/template.yaml deleted file mode 100644 index 448b32fa..00000000 --- a/examples/ref-implementation/backstage-templates/entities/argo-workflows/template.yaml +++ /dev/null @@ -1,62 +0,0 @@ -apiVersion: scaffolder.backstage.io/v1beta3 -kind: Template -metadata: - description: Creates a Basic Kubernetes Deployment - name: argo-workflows-basic - title: Basic Argo Workflow with a Spark Job -spec: - owner: guest - type: service - parameters: - - title: Configuration Options - required: - - name - properties: - name: - type: string - description: name of this application - mainApplicationFile: - type: string - default: 'local:///opt/spark/examples/jars/spark-examples_2.12-3.1.3.jar' - description: Path to the main application file - - steps: - - id: template - name: Generating component - action: fetch:template - input: - url: ./skeleton - values: - name: ${{parameters.name}} - - - id: publish - name: Publishing to a gitea git repository - action: publish:gitea - input: - description: This is an example app - # Hard coded value for this demo purposes only. - repoUrl: cnoe.localtest.me:8443/gitea?repo=${{parameters.name}} - defaultBranch: main - - id: create-argocd-app - name: Create ArgoCD App - action: cnoe:create-argocd-app - input: - appName: ${{parameters.name}} - appNamespace: ${{parameters.name}} - argoInstance: in-cluster - projectName: default - # necessary until we generate our own cert - repoUrl: http://my-gitea-http.gitea.svc.cluster.local:3000/giteaAdmin/${{parameters.name}} - path: "manifests" - - id: register - name: Register - action: catalog:register - input: - repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }} - catalogInfoPath: 'catalog-info.yaml' - - output: - links: - - title: Open in catalog - icon: catalog - entityRef: ${{ steps['register'].output.entityRef }} diff --git a/examples/ref-implementation/backstage-templates/entities/basic/skeleton/catalog-info.yaml b/examples/ref-implementation/backstage-templates/entities/basic/skeleton/catalog-info.yaml deleted file mode 100644 index cf9b024d..00000000 --- a/examples/ref-implementation/backstage-templates/entities/basic/skeleton/catalog-info.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: ${{values.name | dump}} - description: This is for testing purposes - annotations: - backstage.io/kubernetes-label-selector: 'entity-id=${{values.name}}' - backstage.io/kubernetes-namespace: default - argocd/app-name: ${{values.name | dump}} - links: - - url: https://cnoe.localtest.me:8443/gitea - title: Repo URL - icon: github -spec: - owner: guest - lifecycle: experimental - type: service diff --git a/examples/ref-implementation/backstage-templates/entities/basic/skeleton/manifests/deployment.yaml b/examples/ref-implementation/backstage-templates/entities/basic/skeleton/manifests/deployment.yaml deleted file mode 100644 index 77b51780..00000000 --- a/examples/ref-implementation/backstage-templates/entities/basic/skeleton/manifests/deployment.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: ${{values.name | dump}} - namespace: default - labels: - entity-id: ${{values.name}} - app: nginx -spec: - replicas: 1 - selector: - matchLabels: - app: nginx - template: - metadata: - labels: - app: nginx - entity-id: ${{values.name}} - spec: - containers: - - name: nginx - image: nginx:1.14.2 - ports: - - containerPort: 80 diff --git a/examples/ref-implementation/backstage-templates/entities/basic/template.yaml b/examples/ref-implementation/backstage-templates/entities/basic/template.yaml deleted file mode 100644 index 8b02b37d..00000000 --- a/examples/ref-implementation/backstage-templates/entities/basic/template.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: scaffolder.backstage.io/v1beta3 -kind: Template -metadata: - description: Creates a Basic Kubernetes Deployment - name: basic - title: Create a Basic Deployment -spec: - owner: guest - type: service - parameters: - - title: Configuration Options - required: - - name - properties: - name: - type: string - description: name of this application - - steps: - - id: template - name: Generating component - action: fetch:template - input: - url: ./skeleton - values: - name: ${{parameters.name}} - - - id: publish - name: Publishing to a gitea git repository - action: publish:gitea - input: - description: This is an example app - # Hard coded value for this demo purposes only. - repoUrl: cnoe.localtest.me:8443/gitea?repo=${{parameters.name}} - defaultBranch: main - - id: create-argocd-app - name: Create ArgoCD App - action: cnoe:create-argocd-app - input: - appName: ${{parameters.name}} - appNamespace: ${{parameters.name}} - argoInstance: in-cluster - projectName: default - # necessary until we generate our own cert - repoUrl: http://my-gitea-http.gitea.svc.cluster.local:3000/giteaAdmin/${{parameters.name}} - path: "manifests" - - id: register - name: Register - action: catalog:register - input: - repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }} - catalogInfoPath: 'catalog-info.yaml' - - output: - links: - - title: Open in catalog - icon: catalog - entityRef: ${{ steps['register'].output.entityRef }} diff --git a/examples/ref-implementation/backstage-templates/entities/catalog-info.yaml b/examples/ref-implementation/backstage-templates/entities/catalog-info.yaml deleted file mode 100644 index 5dd49ebf..00000000 --- a/examples/ref-implementation/backstage-templates/entities/catalog-info.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Location -metadata: - name: basic-example-templates - description: A collection of example templates -spec: - targets: - - ./basic/template.yaml - - ./argo-workflows/template.yaml - - ./app-with-bucket/template.yaml diff --git a/examples/ref-implementation/backstage.yaml b/examples/ref-implementation/backstage.yaml deleted file mode 100644 index 53bcc12e..00000000 --- a/examples/ref-implementation/backstage.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: backstage - namespace: argocd - labels: - env: dev -spec: - project: default - source: - repoURL: cnoe://backstage/manifests - targetRevision: HEAD - path: "." - destination: - server: "https://kubernetes.default.svc" - namespace: backstage - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - selfHeal: true diff --git a/examples/ref-implementation/backstage/manifests/argocd-secrets.yaml b/examples/ref-implementation/backstage/manifests/argocd-secrets.yaml deleted file mode 100644 index 28ab8558..00000000 --- a/examples/ref-implementation/backstage/manifests/argocd-secrets.yaml +++ /dev/null @@ -1,77 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: eso-store - namespace: argocd ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: eso-store - namespace: argocd -rules: - - apiGroups: [""] - resources: - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - authorization.k8s.io - resources: - - selfsubjectrulesreviews - verbs: - - create ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: eso-store - namespace: argocd -subjects: - - kind: ServiceAccount - name: eso-store - namespace: argocd -roleRef: - kind: Role - name: eso-store - apiGroup: rbac.authorization.k8s.io ---- -apiVersion: external-secrets.io/v1beta1 -kind: ClusterSecretStore -metadata: - name: argocd -spec: - provider: - kubernetes: - remoteNamespace: argocd - server: - caProvider: - type: ConfigMap - name: kube-root-ca.crt - namespace: argocd - key: ca.crt - auth: - serviceAccount: - name: eso-store - namespace: argocd ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: argocd-credentials - namespace: backstage -spec: - secretStoreRef: - name: argocd - kind: ClusterSecretStore - refreshInterval: "0" - target: - name: argocd-credentials - data: - - secretKey: ARGOCD_ADMIN_PASSWORD - remoteRef: - key: argocd-initial-admin-secret - property: password diff --git a/examples/ref-implementation/backstage/manifests/install.yaml b/examples/ref-implementation/backstage/manifests/install.yaml deleted file mode 100644 index fb094079..00000000 --- a/examples/ref-implementation/backstage/manifests/install.yaml +++ /dev/null @@ -1,457 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: backstage ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: backstage - namespace: backstage ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: backstage-argo-worfklows -rules: - - apiGroups: - - argoproj.io - resources: - - workflows - verbs: - - create ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: read-all -rules: - - apiGroups: - - '*' - resources: - - '*' - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: backstage-argo-worfklows -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: backstage-argo-worfklows -subjects: - - kind: ServiceAccount - name: backstage - namespace: backstage ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: backstage-read-all -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: read-all -subjects: - - kind: ServiceAccount - name: backstage - namespace: backstage ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: backstage-config - namespace: backstage -data: - app-config.yaml: | - app: - title: CNOE Backstage - baseUrl: https://cnoe.localtest.me:8443 - organization: - name: CNOE - backend: - # Used for enabling authentication, secret is shared by all backend plugins - # See https://backstage.io/docs/tutorials/backend-to-backend-auth for - # information on the format - # auth: - # keys: - # - secret: ${BACKEND_SECRET} - baseUrl: https://cnoe.localtest.me:8443 - listen: - port: 7007 - # Uncomment the following host directive to bind to specific interfaces - # host: 127.0.0.1 - csp: - connect-src: ["'self'", 'http:', 'https:'] - # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference - # Default Helmet Content-Security-Policy values can be removed by setting the key to false - cors: - origin: https://cnoe.localtest.me:8443 - methods: [GET, HEAD, PATCH, POST, PUT, DELETE] - credentials: true - database: - client: pg - connection: - host: ${POSTGRES_HOST} - port: ${POSTGRES_PORT} - user: ${POSTGRES_USER} - password: ${POSTGRES_PASSWORD} - cache: - store: memory - # workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir - - integrations: - gitea: - - baseUrl: https://cnoe.localtest.me:8443/gitea - host: cnoe.localtest.me:8443 - username: ${GITEA_USERNAME} - password: ${GITEA_PASSWORD} - - baseUrl: https://cnoe.localtest.me/gitea - host: cnoe.localtest.me - username: ${GITEA_USERNAME} - password: ${GITEA_PASSWORD} - # github: - # - host: github.com - # apps: - # - $include: github-integration.yaml - # - host: github.com - # # This is a Personal Access Token or PAT from GitHub. You can find out how to generate this token, and more information - # # about setting up the GitHub integration here: https://backstage.io/docs/getting-started/configuration#setting-up-a-github-integration - # token: ${GITHUB_TOKEN} - ### Example for how to add your GitHub Enterprise instance using the API: - # - host: ghe.example.net - # apiBaseUrl: https://ghe.example.net/api/v3 - # token: ${GHE_TOKEN} - - # Reference documentation http://backstage.io/docs/features/techdocs/configuration - # Note: After experimenting with basic setup, use CI/CD to generate docs - # and an external cloud storage when deploying TechDocs for production use-case. - # https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach - techdocs: - builder: 'local' # Alternatives - 'external' - generator: - runIn: 'docker' # Alternatives - 'local' - publisher: - type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives. - - auth: - environment: development - session: - secret: MW2sV-sIPngEl26vAzatV-6VqfsgAx4bPIz7PuE_2Lk= - providers: - keycloak-oidc: - development: - metadataUrl: ${KEYCLOAK_NAME_METADATA} - clientId: backstage - clientSecret: ${KEYCLOAK_CLIENT_SECRET} - scope: 'openid profile email groups' - prompt: auto - - scaffolder: - # see https://backstage.io/docs/features/software-templates/configuration for software template options - defaultAuthor: - name: backstage-scaffolder - email: noreply - defaultCommitMessage: "backstage scaffolder" - catalog: - import: - entityFilename: catalog-info.yaml - pullRequestBranchName: backstage-integration - rules: - - allow: [Component, System, API, Resource, Location, Template] - locations: - # Examples from a public GitHub repository. - - type: url - target: https://cnoe.localtest.me/gitea/giteaAdmin/idpbuilder-localdev-backstage-templates-entities/raw/branch/main/catalog-info.yaml - ## Uncomment these lines to add an example org - # - type: url - # target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml - # rules: - # - allow: [User, Group] - kubernetes: - serviceLocatorMethod: - type: 'multiTenant' - clusterLocatorMethods: - - $include: k8s-config.yaml - argocd: - username: admin - password: ${ARGOCD_ADMIN_PASSWORD} - appLocatorMethods: - - type: 'config' - instances: - - name: in-cluster - url: https://cnoe.localtest.me:8443/argocd - username: admin - password: ${ARGOCD_ADMIN_PASSWORD} - argoWorkflows: - baseUrl: ${ARGO_WORKFLOWS_URL} ---- -apiVersion: v1 -kind: Secret -metadata: - name: k8s-config - namespace: backstage -stringData: - k8s-config.yaml: "type: 'config'\nclusters:\n - url: https://kubernetes.default.svc.cluster.local\n - \ name: local\n authProvider: 'serviceAccount'\n skipTLSVerify: true\n - \ skipMetricsLookup: true\n serviceAccountToken: \n $file: /var/run/secrets/kubernetes.io/serviceaccount/token\n - \ caData: \n $file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt\n" ---- -apiVersion: v1 -kind: Service -metadata: - name: backstage - namespace: backstage -spec: - ports: - - name: http - port: 7007 - targetPort: http - selector: - app: backstage ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: postgresql - name: postgresql - namespace: backstage -spec: - clusterIP: None - ports: - - name: postgres - port: 5432 - selector: - app: postgresql ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: backstage - namespace: backstage - annotations: - argocd.argoproj.io/sync-wave: "10" -spec: - replicas: 1 - selector: - matchLabels: - app: backstage - template: - metadata: - labels: - app: backstage - spec: - containers: - - command: - - node - - packages/backend - - --config - - config/app-config.yaml - env: - - name: LOG_LEVEL - value: debug - - name: NODE_TLS_REJECT_UNAUTHORIZED - value: "0" - envFrom: - - secretRef: - name: backstage-env-vars - - secretRef: - name: gitea-credentials - - secretRef: - name: argocd-credentials - image: public.ecr.aws/cnoe-io/backstage:rc1 - name: backstage - ports: - - containerPort: 7007 - name: http - volumeMounts: - - mountPath: /app/config - name: backstage-config - readOnly: true - serviceAccountName: backstage - volumes: - - name: backstage-config - projected: - sources: - - configMap: - items: - - key: app-config.yaml - path: app-config.yaml - name: backstage-config - - secret: - items: - - key: k8s-config.yaml - path: k8s-config.yaml - name: k8s-config ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app: postgresql - name: postgresql - namespace: backstage -spec: - replicas: 1 - selector: - matchLabels: - app: postgresql - serviceName: service-postgresql - template: - metadata: - labels: - app: postgresql - spec: - containers: - - env: - - name: POSTGRES_DB - valueFrom: - secretKeyRef: - name: backstage-env-vars - key: POSTGRES_DB - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: backstage-env-vars - key: POSTGRES_USER - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: backstage-env-vars - key: POSTGRES_PASSWORD - image: docker.io/library/postgres:15.3-alpine3.18 - name: postgres - ports: - - containerPort: 5432 - name: postgresdb - resources: - limits: - memory: 500Mi - requests: - cpu: 100m - memory: 300Mi - volumeMounts: - - name: data - mountPath: /var/lib/postgresql/data - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: ["ReadWriteOnce"] - resources: - requests: - storage: "500Mi" ---- -apiVersion: generators.external-secrets.io/v1alpha1 -kind: Password -metadata: - name: backstage - namespace: backstage -spec: - length: 36 - digits: 5 - symbols: 5 - symbolCharacters: "/-+" - noUpper: false - allowRepeat: true ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: backstage-oidc - namespace: backstage -spec: - secretStoreRef: - name: keycloak - kind: ClusterSecretStore - refreshInterval: "0" - target: - name: backstage-env-vars - template: - engineVersion: v2 - data: - BACKSTAGE_FRONTEND_URL: https://cnoe.localtest.me:8443/backstage - POSTGRES_HOST: postgresql.backstage.svc.cluster.local - POSTGRES_PORT: '5432' - POSTGRES_DB: backstage - POSTGRES_USER: backstage - POSTGRES_PASSWORD: "{{.POSTGRES_PASSWORD}}" - ARGO_WORKFLOWS_URL: https://cnoe.localtest.me:8443/argo-workflows - KEYCLOAK_NAME_METADATA: https://cnoe.localtest.me:8443/keycloak/realms/cnoe/.well-known/openid-configuration - KEYCLOAK_CLIENT_SECRET: "{{.BACKSTAGE_CLIENT_SECRET}}" - ARGOCD_AUTH_TOKEN: "argocd.token={{.ARGOCD_SESSION_TOKEN}}" - ARGO_CD_URL: 'https://argocd-server.argocd.svc.cluster.local/api/v1/' - data: - - secretKey: ARGOCD_SESSION_TOKEN - remoteRef: - key: keycloak-clients - property: ARGOCD_SESSION_TOKEN - - secretKey: BACKSTAGE_CLIENT_SECRET - remoteRef: - key: keycloak-clients - property: BACKSTAGE_CLIENT_SECRET - dataFrom: - - sourceRef: - generatorRef: - apiVersion: generators.external-secrets.io/v1alpha1 - kind: Password - name: backstage - rewrite: - - transform: - template: "POSTGRES_PASSWORD" ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: gitea-credentials - namespace: backstage -spec: - secretStoreRef: - name: gitea - kind: ClusterSecretStore - refreshInterval: "0" - target: - name: gitea-credentials - data: - - secretKey: GITEA_USERNAME - remoteRef: - key: gitea-credential - property: username - - secretKey: GITEA_PASSWORD - remoteRef: - key: gitea-credential - property: password ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: backstage - namespace: backstage -spec: - ingressClassName: "nginx" - rules: - - host: localhost - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: backstage - port: - name: http - - host: cnoe.localtest.me - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: backstage - port: - name: http diff --git a/examples/ref-implementation/codespaces.md b/examples/ref-implementation/codespaces.md deleted file mode 100644 index 06857ec6..00000000 --- a/examples/ref-implementation/codespaces.md +++ /dev/null @@ -1,71 +0,0 @@ -## Running idpbuilder in Codespaces in Browser - -**_NOTE:_**: __Steps described below applies to running this implementation in Codespaces in **web browsers** (e.g. Firefox and Chrome). -If you are using Codespaces with GitHub CLI, steps described here do not apply to you.__ - - -Let's create an instance of Codespaces. - -![img.png](images/codespaces-create.png) - -It may take a few minutes for it to be ready. Once it's ready, you can either get the latest release of idpbuilder or build from the main branch. -Build the idpbuilder binary. - - -- Get the latest release: - ```bash - version=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/cnoe-io/idpbuilder/releases/latest) - version=${version##*/} - wget https://github.com/cnoe-io/idpbuilder/releases/download/${version}/idpbuilder-linux-amd64.tar.gz - tar xzf idpbuilder-linux-amd64.tar.gz - sudo mv ./idpbuilder /usr/local/bin/ - ``` -- Alternatively, build from the main branch - ```bash - make build - sudo mv ./idpbuilder /usr/local/bin/ - ``` - -Codespaces assigns random hostname to your specific instance. You need to make sure they are reflected correctly. -Instance host name is available as an environment variable (`CODESPACE_NAME`). Let's use it to setup our host names. -Run the following commands to update host name and ports. Port is set to 443 because this is the port used by the browser to access your instance. - - -```bash -cd examples/ref-implementation - -./replace.sh ${CODESPACE_NAME}-8080.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} 443 - -cd - -``` - -Now you are ready to run idpbuilder with reference implementation. - -```bash -idpbuilder create --protocol http \ - --host ${CODESPACE_NAME}-8080.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} \ - --port 8080 --use-path-routing --package-dir examples/ref-implementation -``` -Once idpbuilder finishes bootstrapping, you should have port 8080 forward in the port tab within Codespaces. - -![](images/port.png) - -You may get a 404 page after clicking the port 8080 forwarded address. This is completely normal because Backstage may not be ready yet. -Give it a few more minutes and it should redirect you to a Backstage page. - -### Accessing UIs - -If you'd like to track progress of deployment, go to `/argocd` path and login with your ArgoCD credentials. -For example run this command to get the URL for Argo CD: -```bash -echo https://${CODESPACE_NAME}-8080.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}/argocd -``` - -From here on, you can follow the instructions in the [README](./README.md) file. The only difference is that the URL to access UIs is given by: - -```echo -echo https://${CODESPACE_NAME}-8080.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} -``` - -For example, if you need to access Argo Workflows UI, instead of going to `https://cnoe.localtest.me:8443/argo`, -you go to `https://${CODESPACE_NAME}-8080.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}/argo` diff --git a/examples/ref-implementation/coredns.yaml b/examples/ref-implementation/coredns.yaml deleted file mode 100644 index ca46cd95..00000000 --- a/examples/ref-implementation/coredns.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coredns - namespace: argocd - labels: - env: dev -spec: - project: default - source: - repoURL: cnoe://coredns/manifests - targetRevision: HEAD - path: "." - destination: - server: "https://kubernetes.default.svc" - namespace: kube-system - syncPolicy: - syncOptions: - - CreateNamespace=true - automated: - selfHeal: true diff --git a/examples/ref-implementation/coredns/manifests/cm-coredns.yaml b/examples/ref-implementation/coredns/manifests/cm-coredns.yaml deleted file mode 100644 index 9cf733ae..00000000 --- a/examples/ref-implementation/coredns/manifests/cm-coredns.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# the only purpose of this is to resolve external DNS entries such as `redesigned-bassoon-r4jjwpvv99vhx9gp-8080.app.github.dev` to a cluster IP -# normally, `redesigned-bassoon-r4jjwpvv99vhx9gp-8080.app.github.dev` resolves to 127.0.0.1 and thus oidc endpoint configurations cannot be obtained. -# in addition, we need to ensure traffic do not go out of cluster when not necessary. -apiVersion: v1 -kind: ConfigMap -metadata: - name: coredns - namespace: kube-system -data: - Corefile: | - .:53 { - errors - health { - lameduck 5s - } - ready - - rewrite name cnoe.localtest.me ingress-nginx-controller.ingress-nginx.svc.cluster.local - - kubernetes cluster.local in-addr.arpa ip6.arpa { - pods insecure - fallthrough in-addr.arpa ip6.arpa - ttl 30 - } - prometheus :9153 - forward . /etc/resolv.conf { - max_concurrent 1000 - } - cache 30 - loop - reload - loadbalance - } diff --git a/examples/ref-implementation/crossplane-compositions.yaml b/examples/ref-implementation/crossplane-compositions.yaml deleted file mode 100644 index f46fc7ab..00000000 --- a/examples/ref-implementation/crossplane-compositions.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: crossplane-compositions - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: cnoe://crossplane-compositions/manifests - targetRevision: HEAD - path: "." - directory: - recurse: true - destination: - server: "https://kubernetes.default.svc" - namespace: crossplane-system - syncPolicy: - automated: {} diff --git a/examples/ref-implementation/crossplane-compositions/manifests/s3/definition.yaml b/examples/ref-implementation/crossplane-compositions/manifests/s3/definition.yaml deleted file mode 100644 index b812896b..00000000 --- a/examples/ref-implementation/crossplane-compositions/manifests/s3/definition.yaml +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -apiVersion: apiextensions.crossplane.io/v1 -kind: CompositeResourceDefinition -metadata: - name: xobjectstorages.awsblueprints.io -spec: - claimNames: - kind: ObjectStorage - plural: objectstorages - group: awsblueprints.io - names: - kind: XObjectStorage - plural: xobjectstorages - connectionSecretKeys: - - region - - bucket-name - - s3-put-policy - versions: - - name: v1alpha1 - served: true - referenceable: true - schema: - openAPIV3Schema: - properties: - spec: - description: ObjectStorageSpec defines the desired state of ObjectStorage - properties: - resourceConfig: - description: ResourceConfig defines general properties of this AWS - resource. - properties: - deletionPolicy: - description: Defaults to Delete - enum: - - Delete - - Orphan - type: string - name: - description: Set the name of this resource in AWS to the value - provided by this field. - type: string - providerConfigName: - type: string - region: - type: string - tags: - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - required: - - providerConfigName - - region - - tags - type: object - required: - - resourceConfig - type: object - status: - description: ObjectStorageStatus defines the observed state of ObjectStorage - properties: - bucketName: - type: string - bucketArn: - type: string - type: object - type: object diff --git a/examples/ref-implementation/crossplane-compositions/manifests/s3/general-purpose.yaml b/examples/ref-implementation/crossplane-compositions/manifests/s3/general-purpose.yaml deleted file mode 100644 index abee25e0..00000000 --- a/examples/ref-implementation/crossplane-compositions/manifests/s3/general-purpose.yaml +++ /dev/null @@ -1,80 +0,0 @@ -apiVersion: apiextensions.crossplane.io/v1 -kind: Composition -metadata: - name: s3bucket.awsblueprints.io - labels: - awsblueprints.io/provider: aws - awsblueprints.io/environment: dev - s3.awsblueprints.io/configuration: standard -spec: - writeConnectionSecretsToNamespace: crossplane-system - compositeTypeRef: - apiVersion: awsblueprints.io/v1alpha1 - kind: XObjectStorage - patchSets: - - name: common-fields - patches: - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.providerConfigName - toFieldPath: spec.providerConfigRef.name - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.deletionPolicy - toFieldPath: spec.deletionPolicy - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.region - toFieldPath: spec.forProvider.region - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.name - toFieldPath: metadata.annotations[crossplane.io/external-name] - resources: - - name: s3-bucket - connectionDetails: - - name: bucket-name - fromConnectionSecretKey: endpoint - - name: region - fromConnectionSecretKey: region - base: - apiVersion: s3.aws.crossplane.io/v1beta1 - kind: Bucket - spec: - deletionPolicy: Delete - forProvider: - objectOwnership: BucketOwnerEnforced - publicAccessBlockConfiguration: - blockPublicPolicy: true - restrictPublicBuckets: true - serverSideEncryptionConfiguration: - rules: - - applyServerSideEncryptionByDefault: - sseAlgorithm: AES256 - tagging: - tagSet: - - key: cnoe - value: "1" - patches: - - type: PatchSet - patchSetName: common-fields - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.tags - toFieldPath: spec.forProvider.tagging.tagSet - policy: - mergeOptions: - appendSlice: true - keepMapValues: true - - type: FromCompositeFieldPath - fromFieldPath: spec.resourceConfig.region - toFieldPath: spec.forProvider.locationConstraint - - fromFieldPath: spec.writeConnectionSecretToRef.namespace - toFieldPath: spec.writeConnectionSecretToRef.namespace - - type: ToCompositeFieldPath - fromFieldPath: metadata.annotations[crossplane.io/external-name] - toFieldPath: status.bucketName - - type: ToCompositeFieldPath - fromFieldPath: status.atProvider.arn - toFieldPath: status.bucketArn - - fromFieldPath: metadata.uid - toFieldPath: spec.writeConnectionSecretToRef.name - transforms: - - type: string - string: - fmt: "%s-bucket" diff --git a/examples/ref-implementation/crossplane-providers.yaml b/examples/ref-implementation/crossplane-providers.yaml deleted file mode 100644 index 4ddc7dec..00000000 --- a/examples/ref-implementation/crossplane-providers.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: crossplane-providers - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: cnoe://crossplane-providers - targetRevision: HEAD - path: "." - destination: - server: "https://kubernetes.default.svc" - namespace: crossplane-system - syncPolicy: - automated: {} - syncOptions: - - CreateNamespace=true diff --git a/examples/ref-implementation/crossplane-providers/provider-aws.yaml b/examples/ref-implementation/crossplane-providers/provider-aws.yaml deleted file mode 100644 index 7a12da26..00000000 --- a/examples/ref-implementation/crossplane-providers/provider-aws.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: pkg.crossplane.io/v1 -kind: Provider -metadata: - name: provider-aws -spec: - package: xpkg.upbound.io/crossplane-contrib/provider-aws:v0.48.0 diff --git a/examples/ref-implementation/crossplane-providers/provider-config.yaml b/examples/ref-implementation/crossplane-providers/provider-config.yaml deleted file mode 100644 index 21924c6e..00000000 --- a/examples/ref-implementation/crossplane-providers/provider-config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: aws.crossplane.io/v1beta1 -kind: ProviderConfig -metadata: - name: default - annotations: - argocd.argoproj.io/sync-wave: "20" - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true -spec: - credentials: - source: Secret - secretRef: - namespace: crossplane-system - name: local-secret - key: creds diff --git a/examples/ref-implementation/crossplane-providers/provider-secret.yaml b/examples/ref-implementation/crossplane-providers/provider-secret.yaml deleted file mode 100644 index a78addb5..00000000 --- a/examples/ref-implementation/crossplane-providers/provider-secret.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: local-secret - namespace: crossplane-system -stringData: - creds: | - [default] - aws_access_key_id = replaceme - aws_secret_access_key = replaceme - aws_session_token = replacemeifneeded diff --git a/examples/ref-implementation/crossplane.yaml b/examples/ref-implementation/crossplane.yaml deleted file mode 100644 index 28966b6d..00000000 --- a/examples/ref-implementation/crossplane.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: crossplane - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: 'https://charts.crossplane.io/stable' - targetRevision: 1.15.0 - helm: - releaseName: crossplane - chart: crossplane - destination: - server: 'https://kubernetes.default.svc' - namespace: crossplane-system - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/ref-implementation/external-secrets.yaml b/examples/ref-implementation/external-secrets.yaml deleted file mode 100644 index 58d93bba..00000000 --- a/examples/ref-implementation/external-secrets.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: external-secrets - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: external-secrets - server: "https://kubernetes.default.svc" - source: - repoURL: cnoe://external-secrets/manifests - targetRevision: HEAD - path: "." - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/examples/ref-implementation/external-secrets/generate-manifests.sh b/examples/ref-implementation/external-secrets/generate-manifests.sh deleted file mode 100755 index 1a26292d..00000000 --- a/examples/ref-implementation/external-secrets/generate-manifests.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -INSTALL_YAML="manifests/install.yaml" -CHART_VERSION="0.9.11" - -echo "# EXTERNAL SECRETS INSTALL RESOURCES" > ${INSTALL_YAML} -echo "# This file is auto-generated with 'examples/ref-impelmentation/external-secrets/generate-manifests.sh'" >> ${INSTALL_YAML} - -helm repo add external-secrets --force-update https://charts.external-secrets.io -helm repo update -helm template --namespace external-secrets external-secrets external-secrets/external-secrets -f values.yaml --version ${CHART_VERSION} >> ${INSTALL_YAML} diff --git a/examples/ref-implementation/external-secrets/manifests/install.yaml b/examples/ref-implementation/external-secrets/manifests/install.yaml deleted file mode 100644 index 18cb3885..00000000 --- a/examples/ref-implementation/external-secrets/manifests/install.yaml +++ /dev/null @@ -1,9277 +0,0 @@ -# EXTERNAL SECRETS INSTALL RESOURCES -# This file is auto-generated with 'examples/ref-impelmentation/external-secrets/generate-manifests.sh' ---- -# Source: external-secrets/templates/cert-controller-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: external-secrets-cert-controller - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm ---- -# Source: external-secrets/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: external-secrets - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm ---- -# Source: external-secrets/templates/webhook-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: external-secrets-webhook - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm ---- -# Source: external-secrets/templates/webhook-secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: external-secrets-webhook - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - external-secrets.io/component: webhook ---- -# Source: external-secrets/templates/crds/acraccesstoken.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: acraccesstokens.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - acraccesstoken - kind: ACRAccessToken - listKind: ACRAccessTokenList - plural: acraccesstokens - shortNames: - - acraccesstoken - singular: acraccesstoken - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: "ACRAccessToken returns a Azure Container Registry token that can be used for pushing/pulling images. Note: by default it will return an ACR Refresh Token with full access (depending on the identity). This can be scoped down to the repository level using .spec.scope. In case scope is defined it will return an ACR Access Token. \n See docs: https://github.com/Azure/acr/blob/main/docs/AAD-OAuth.md" - 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: 'ACRAccessTokenSpec defines how to generate the access token e.g. how to authenticate and which registry to use. see: https://github.com/Azure/acr/blob/main/docs/AAD-OAuth.md#overview' - properties: - auth: - properties: - managedIdentity: - description: ManagedIdentity uses Azure Managed Identity to authenticate with Azure. - properties: - identityId: - description: If multiple Managed Identity is assigned to the pod, you can select the one to be used - type: string - type: object - servicePrincipal: - description: ServicePrincipal uses Azure Service Principal credentials to authenticate with Azure. - properties: - secretRef: - description: Configuration used to authenticate with Azure using static credentials stored in a Kind=Secret. - properties: - clientId: - description: The Azure clientId of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientSecret: - description: The Azure ClientSecret of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - secretRef - type: object - workloadIdentity: - description: WorkloadIdentity uses Azure Workload Identity to authenticate with Azure. - properties: - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - type: object - environmentType: - default: PublicCloud - description: 'EnvironmentType specifies the Azure cloud environment endpoints to use for connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint. The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152 PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud' - enum: - - PublicCloud - - USGovernmentCloud - - ChinaCloud - - GermanCloud - type: string - registry: - description: the domain name of the ACR registry e.g. foobarexample.azurecr.io - type: string - scope: - description: "Define the scope for the access token, e.g. pull/push access for a repository. if not provided it will return a refresh token that has full scope. Note: you need to pin it down to the repository level, there is no wildcard available. \n examples: repository:my-repository:pull,push repository:my-repository:pull \n see docs for details: https://docs.docker.com/registry/spec/auth/scope/" - type: string - tenantId: - description: TenantID configures the Azure Tenant to send requests to. Required for ServicePrincipal auth type. - type: string - required: - - auth - - registry - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/clusterexternalsecret.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: clusterexternalsecrets.external-secrets.io -spec: - group: external-secrets.io - names: - categories: - - externalsecrets - kind: ClusterExternalSecret - listKind: ClusterExternalSecretList - plural: clusterexternalsecrets - shortNames: - - ces - singular: clusterexternalsecret - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .spec.externalSecretSpec.secretStoreRef.name - name: Store - type: string - - jsonPath: .spec.refreshTime - name: Refresh Interval - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: ClusterExternalSecret is the Schema for the clusterexternalsecrets 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: ClusterExternalSecretSpec defines the desired state of ClusterExternalSecret. - properties: - externalSecretMetadata: - description: The metadata of the external secrets to be created - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - externalSecretName: - description: The name of the external secrets to be created defaults to the name of the ClusterExternalSecret - type: string - externalSecretSpec: - description: The spec for the ExternalSecrets to be created - properties: - data: - description: Data defines the connection between the Kubernetes Secret keys and the Provider data - items: - description: ExternalSecretData defines the connection between the Kubernetes Secret key (spec.data.) and the Provider data. - properties: - remoteRef: - description: RemoteRef points to the remote secret and defines which secret (version/property/..) to fetch. - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - metadataPolicy: - default: None - description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None - enum: - - None - - Fetch - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - secretKey: - description: SecretKey defines the key in which the controller stores the value. This is the key in the Kind=Secret - type: string - sourceRef: - description: SourceRef allows you to override the source from which the value will pulled from. - maxProperties: 1 - properties: - generatorRef: - description: "GeneratorRef points to a generator custom resource. \n Deprecated: The generatorRef is not implemented in .data[]. this will be removed with v1." - properties: - apiVersion: - default: generators.external-secrets.io/v1alpha1 - description: Specify the apiVersion of the generator resource - type: string - kind: - description: Specify the Kind of the resource, e.g. Password, ACRAccessToken etc. - type: string - name: - description: Specify the name of the generator resource - type: string - required: - - kind - - name - type: object - storeRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - type: object - required: - - remoteRef - - secretKey - type: object - type: array - dataFrom: - description: DataFrom is used to fetch all properties from a specific Provider data If multiple entries are specified, the Secret keys are merged in the specified order - items: - properties: - extract: - description: 'Used to extract multiple key/value pairs from one secret Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.' - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - metadataPolicy: - default: None - description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None - enum: - - None - - Fetch - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - find: - description: 'Used to find secrets based on tags or regular expressions Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.' - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - name: - description: Finds secrets based on the name. - properties: - regexp: - description: Finds secrets base - type: string - type: object - path: - description: A root path to start the find operations. - type: string - tags: - additionalProperties: - type: string - description: Find secrets based on tags. - type: object - type: object - rewrite: - description: Used to rewrite secret Keys after getting them from the secret Provider Multiple Rewrite operations can be provided. They are applied in a layered order (first to last) - items: - properties: - regexp: - description: Used to rewrite with regular expressions. The resulting key will be the output of a regexp.ReplaceAll operation. - properties: - source: - description: Used to define the regular expression of a re.Compiler. - type: string - target: - description: Used to define the target pattern of a ReplaceAll operation. - type: string - required: - - source - - target - type: object - transform: - description: Used to apply string transformation on the secrets. The resulting key will be the output of the template applied by the operation. - properties: - template: - description: Used to define the template to apply on the secret name. `.value ` will specify the secret name in the template. - type: string - required: - - template - type: object - type: object - type: array - sourceRef: - description: SourceRef points to a store or generator which contains secret values ready to use. Use this in combination with Extract or Find pull values out of a specific SecretStore. When sourceRef points to a generator Extract or Find is not supported. The generator returns a static map of values - maxProperties: 1 - properties: - generatorRef: - description: GeneratorRef points to a generator custom resource. - properties: - apiVersion: - default: generators.external-secrets.io/v1alpha1 - description: Specify the apiVersion of the generator resource - type: string - kind: - description: Specify the Kind of the resource, e.g. Password, ACRAccessToken etc. - type: string - name: - description: Specify the name of the generator resource - type: string - required: - - kind - - name - type: object - storeRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - type: object - type: object - type: array - refreshInterval: - default: 1h - description: RefreshInterval is the amount of time before the values are read again from the SecretStore provider Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h" May be set to zero to fetch and create it once. Defaults to 1h. - type: string - secretStoreRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - target: - default: - creationPolicy: Owner - deletionPolicy: Retain - description: ExternalSecretTarget defines the Kubernetes Secret to be created There can be only one target per ExternalSecret. - properties: - creationPolicy: - default: Owner - description: CreationPolicy defines rules on how to create the resulting Secret Defaults to 'Owner' - enum: - - Owner - - Orphan - - Merge - - None - type: string - deletionPolicy: - default: Retain - description: DeletionPolicy defines rules on how to delete the resulting Secret Defaults to 'Retain' - enum: - - Delete - - Merge - - Retain - type: string - immutable: - description: Immutable defines if the final secret will be immutable - type: boolean - name: - description: Name defines the name of the Secret resource to be managed This field is immutable Defaults to the .metadata.name of the ExternalSecret resource - type: string - template: - description: Template defines a blueprint for the created Secret resource. - properties: - data: - additionalProperties: - type: string - type: object - engineVersion: - default: v2 - description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[]. - enum: - - v1 - - v2 - type: string - mergePolicy: - default: Replace - enum: - - Replace - - Merge - type: string - metadata: - description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint. - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - templateFrom: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - literal: - type: string - secret: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - target: - default: Data - enum: - - Data - - Annotations - - Labels - type: string - type: object - type: array - type: - type: string - type: object - type: object - type: object - namespaceSelector: - description: The labels to select by to find the Namespaces to create the ExternalSecrets in. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - 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 - x-kubernetes-map-type: atomic - namespaces: - description: Choose namespaces by name. This field is ORed with anything that NamespaceSelector ends up choosing. - items: - type: string - type: array - refreshTime: - description: The time in which the controller should reconcile its objects and recheck namespaces for labels. - type: string - required: - - externalSecretSpec - type: object - status: - description: ClusterExternalSecretStatus defines the observed state of ClusterExternalSecret. - properties: - conditions: - items: - properties: - message: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - externalSecretName: - description: ExternalSecretName is the name of the ExternalSecrets created by the ClusterExternalSecret - type: string - failedNamespaces: - description: Failed namespaces are the namespaces that failed to apply an ExternalSecret - items: - description: ClusterExternalSecretNamespaceFailure represents a failed namespace deployment and it's reason. - properties: - namespace: - description: Namespace is the namespace that failed when trying to apply an ExternalSecret - type: string - reason: - description: Reason is why the ExternalSecret failed to apply to the namespace - type: string - required: - - namespace - type: object - type: array - provisionedNamespaces: - description: ProvisionedNamespaces are the namespaces where the ClusterExternalSecret has secrets - items: - type: string - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/clustersecretstore.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: clustersecretstores.external-secrets.io -spec: - group: external-secrets.io - names: - categories: - - externalsecrets - kind: ClusterSecretStore - listKind: ClusterSecretStoreList - plural: clustersecretstores - shortNames: - - css - singular: clustersecretstore - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - deprecated: true - name: v1alpha1 - schema: - openAPIV3Schema: - description: ClusterSecretStore represents a secure external location for storing secrets, which can be referenced as part of `storeRef` fields. - 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: SecretStoreSpec defines the desired state of SecretStore. - properties: - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters ES based on this property' - type: string - provider: - description: Used to configure the provider. Only one provider may be set - maxProperties: 1 - minProperties: 1 - properties: - akeyless: - description: Akeyless configures this store to sync secrets using Akeyless Vault provider - properties: - akeylessGWApiURL: - description: Akeyless GW API Url from which the secrets to be fetched from. - type: string - authSecretRef: - description: Auth configures how the operator authenticates with Akeyless. - properties: - kubernetesAuth: - description: Kubernetes authenticates with Akeyless by passing the ServiceAccount token stored in the named Secret resource. - properties: - accessID: - description: the Akeyless Kubernetes auth-method access-id - type: string - k8sConfName: - description: Kubernetes-auth configuration name in Akeyless-Gateway - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Akeyless. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Akeyless. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - accessID - - k8sConfName - type: object - secretRef: - description: Reference to a Secret that contains the details to authenticate with Akeyless. - properties: - accessID: - description: The SecretAccessID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessType: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessTypeParam: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - caBundle: - description: PEM/base64 encoded CA bundle used to validate Akeyless Gateway certificate. Only used if the AkeylessGWApiURL URL is using HTTPS protocol. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Akeyless Gateway certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - required: - - akeylessGWApiURL - - authSecretRef - type: object - alibaba: - description: Alibaba configures this store to sync secrets using Alibaba Cloud provider - properties: - auth: - description: AlibabaAuth contains a secretRef for credentials. - properties: - rrsa: - description: Authenticate against Alibaba using RRSA. - properties: - oidcProviderArn: - type: string - oidcTokenFilePath: - type: string - roleArn: - type: string - sessionName: - type: string - required: - - oidcProviderArn - - oidcTokenFilePath - - roleArn - - sessionName - type: object - secretRef: - description: AlibabaAuthSecretRef holds secret references for Alibaba credentials. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessKeySecretSecretRef: - description: The AccessKeySecret is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - accessKeyIDSecretRef - - accessKeySecretSecretRef - type: object - type: object - regionID: - description: Alibaba Region to be used for the provider - type: string - required: - - auth - - regionID - type: object - aws: - description: AWS configures this store to sync secrets using AWS Secret Manager provider - properties: - auth: - description: 'Auth defines the information necessary to authenticate against AWS if not set aws sdk will infer credentials from your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials' - properties: - jwt: - description: Authenticate against AWS using service account tokens. - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - secretRef: - description: AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - region: - description: AWS Region to be used for the provider - type: string - role: - description: Role is a Role ARN which the SecretManager provider will assume - type: string - service: - description: Service defines which service should be used to fetch the secrets - enum: - - SecretsManager - - ParameterStore - type: string - required: - - region - - service - type: object - azurekv: - description: AzureKV configures this store to sync secrets using Azure Key Vault provider - properties: - authSecretRef: - description: Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. - properties: - clientId: - description: The Azure clientId of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientSecret: - description: The Azure ClientSecret of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - authType: - default: ServicePrincipal - description: 'Auth type defines how to authenticate to the keyvault service. Valid values are: - "ServicePrincipal" (default): Using a service principal (tenantId, clientId, clientSecret) - "ManagedIdentity": Using Managed Identity assigned to the pod (see aad-pod-identity)' - enum: - - ServicePrincipal - - ManagedIdentity - - WorkloadIdentity - type: string - identityId: - description: If multiple Managed Identity is assigned to the pod, you can select the one to be used - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - tenantId: - description: TenantID configures the Azure Tenant to send requests to. Required for ServicePrincipal auth type. - type: string - vaultUrl: - description: Vault Url from which the secrets to be fetched from. - type: string - required: - - vaultUrl - type: object - fake: - description: Fake configures a store with static key/value pairs - properties: - data: - items: - properties: - key: - type: string - value: - type: string - valueMap: - additionalProperties: - type: string - type: object - version: - type: string - required: - - key - type: object - type: array - required: - - data - type: object - gcpsm: - description: GCPSM configures this store to sync secrets using Google Cloud Platform Secret Manager provider - properties: - auth: - description: Auth defines the information necessary to authenticate against GCP - properties: - secretRef: - properties: - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - workloadIdentity: - properties: - clusterLocation: - type: string - clusterName: - type: string - clusterProjectID: - type: string - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - clusterLocation - - clusterName - - serviceAccountRef - type: object - type: object - projectID: - description: ProjectID project where secret is located - type: string - type: object - gitlab: - description: GitLab configures this store to sync secrets using GitLab Variables provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a GitLab instance. - properties: - SecretRef: - properties: - accessToken: - description: AccessToken is used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - SecretRef - type: object - projectID: - description: ProjectID specifies a project where secrets are located. - type: string - url: - description: URL configures the GitLab instance URL. Defaults to https://gitlab.com/. - type: string - required: - - auth - type: object - ibm: - description: IBM configures this store to sync secrets using IBM Cloud provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the IBM secrets manager. - properties: - secretRef: - properties: - secretApiKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - secretRef - type: object - serviceUrl: - description: ServiceURL is the Endpoint URL that is specific to the Secrets Manager service instance - type: string - required: - - auth - type: object - kubernetes: - description: Kubernetes configures this store to sync secrets using a Kubernetes cluster provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a Kubernetes instance. - maxProperties: 1 - minProperties: 1 - properties: - cert: - description: has both clientCert and clientKey as secretKeySelector - properties: - clientCert: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientKey: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - serviceAccount: - description: points to a service account that should be used for authentication - properties: - serviceAccount: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - token: - description: use static token to authenticate with - properties: - bearerToken: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - remoteNamespace: - default: default - description: Remote namespace to fetch the secrets from - type: string - server: - description: configures the Kubernetes server Address. - properties: - caBundle: - description: CABundle is a base64-encoded CA certificate - format: byte - type: string - caProvider: - description: 'see: https://external-secrets.io/v0.4.1/spec/#external-secrets.io/v1alpha1.CAProvider' - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - default: kubernetes.default - description: configures the Kubernetes server Address. - type: string - type: object - required: - - auth - type: object - oracle: - description: Oracle configures this store to sync secrets using Oracle Vault provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Oracle Vault. If empty, instance principal is used. Optionally, the authenticating principal type and/or user data may be supplied for the use of workload identity and user principal. - properties: - secretRef: - description: SecretRef to pass through sensitive information. - properties: - fingerprint: - description: Fingerprint is the fingerprint of the API private key. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - privatekey: - description: PrivateKey is the user's API Signing Key in PEM format, used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - fingerprint - - privatekey - type: object - tenancy: - description: Tenancy is the tenancy OCID where user is located. - type: string - user: - description: User is an access OCID specific to the account. - type: string - required: - - secretRef - - tenancy - - user - type: object - compartment: - description: Compartment is the vault compartment OCID. Required for PushSecret - type: string - encryptionKey: - description: EncryptionKey is the OCID of the encryption key within the vault. Required for PushSecret - type: string - principalType: - description: The type of principal to use for authentication. If left blank, the Auth struct will determine the principal type. This optional field must be specified if using workload identity. - enum: - - "" - - UserPrincipal - - InstancePrincipal - - Workload - type: string - region: - description: Region is the region where vault is located. - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - vault: - description: Vault is the vault's OCID of the specific vault where secret is located. - type: string - required: - - region - - vault - type: object - vault: - description: Vault configures this store to sync secrets using Hashi provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Vault server. - properties: - appRole: - description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource. - properties: - path: - default: approle - description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"' - type: string - roleId: - description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault. - type: string - secretRef: - description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - - roleId - - secretRef - type: object - cert: - description: Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method - properties: - clientCert: - description: ClientCert is a certificate to authenticate using the Cert Vault authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - jwt: - description: Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method - properties: - kubernetesServiceAccountToken: - description: Optional ServiceAccountToken specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: Optional audiences field that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to a single audience `vault` it not specified. - items: - type: string - type: array - expirationSeconds: - description: Optional expiration time in seconds that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to 10 minutes. - format: int64 - type: integer - serviceAccountRef: - description: Service account field containing the name of a kubernetes ServiceAccount. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - serviceAccountRef - type: object - path: - default: jwt - description: 'Path where the JWT authentication backend is mounted in Vault, e.g: "jwt"' - type: string - role: - description: Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - type: object - kubernetes: - description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server. - properties: - mountPath: - default: kubernetes - description: 'Path where the Kubernetes authentication backend is mounted in Vault, e.g: "kubernetes"' - type: string - role: - description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies. - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - mountPath - - role - type: object - ldap: - description: Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method - properties: - path: - default: ldap - description: 'Path where the LDAP authentication backend is mounted in Vault, e.g: "ldap"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a LDAP user name used to authenticate using the LDAP Vault authentication method - type: string - required: - - path - - username - type: object - tokenSecretRef: - description: TokenSecretRef authenticates with Vault by presenting a token. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caBundle: - description: PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Vault server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - forwardInconsistent: - description: ForwardInconsistent tells Vault to forward read-after-write requests to the Vault leader instead of simply retrying within a loop. This can increase performance if the option is enabled serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header - type: boolean - namespace: - description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1". More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces' - type: string - path: - description: 'Path is the mount path of the Vault KV backend endpoint, e.g: "secret". The v2 KV secret engine version specific "/data" path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.' - type: string - readYourWrites: - description: ReadYourWrites ensures isolated read-after-write semantics by providing discovered cluster replication states in each request. More information about eventual consistency in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency - type: boolean - server: - description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' - type: string - version: - default: v2 - description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". - enum: - - v1 - - v2 - type: string - required: - - auth - - server - type: object - webhook: - description: Webhook configures this store to sync secrets using a generic templated webhook - properties: - body: - description: Body - type: string - caBundle: - description: PEM encoded CA bundle used to validate webhook server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate webhook server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - headers: - additionalProperties: - type: string - description: Headers - type: object - method: - description: Webhook Method - type: string - result: - description: Result formatting - properties: - jsonPath: - description: Json path of return value - type: string - type: object - secrets: - description: Secrets to fill in templates These secrets will be passed to the templating function as key value pairs under the given name - items: - properties: - name: - description: Name of this secret in templates - type: string - secretRef: - description: Secret ref to fill in credentials - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - name - - secretRef - type: object - type: array - timeout: - description: Timeout - type: string - url: - description: Webhook url to call - type: string - required: - - result - - url - type: object - yandexlockbox: - description: YandexLockbox configures this store to sync secrets using Yandex Lockbox provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Lockbox - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - type: object - retrySettings: - description: Used to configure http retries if failed - properties: - maxRetries: - format: int32 - type: integer - retryInterval: - type: string - type: object - required: - - provider - type: object - status: - description: SecretStoreStatus defines the observed state of the SecretStore. - properties: - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - - jsonPath: .status.capabilities - name: Capabilities - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: ClusterSecretStore represents a secure external location for storing secrets, which can be referenced as part of `storeRef` fields. - 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: SecretStoreSpec defines the desired state of SecretStore. - properties: - conditions: - description: Used to constraint a ClusterSecretStore to specific namespaces. Relevant only to ClusterSecretStore - items: - description: ClusterSecretStoreCondition describes a condition by which to choose namespaces to process ExternalSecrets in for a ClusterSecretStore instance. - properties: - namespaceSelector: - description: Choose namespace using a labelSelector - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - 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 - x-kubernetes-map-type: atomic - namespaces: - description: Choose namespaces by name - items: - type: string - type: array - type: object - type: array - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters ES based on this property' - type: string - provider: - description: Used to configure the provider. Only one provider may be set - maxProperties: 1 - minProperties: 1 - properties: - akeyless: - description: Akeyless configures this store to sync secrets using Akeyless Vault provider - properties: - akeylessGWApiURL: - description: Akeyless GW API Url from which the secrets to be fetched from. - type: string - authSecretRef: - description: Auth configures how the operator authenticates with Akeyless. - properties: - kubernetesAuth: - description: Kubernetes authenticates with Akeyless by passing the ServiceAccount token stored in the named Secret resource. - properties: - accessID: - description: the Akeyless Kubernetes auth-method access-id - type: string - k8sConfName: - description: Kubernetes-auth configuration name in Akeyless-Gateway - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Akeyless. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Akeyless. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - accessID - - k8sConfName - type: object - secretRef: - description: Reference to a Secret that contains the details to authenticate with Akeyless. - properties: - accessID: - description: The SecretAccessID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessType: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessTypeParam: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - caBundle: - description: PEM/base64 encoded CA bundle used to validate Akeyless Gateway certificate. Only used if the AkeylessGWApiURL URL is using HTTPS protocol. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Akeyless Gateway certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - required: - - akeylessGWApiURL - - authSecretRef - type: object - alibaba: - description: Alibaba configures this store to sync secrets using Alibaba Cloud provider - properties: - auth: - description: AlibabaAuth contains a secretRef for credentials. - properties: - rrsa: - description: Authenticate against Alibaba using RRSA. - properties: - oidcProviderArn: - type: string - oidcTokenFilePath: - type: string - roleArn: - type: string - sessionName: - type: string - required: - - oidcProviderArn - - oidcTokenFilePath - - roleArn - - sessionName - type: object - secretRef: - description: AlibabaAuthSecretRef holds secret references for Alibaba credentials. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessKeySecretSecretRef: - description: The AccessKeySecret is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - accessKeyIDSecretRef - - accessKeySecretSecretRef - type: object - type: object - regionID: - description: Alibaba Region to be used for the provider - type: string - required: - - auth - - regionID - type: object - aws: - description: AWS configures this store to sync secrets using AWS Secret Manager provider - properties: - additionalRoles: - description: AdditionalRoles is a chained list of Role ARNs which the provider will sequentially assume before assuming the Role - items: - type: string - type: array - auth: - description: 'Auth defines the information necessary to authenticate against AWS if not set aws sdk will infer credentials from your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials' - properties: - jwt: - description: Authenticate against AWS using service account tokens. - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - secretRef: - description: AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - externalID: - description: AWS External ID set on assumed IAM roles - type: string - region: - description: AWS Region to be used for the provider - type: string - role: - description: Role is a Role ARN which the provider will assume - type: string - secretsManager: - description: SecretsManager defines how the provider behaves when interacting with AWS SecretsManager - properties: - forceDeleteWithoutRecovery: - description: 'Specifies whether to delete the secret without any recovery window. You can''t use both this parameter and RecoveryWindowInDays in the same call. If you don''t use either, then by default Secrets Manager uses a 30 day recovery window. see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-ForceDeleteWithoutRecovery' - type: boolean - recoveryWindowInDays: - description: 'The number of days from 7 to 30 that Secrets Manager waits before permanently deleting the secret. You can''t use both this parameter and ForceDeleteWithoutRecovery in the same call. If you don''t use either, then by default Secrets Manager uses a 30 day recovery window. see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-RecoveryWindowInDays' - format: int64 - type: integer - type: object - service: - description: Service defines which service should be used to fetch the secrets - enum: - - SecretsManager - - ParameterStore - type: string - sessionTags: - description: AWS STS assume role session tags - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - transitiveTagKeys: - description: AWS STS assume role transitive session tags. Required when multiple rules are used with the provider - items: - type: string - type: array - required: - - region - - service - type: object - azurekv: - description: AzureKV configures this store to sync secrets using Azure Key Vault provider - properties: - authSecretRef: - description: Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. - properties: - clientId: - description: The Azure clientId of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientSecret: - description: The Azure ClientSecret of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - authType: - default: ServicePrincipal - description: 'Auth type defines how to authenticate to the keyvault service. Valid values are: - "ServicePrincipal" (default): Using a service principal (tenantId, clientId, clientSecret) - "ManagedIdentity": Using Managed Identity assigned to the pod (see aad-pod-identity)' - enum: - - ServicePrincipal - - ManagedIdentity - - WorkloadIdentity - type: string - environmentType: - default: PublicCloud - description: 'EnvironmentType specifies the Azure cloud environment endpoints to use for connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint. The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152 PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud' - enum: - - PublicCloud - - USGovernmentCloud - - ChinaCloud - - GermanCloud - type: string - identityId: - description: If multiple Managed Identity is assigned to the pod, you can select the one to be used - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - tenantId: - description: TenantID configures the Azure Tenant to send requests to. Required for ServicePrincipal auth type. - type: string - vaultUrl: - description: Vault Url from which the secrets to be fetched from. - type: string - required: - - vaultUrl - type: object - conjur: - description: Conjur configures this store to sync secrets using conjur provider - properties: - auth: - properties: - apikey: - properties: - account: - type: string - apiKeyRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - userRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - account - - apiKeyRef - - userRef - type: object - jwt: - properties: - account: - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Conjur using the JWT authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional ServiceAccountRef specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - serviceID: - description: The conjur authn jwt webservice id - type: string - required: - - account - - serviceID - type: object - type: object - caBundle: - type: string - caProvider: - description: Used to provide custom certificate authority (CA) certificates for a secret store. The CAProvider points to a Secret or ConfigMap resource that contains a PEM-encoded certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - type: string - required: - - auth - - url - type: object - delinea: - description: Delinea DevOps Secrets Vault https://docs.delinea.com/online-help/products/devops-secrets-vault/current - properties: - clientId: - description: ClientID is the non-secret part of the credential. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - clientSecret: - description: ClientSecret is the secret part of the credential. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - tenant: - description: Tenant is the chosen hostname / site name. - type: string - tld: - description: TLD is based on the server location that was chosen during provisioning. If unset, defaults to "com". - type: string - urlTemplate: - description: URLTemplate If unset, defaults to "https://%s.secretsvaultcloud.%s/v1/%s%s". - type: string - required: - - clientId - - clientSecret - - tenant - type: object - doppler: - description: Doppler configures this store to sync secrets using the Doppler provider - properties: - auth: - description: Auth configures how the Operator authenticates with the Doppler API - properties: - secretRef: - properties: - dopplerToken: - description: The DopplerToken is used for authentication. See https://docs.doppler.com/reference/api#authentication for auth token types. The Key attribute defaults to dopplerToken if not specified. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - dopplerToken - type: object - required: - - secretRef - type: object - config: - description: Doppler config (required if not using a Service Token) - type: string - format: - description: Format enables the downloading of secrets as a file (string) - enum: - - json - - dotnet-json - - env - - yaml - - docker - type: string - nameTransformer: - description: Environment variable compatible name transforms that change secret names to a different format - enum: - - upper-camel - - camel - - lower-snake - - tf-var - - dotnet-env - - lower-kebab - type: string - project: - description: Doppler project (required if not using a Service Token) - type: string - required: - - auth - type: object - fake: - description: Fake configures a store with static key/value pairs - properties: - data: - items: - properties: - key: - type: string - value: - type: string - valueMap: - additionalProperties: - type: string - description: 'Deprecated: ValueMap is deprecated and is intended to be removed in the future, use the `value` field instead.' - type: object - version: - type: string - required: - - key - type: object - type: array - required: - - data - type: object - gcpsm: - description: GCPSM configures this store to sync secrets using Google Cloud Platform Secret Manager provider - properties: - auth: - description: Auth defines the information necessary to authenticate against GCP - properties: - secretRef: - properties: - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - workloadIdentity: - properties: - clusterLocation: - type: string - clusterName: - type: string - clusterProjectID: - type: string - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - clusterLocation - - clusterName - - serviceAccountRef - type: object - type: object - projectID: - description: ProjectID project where secret is located - type: string - type: object - gitlab: - description: GitLab configures this store to sync secrets using GitLab Variables provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a GitLab instance. - properties: - SecretRef: - properties: - accessToken: - description: AccessToken is used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - SecretRef - type: object - environment: - description: Environment environment_scope of gitlab CI/CD variables (Please see https://docs.gitlab.com/ee/ci/environments/#create-a-static-environment on how to create environments) - type: string - groupIDs: - description: GroupIDs specify, which gitlab groups to pull secrets from. Group secrets are read from left to right followed by the project variables. - items: - type: string - type: array - inheritFromGroups: - description: InheritFromGroups specifies whether parent groups should be discovered and checked for secrets. - type: boolean - projectID: - description: ProjectID specifies a project where secrets are located. - type: string - url: - description: URL configures the GitLab instance URL. Defaults to https://gitlab.com/. - type: string - required: - - auth - type: object - ibm: - description: IBM configures this store to sync secrets using IBM Cloud provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the IBM secrets manager. - maxProperties: 1 - minProperties: 1 - properties: - containerAuth: - description: IBM Container-based auth with IAM Trusted Profile. - properties: - iamEndpoint: - type: string - profile: - description: the IBM Trusted Profile - type: string - tokenLocation: - description: Location the token is mounted on the pod - type: string - required: - - profile - type: object - secretRef: - properties: - secretApiKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - serviceUrl: - description: ServiceURL is the Endpoint URL that is specific to the Secrets Manager service instance - type: string - required: - - auth - type: object - keepersecurity: - description: KeeperSecurity configures this store to sync secrets using the KeeperSecurity provider - properties: - authRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - folderID: - type: string - required: - - authRef - - folderID - type: object - kubernetes: - description: Kubernetes configures this store to sync secrets using a Kubernetes cluster provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a Kubernetes instance. - maxProperties: 1 - minProperties: 1 - properties: - cert: - description: has both clientCert and clientKey as secretKeySelector - properties: - clientCert: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientKey: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - serviceAccount: - description: points to a service account that should be used for authentication - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - token: - description: use static token to authenticate with - properties: - bearerToken: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - remoteNamespace: - default: default - description: Remote namespace to fetch the secrets from - type: string - server: - description: configures the Kubernetes server Address. - properties: - caBundle: - description: CABundle is a base64-encoded CA certificate - format: byte - type: string - caProvider: - description: 'see: https://external-secrets.io/v0.4.1/spec/#external-secrets.io/v1alpha1.CAProvider' - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - default: kubernetes.default - description: configures the Kubernetes server Address. - type: string - type: object - required: - - auth - type: object - onepassword: - description: OnePassword configures this store to sync secrets using the 1Password Cloud provider - properties: - auth: - description: Auth defines the information necessary to authenticate against OnePassword Connect Server - properties: - secretRef: - description: OnePasswordAuthSecretRef holds secret references for 1Password credentials. - properties: - connectTokenSecretRef: - description: The ConnectToken is used for authentication to a 1Password Connect Server. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - connectTokenSecretRef - type: object - required: - - secretRef - type: object - connectHost: - description: ConnectHost defines the OnePassword Connect Server to connect to - type: string - vaults: - additionalProperties: - type: integer - description: Vaults defines which OnePassword vaults to search in which order - type: object - required: - - auth - - connectHost - - vaults - type: object - oracle: - description: Oracle configures this store to sync secrets using Oracle Vault provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Oracle Vault. If empty, use the instance principal, otherwise the user credentials specified in Auth. - properties: - secretRef: - description: SecretRef to pass through sensitive information. - properties: - fingerprint: - description: Fingerprint is the fingerprint of the API private key. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - privatekey: - description: PrivateKey is the user's API Signing Key in PEM format, used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - fingerprint - - privatekey - type: object - tenancy: - description: Tenancy is the tenancy OCID where user is located. - type: string - user: - description: User is an access OCID specific to the account. - type: string - required: - - secretRef - - tenancy - - user - type: object - compartment: - description: Compartment is the vault compartment OCID. Required for PushSecret - type: string - encryptionKey: - description: EncryptionKey is the OCID of the encryption key within the vault. Required for PushSecret - type: string - principalType: - description: The type of principal to use for authentication. If left blank, the Auth struct will determine the principal type. This optional field must be specified if using workload identity. - enum: - - "" - - UserPrincipal - - InstancePrincipal - - Workload - type: string - region: - description: Region is the region where vault is located. - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - vault: - description: Vault is the vault's OCID of the specific vault where secret is located. - type: string - required: - - region - - vault - type: object - scaleway: - description: Scaleway - properties: - accessKey: - description: AccessKey is the non-secret part of the api key. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - apiUrl: - description: APIURL is the url of the api to use. Defaults to https://api.scaleway.com - type: string - projectId: - description: 'ProjectID is the id of your project, which you can find in the console: https://console.scaleway.com/project/settings' - type: string - region: - description: 'Region where your secrets are located: https://developers.scaleway.com/en/quickstart/#region-and-zone' - type: string - secretKey: - description: SecretKey is the non-secret part of the api key. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - required: - - accessKey - - projectId - - region - - secretKey - type: object - senhasegura: - description: Senhasegura configures this store to sync secrets using senhasegura provider - properties: - auth: - description: Auth defines parameters to authenticate in senhasegura - properties: - clientId: - type: string - clientSecretSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - clientId - - clientSecretSecretRef - type: object - ignoreSslCertificate: - default: false - description: IgnoreSslCertificate defines if SSL certificate must be ignored - type: boolean - module: - description: Module defines which senhasegura module should be used to get secrets - type: string - url: - description: URL of senhasegura - type: string - required: - - auth - - module - - url - type: object - vault: - description: Vault configures this store to sync secrets using Hashi provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Vault server. - properties: - appRole: - description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource. - properties: - path: - default: approle - description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"' - type: string - roleId: - description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault. - type: string - roleRef: - description: Reference to a key in a Secret that contains the App Role ID used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role id. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - - secretRef - type: object - cert: - description: Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method - properties: - clientCert: - description: ClientCert is a certificate to authenticate using the Cert Vault authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - iam: - description: Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials AWS IAM authentication method - properties: - externalID: - description: AWS External ID set on assumed IAM roles - type: string - jwt: - description: Specify a service account with IRSA enabled - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - path: - description: 'Path where the AWS auth method is enabled in Vault, e.g: "aws"' - type: string - region: - description: AWS region - type: string - role: - description: This is the AWS role to be assumed before talking to vault - type: string - secretRef: - description: Specify credentials in a Secret object - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - vaultAwsIamServerID: - description: 'X-Vault-AWS-IAM-Server-ID is an additional header used by Vault IAM auth method to mitigate against different types of replay attacks. More details here: https://developer.hashicorp.com/vault/docs/auth/aws' - type: string - vaultRole: - description: Vault Role. In vault, a role describes an identity with a set of permissions, groups, or policies you want to attach a user of the secrets engine - type: string - required: - - vaultRole - type: object - jwt: - description: Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method - properties: - kubernetesServiceAccountToken: - description: Optional ServiceAccountToken specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: 'Optional audiences field that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to a single audience `vault` it not specified. Deprecated: use serviceAccountRef.Audiences instead' - items: - type: string - type: array - expirationSeconds: - description: 'Optional expiration time in seconds that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Deprecated: this will be removed in the future. Defaults to 10 minutes.' - format: int64 - type: integer - serviceAccountRef: - description: Service account field containing the name of a kubernetes ServiceAccount. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - serviceAccountRef - type: object - path: - default: jwt - description: 'Path where the JWT authentication backend is mounted in Vault, e.g: "jwt"' - type: string - role: - description: Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - type: object - kubernetes: - description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server. - properties: - mountPath: - default: kubernetes - description: 'Path where the Kubernetes authentication backend is mounted in Vault, e.g: "kubernetes"' - type: string - role: - description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies. - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - mountPath - - role - type: object - ldap: - description: Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method - properties: - path: - default: ldap - description: 'Path where the LDAP authentication backend is mounted in Vault, e.g: "ldap"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a LDAP user name used to authenticate using the LDAP Vault authentication method - type: string - required: - - path - - username - type: object - tokenSecretRef: - description: TokenSecretRef authenticates with Vault by presenting a token. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - userPass: - description: UserPass authenticates with Vault by passing username/password pair - properties: - path: - default: user - description: 'Path where the UserPassword authentication backend is mounted in Vault, e.g: "user"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the user used to authenticate with Vault using the UserPass authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a user name used to authenticate using the UserPass Vault authentication method - type: string - required: - - path - - username - type: object - type: object - caBundle: - description: PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Vault server certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - forwardInconsistent: - description: ForwardInconsistent tells Vault to forward read-after-write requests to the Vault leader instead of simply retrying within a loop. This can increase performance if the option is enabled serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header - type: boolean - namespace: - description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1". More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces' - type: string - path: - description: 'Path is the mount path of the Vault KV backend endpoint, e.g: "secret". The v2 KV secret engine version specific "/data" path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.' - type: string - readYourWrites: - description: ReadYourWrites ensures isolated read-after-write semantics by providing discovered cluster replication states in each request. More information about eventual consistency in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency - type: boolean - server: - description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' - type: string - version: - default: v2 - description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". - enum: - - v1 - - v2 - type: string - required: - - auth - - server - type: object - webhook: - description: Webhook configures this store to sync secrets using a generic templated webhook - properties: - body: - description: Body - type: string - caBundle: - description: PEM encoded CA bundle used to validate webhook server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate webhook server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - headers: - additionalProperties: - type: string - description: Headers - type: object - method: - description: Webhook Method - type: string - result: - description: Result formatting - properties: - jsonPath: - description: Json path of return value - type: string - type: object - secrets: - description: Secrets to fill in templates These secrets will be passed to the templating function as key value pairs under the given name - items: - properties: - name: - description: Name of this secret in templates - type: string - secretRef: - description: Secret ref to fill in credentials - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - name - - secretRef - type: object - type: array - timeout: - description: Timeout - type: string - url: - description: Webhook url to call - type: string - required: - - result - - url - type: object - yandexcertificatemanager: - description: YandexCertificateManager configures this store to sync secrets using Yandex Certificate Manager provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Certificate Manager - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - yandexlockbox: - description: YandexLockbox configures this store to sync secrets using Yandex Lockbox provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Lockbox - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - type: object - refreshInterval: - description: Used to configure store refresh interval in seconds. Empty or 0 will default to the controller config. - type: integer - retrySettings: - description: Used to configure http retries if failed - properties: - maxRetries: - format: int32 - type: integer - retryInterval: - type: string - type: object - required: - - provider - type: object - status: - description: SecretStoreStatus defines the observed state of the SecretStore. - properties: - capabilities: - description: SecretStoreCapabilities defines the possible operations a SecretStore can do. - type: string - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/ecrauthorizationtoken.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: ecrauthorizationtokens.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - ecrauthorizationtoken - kind: ECRAuthorizationToken - listKind: ECRAuthorizationTokenList - plural: ecrauthorizationtokens - shortNames: - - ecrauthorizationtoken - singular: ecrauthorizationtoken - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: ECRAuthorizationTokenSpec uses the GetAuthorizationToken API to retrieve an authorization token. The authorization token is valid for 12 hours. The authorizationToken returned is a base64 encoded string that can be decoded and used in a docker login command to authenticate to a registry. For more information, see Registry authentication (https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) in the Amazon Elastic Container Registry User Guide. - 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: - properties: - auth: - description: Auth defines how to authenticate with AWS - properties: - jwt: - description: Authenticate against AWS using service account tokens. - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - secretRef: - description: AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - region: - description: Region specifies the region to operate in. - type: string - role: - description: You can assume a role before making calls to the desired AWS service. - type: string - required: - - region - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/externalsecret.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: externalsecrets.external-secrets.io -spec: - group: external-secrets.io - names: - categories: - - externalsecrets - kind: ExternalSecret - listKind: ExternalSecretList - plural: externalsecrets - shortNames: - - es - singular: externalsecret - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.secretStoreRef.name - name: Store - type: string - - jsonPath: .spec.refreshInterval - name: Refresh Interval - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - deprecated: true - name: v1alpha1 - schema: - openAPIV3Schema: - description: ExternalSecret is the Schema for the external-secrets 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: ExternalSecretSpec defines the desired state of ExternalSecret. - properties: - data: - description: Data defines the connection between the Kubernetes Secret keys and the Provider data - items: - description: ExternalSecretData defines the connection between the Kubernetes Secret key (spec.data.) and the Provider data. - properties: - remoteRef: - description: ExternalSecretDataRemoteRef defines Provider data location. - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - secretKey: - type: string - required: - - remoteRef - - secretKey - type: object - type: array - dataFrom: - description: DataFrom is used to fetch all properties from a specific Provider data If multiple entries are specified, the Secret keys are merged in the specified order - items: - description: ExternalSecretDataRemoteRef defines Provider data location. - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - type: array - refreshInterval: - default: 1h - description: RefreshInterval is the amount of time before the values are read again from the SecretStore provider Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h" May be set to zero to fetch and create it once. Defaults to 1h. - type: string - secretStoreRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - target: - description: ExternalSecretTarget defines the Kubernetes Secret to be created There can be only one target per ExternalSecret. - properties: - creationPolicy: - default: Owner - description: CreationPolicy defines rules on how to create the resulting Secret Defaults to 'Owner' - enum: - - Owner - - Merge - - None - type: string - immutable: - description: Immutable defines if the final secret will be immutable - type: boolean - name: - description: Name defines the name of the Secret resource to be managed This field is immutable Defaults to the .metadata.name of the ExternalSecret resource - type: string - template: - description: Template defines a blueprint for the created Secret resource. - properties: - data: - additionalProperties: - type: string - type: object - engineVersion: - default: v1 - description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[]. - enum: - - v1 - - v2 - type: string - metadata: - description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint. - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - templateFrom: - items: - maxProperties: 1 - minProperties: 1 - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - type: object - type: array - type: - type: string - type: object - type: object - required: - - secretStoreRef - - target - type: object - status: - properties: - binding: - description: Binding represents a servicebinding.io Provisioned Service reference to the secret - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - refreshTime: - description: refreshTime is the time and date the external secret was fetched and the target secret updated - format: date-time - nullable: true - type: string - syncedResourceVersion: - description: SyncedResourceVersion keeps track of the last synced version - type: string - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .spec.secretStoreRef.name - name: Store - type: string - - jsonPath: .spec.refreshInterval - name: Refresh Interval - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: ExternalSecret is the Schema for the external-secrets 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: ExternalSecretSpec defines the desired state of ExternalSecret. - properties: - data: - description: Data defines the connection between the Kubernetes Secret keys and the Provider data - items: - description: ExternalSecretData defines the connection between the Kubernetes Secret key (spec.data.) and the Provider data. - properties: - remoteRef: - description: RemoteRef points to the remote secret and defines which secret (version/property/..) to fetch. - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - metadataPolicy: - default: None - description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None - enum: - - None - - Fetch - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - secretKey: - description: SecretKey defines the key in which the controller stores the value. This is the key in the Kind=Secret - type: string - sourceRef: - description: SourceRef allows you to override the source from which the value will pulled from. - maxProperties: 1 - properties: - generatorRef: - description: "GeneratorRef points to a generator custom resource. \n Deprecated: The generatorRef is not implemented in .data[]. this will be removed with v1." - properties: - apiVersion: - default: generators.external-secrets.io/v1alpha1 - description: Specify the apiVersion of the generator resource - type: string - kind: - description: Specify the Kind of the resource, e.g. Password, ACRAccessToken etc. - type: string - name: - description: Specify the name of the generator resource - type: string - required: - - kind - - name - type: object - storeRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - type: object - required: - - remoteRef - - secretKey - type: object - type: array - dataFrom: - description: DataFrom is used to fetch all properties from a specific Provider data If multiple entries are specified, the Secret keys are merged in the specified order - items: - properties: - extract: - description: 'Used to extract multiple key/value pairs from one secret Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.' - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - key: - description: Key is the key used in the Provider, mandatory - type: string - metadataPolicy: - default: None - description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None - enum: - - None - - Fetch - type: string - property: - description: Used to select a specific property of the Provider value (if a map), if supported - type: string - version: - description: Used to select a specific version of the Provider value, if supported - type: string - required: - - key - type: object - find: - description: 'Used to find secrets based on tags or regular expressions Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.' - properties: - conversionStrategy: - default: Default - description: Used to define a conversion Strategy - enum: - - Default - - Unicode - type: string - decodingStrategy: - default: None - description: Used to define a decoding Strategy - enum: - - Auto - - Base64 - - Base64URL - - None - type: string - name: - description: Finds secrets based on the name. - properties: - regexp: - description: Finds secrets base - type: string - type: object - path: - description: A root path to start the find operations. - type: string - tags: - additionalProperties: - type: string - description: Find secrets based on tags. - type: object - type: object - rewrite: - description: Used to rewrite secret Keys after getting them from the secret Provider Multiple Rewrite operations can be provided. They are applied in a layered order (first to last) - items: - properties: - regexp: - description: Used to rewrite with regular expressions. The resulting key will be the output of a regexp.ReplaceAll operation. - properties: - source: - description: Used to define the regular expression of a re.Compiler. - type: string - target: - description: Used to define the target pattern of a ReplaceAll operation. - type: string - required: - - source - - target - type: object - transform: - description: Used to apply string transformation on the secrets. The resulting key will be the output of the template applied by the operation. - properties: - template: - description: Used to define the template to apply on the secret name. `.value ` will specify the secret name in the template. - type: string - required: - - template - type: object - type: object - type: array - sourceRef: - description: SourceRef points to a store or generator which contains secret values ready to use. Use this in combination with Extract or Find pull values out of a specific SecretStore. When sourceRef points to a generator Extract or Find is not supported. The generator returns a static map of values - maxProperties: 1 - properties: - generatorRef: - description: GeneratorRef points to a generator custom resource. - properties: - apiVersion: - default: generators.external-secrets.io/v1alpha1 - description: Specify the apiVersion of the generator resource - type: string - kind: - description: Specify the Kind of the resource, e.g. Password, ACRAccessToken etc. - type: string - name: - description: Specify the name of the generator resource - type: string - required: - - kind - - name - type: object - storeRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - type: object - type: object - type: array - refreshInterval: - default: 1h - description: RefreshInterval is the amount of time before the values are read again from the SecretStore provider Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h" May be set to zero to fetch and create it once. Defaults to 1h. - type: string - secretStoreRef: - description: SecretStoreRef defines which SecretStore to fetch the ExternalSecret data. - properties: - kind: - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - name: - description: Name of the SecretStore resource - type: string - required: - - name - type: object - target: - default: - creationPolicy: Owner - deletionPolicy: Retain - description: ExternalSecretTarget defines the Kubernetes Secret to be created There can be only one target per ExternalSecret. - properties: - creationPolicy: - default: Owner - description: CreationPolicy defines rules on how to create the resulting Secret Defaults to 'Owner' - enum: - - Owner - - Orphan - - Merge - - None - type: string - deletionPolicy: - default: Retain - description: DeletionPolicy defines rules on how to delete the resulting Secret Defaults to 'Retain' - enum: - - Delete - - Merge - - Retain - type: string - immutable: - description: Immutable defines if the final secret will be immutable - type: boolean - name: - description: Name defines the name of the Secret resource to be managed This field is immutable Defaults to the .metadata.name of the ExternalSecret resource - type: string - template: - description: Template defines a blueprint for the created Secret resource. - properties: - data: - additionalProperties: - type: string - type: object - engineVersion: - default: v2 - description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[]. - enum: - - v1 - - v2 - type: string - mergePolicy: - default: Replace - enum: - - Replace - - Merge - type: string - metadata: - description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint. - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - templateFrom: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - literal: - type: string - secret: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - target: - default: Data - enum: - - Data - - Annotations - - Labels - type: string - type: object - type: array - type: - type: string - type: object - type: object - type: object - status: - properties: - binding: - description: Binding represents a servicebinding.io Provisioned Service reference to the secret - properties: - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - type: object - x-kubernetes-map-type: atomic - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - refreshTime: - description: refreshTime is the time and date the external secret was fetched and the target secret updated - format: date-time - nullable: true - type: string - syncedResourceVersion: - description: SyncedResourceVersion keeps track of the last synced version - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/fake.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: fakes.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - fake - kind: Fake - listKind: FakeList - plural: fakes - shortNames: - - fake - singular: fake - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: Fake generator is used for testing. It lets you define a static set of credentials that is always returned. - 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: FakeSpec contains the static data. - properties: - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters VDS based on this property' - type: string - data: - additionalProperties: - type: string - description: Data defines the static data returned by this generator. - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/gcraccesstoken.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: gcraccesstokens.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - gcraccesstoken - kind: GCRAccessToken - listKind: GCRAccessTokenList - plural: gcraccesstokens - shortNames: - - gcraccesstoken - singular: gcraccesstoken - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: GCRAccessToken generates an GCP access token that can be used to authenticate with GCR. - 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: - properties: - auth: - description: Auth defines the means for authenticating with GCP - properties: - secretRef: - properties: - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - workloadIdentity: - properties: - clusterLocation: - type: string - clusterName: - type: string - clusterProjectID: - type: string - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - clusterLocation - - clusterName - - serviceAccountRef - type: object - type: object - projectID: - description: ProjectID defines which project to use to authenticate with - type: string - required: - - auth - - projectID - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/password.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: passwords.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - password - kind: Password - listKind: PasswordList - plural: passwords - shortNames: - - password - singular: password - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: Password generates a random password based on the configuration parameters in spec. You can specify the length, characterset and other attributes. - 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: PasswordSpec controls the behavior of the password generator. - properties: - allowRepeat: - default: false - description: set AllowRepeat to true to allow repeating characters. - type: boolean - digits: - description: Digits specifies the number of digits in the generated password. If omitted it defaults to 25% of the length of the password - type: integer - length: - default: 24 - description: Length of the password to be generated. Defaults to 24 - type: integer - noUpper: - default: false - description: Set NoUpper to disable uppercase characters - type: boolean - symbolCharacters: - description: SymbolCharacters specifies the special characters that should be used in the generated password. - type: string - symbols: - description: Symbols specifies the number of symbol characters in the generated password. If omitted it defaults to 25% of the length of the password - type: integer - required: - - allowRepeat - - length - - noUpper - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/pushsecret.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: pushsecrets.external-secrets.io -spec: - group: external-secrets.io - names: - categories: - - pushsecrets - kind: PushSecret - listKind: PushSecretList - plural: pushsecrets - singular: pushsecret - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - 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: PushSecretSpec configures the behavior of the PushSecret. - properties: - data: - description: Secret Data that should be pushed to providers - items: - properties: - match: - description: Match a given Secret Key to be pushed to the provider. - properties: - remoteRef: - description: Remote Refs to push to providers. - properties: - property: - description: Name of the property in the resulting secret - type: string - remoteKey: - description: Name of the resulting provider secret. - type: string - required: - - remoteKey - type: object - secretKey: - description: Secret Key to be pushed - type: string - required: - - remoteRef - type: object - metadata: - description: Metadata is metadata attached to the secret. The structure of metadata is provider specific, please look it up in the provider documentation. - x-kubernetes-preserve-unknown-fields: true - required: - - match - type: object - type: array - deletionPolicy: - default: None - description: 'Deletion Policy to handle Secrets in the provider. Possible Values: "Delete/None". Defaults to "None".' - enum: - - Delete - - None - type: string - refreshInterval: - description: The Interval to which External Secrets will try to push a secret definition - type: string - secretStoreRefs: - items: - properties: - kind: - default: SecretStore - description: Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to `SecretStore` - type: string - labelSelector: - description: Optionally, sync to secret stores with label selector - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - 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 - x-kubernetes-map-type: atomic - name: - description: Optionally, sync to the SecretStore of the given name - type: string - type: object - type: array - selector: - description: The Secret Selector (k8s source) for the Push Secret - properties: - secret: - description: Select a Secret to Push. - properties: - name: - description: Name of the Secret. The Secret must exist in the same namespace as the PushSecret manifest. - type: string - required: - - name - type: object - required: - - secret - type: object - template: - description: Template defines a blueprint for the created Secret resource. - properties: - data: - additionalProperties: - type: string - type: object - engineVersion: - default: v2 - description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[]. - enum: - - v1 - - v2 - type: string - mergePolicy: - default: Replace - enum: - - Replace - - Merge - type: string - metadata: - description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint. - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - templateFrom: - items: - properties: - configMap: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - literal: - type: string - secret: - properties: - items: - items: - properties: - key: - type: string - templateAs: - default: Values - enum: - - Values - - KeysAndValues - type: string - required: - - key - type: object - type: array - name: - type: string - required: - - items - - name - type: object - target: - default: Data - enum: - - Data - - Annotations - - Labels - type: string - type: object - type: array - type: - type: string - type: object - required: - - secretStoreRefs - - selector - type: object - status: - description: PushSecretStatus indicates the history of the status of PushSecret. - properties: - conditions: - items: - description: PushSecretStatusCondition indicates the status of the PushSecret. - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - description: PushSecretConditionType indicates the condition of the PushSecret. - type: string - required: - - status - - type - type: object - type: array - refreshTime: - description: refreshTime is the time and date the external secret was fetched and the target secret updated - format: date-time - nullable: true - type: string - syncedPushSecrets: - additionalProperties: - additionalProperties: - properties: - match: - description: Match a given Secret Key to be pushed to the provider. - properties: - remoteRef: - description: Remote Refs to push to providers. - properties: - property: - description: Name of the property in the resulting secret - type: string - remoteKey: - description: Name of the resulting provider secret. - type: string - required: - - remoteKey - type: object - secretKey: - description: Secret Key to be pushed - type: string - required: - - remoteRef - type: object - metadata: - description: Metadata is metadata attached to the secret. The structure of metadata is provider specific, please look it up in the provider documentation. - x-kubernetes-preserve-unknown-fields: true - required: - - match - type: object - type: object - description: Synced Push Secrets for later deletion. Matches Secret Stores to PushSecretData that was stored to that secretStore. - type: object - syncedResourceVersion: - description: SyncedResourceVersion keeps track of the last synced version. - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/secretstore.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: secretstores.external-secrets.io -spec: - group: external-secrets.io - names: - categories: - - externalsecrets - kind: SecretStore - listKind: SecretStoreList - plural: secretstores - shortNames: - - ss - singular: secretstore - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - deprecated: true - name: v1alpha1 - schema: - openAPIV3Schema: - description: SecretStore represents a secure external location for storing secrets, which can be referenced as part of `storeRef` fields. - 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: SecretStoreSpec defines the desired state of SecretStore. - properties: - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters ES based on this property' - type: string - provider: - description: Used to configure the provider. Only one provider may be set - maxProperties: 1 - minProperties: 1 - properties: - akeyless: - description: Akeyless configures this store to sync secrets using Akeyless Vault provider - properties: - akeylessGWApiURL: - description: Akeyless GW API Url from which the secrets to be fetched from. - type: string - authSecretRef: - description: Auth configures how the operator authenticates with Akeyless. - properties: - kubernetesAuth: - description: Kubernetes authenticates with Akeyless by passing the ServiceAccount token stored in the named Secret resource. - properties: - accessID: - description: the Akeyless Kubernetes auth-method access-id - type: string - k8sConfName: - description: Kubernetes-auth configuration name in Akeyless-Gateway - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Akeyless. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Akeyless. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - accessID - - k8sConfName - type: object - secretRef: - description: Reference to a Secret that contains the details to authenticate with Akeyless. - properties: - accessID: - description: The SecretAccessID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessType: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessTypeParam: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - caBundle: - description: PEM/base64 encoded CA bundle used to validate Akeyless Gateway certificate. Only used if the AkeylessGWApiURL URL is using HTTPS protocol. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Akeyless Gateway certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - required: - - akeylessGWApiURL - - authSecretRef - type: object - alibaba: - description: Alibaba configures this store to sync secrets using Alibaba Cloud provider - properties: - auth: - description: AlibabaAuth contains a secretRef for credentials. - properties: - rrsa: - description: Authenticate against Alibaba using RRSA. - properties: - oidcProviderArn: - type: string - oidcTokenFilePath: - type: string - roleArn: - type: string - sessionName: - type: string - required: - - oidcProviderArn - - oidcTokenFilePath - - roleArn - - sessionName - type: object - secretRef: - description: AlibabaAuthSecretRef holds secret references for Alibaba credentials. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessKeySecretSecretRef: - description: The AccessKeySecret is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - accessKeyIDSecretRef - - accessKeySecretSecretRef - type: object - type: object - regionID: - description: Alibaba Region to be used for the provider - type: string - required: - - auth - - regionID - type: object - aws: - description: AWS configures this store to sync secrets using AWS Secret Manager provider - properties: - auth: - description: 'Auth defines the information necessary to authenticate against AWS if not set aws sdk will infer credentials from your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials' - properties: - jwt: - description: Authenticate against AWS using service account tokens. - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - secretRef: - description: AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - region: - description: AWS Region to be used for the provider - type: string - role: - description: Role is a Role ARN which the SecretManager provider will assume - type: string - service: - description: Service defines which service should be used to fetch the secrets - enum: - - SecretsManager - - ParameterStore - type: string - required: - - region - - service - type: object - azurekv: - description: AzureKV configures this store to sync secrets using Azure Key Vault provider - properties: - authSecretRef: - description: Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. - properties: - clientId: - description: The Azure clientId of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientSecret: - description: The Azure ClientSecret of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - authType: - default: ServicePrincipal - description: 'Auth type defines how to authenticate to the keyvault service. Valid values are: - "ServicePrincipal" (default): Using a service principal (tenantId, clientId, clientSecret) - "ManagedIdentity": Using Managed Identity assigned to the pod (see aad-pod-identity)' - enum: - - ServicePrincipal - - ManagedIdentity - - WorkloadIdentity - type: string - identityId: - description: If multiple Managed Identity is assigned to the pod, you can select the one to be used - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - tenantId: - description: TenantID configures the Azure Tenant to send requests to. Required for ServicePrincipal auth type. - type: string - vaultUrl: - description: Vault Url from which the secrets to be fetched from. - type: string - required: - - vaultUrl - type: object - fake: - description: Fake configures a store with static key/value pairs - properties: - data: - items: - properties: - key: - type: string - value: - type: string - valueMap: - additionalProperties: - type: string - type: object - version: - type: string - required: - - key - type: object - type: array - required: - - data - type: object - gcpsm: - description: GCPSM configures this store to sync secrets using Google Cloud Platform Secret Manager provider - properties: - auth: - description: Auth defines the information necessary to authenticate against GCP - properties: - secretRef: - properties: - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - workloadIdentity: - properties: - clusterLocation: - type: string - clusterName: - type: string - clusterProjectID: - type: string - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - clusterLocation - - clusterName - - serviceAccountRef - type: object - type: object - projectID: - description: ProjectID project where secret is located - type: string - type: object - gitlab: - description: GitLab configures this store to sync secrets using GitLab Variables provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a GitLab instance. - properties: - SecretRef: - properties: - accessToken: - description: AccessToken is used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - SecretRef - type: object - projectID: - description: ProjectID specifies a project where secrets are located. - type: string - url: - description: URL configures the GitLab instance URL. Defaults to https://gitlab.com/. - type: string - required: - - auth - type: object - ibm: - description: IBM configures this store to sync secrets using IBM Cloud provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the IBM secrets manager. - properties: - secretRef: - properties: - secretApiKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - secretRef - type: object - serviceUrl: - description: ServiceURL is the Endpoint URL that is specific to the Secrets Manager service instance - type: string - required: - - auth - type: object - kubernetes: - description: Kubernetes configures this store to sync secrets using a Kubernetes cluster provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a Kubernetes instance. - maxProperties: 1 - minProperties: 1 - properties: - cert: - description: has both clientCert and clientKey as secretKeySelector - properties: - clientCert: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientKey: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - serviceAccount: - description: points to a service account that should be used for authentication - properties: - serviceAccount: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - token: - description: use static token to authenticate with - properties: - bearerToken: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - remoteNamespace: - default: default - description: Remote namespace to fetch the secrets from - type: string - server: - description: configures the Kubernetes server Address. - properties: - caBundle: - description: CABundle is a base64-encoded CA certificate - format: byte - type: string - caProvider: - description: 'see: https://external-secrets.io/v0.4.1/spec/#external-secrets.io/v1alpha1.CAProvider' - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - default: kubernetes.default - description: configures the Kubernetes server Address. - type: string - type: object - required: - - auth - type: object - oracle: - description: Oracle configures this store to sync secrets using Oracle Vault provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Oracle Vault. If empty, instance principal is used. Optionally, the authenticating principal type and/or user data may be supplied for the use of workload identity and user principal. - properties: - secretRef: - description: SecretRef to pass through sensitive information. - properties: - fingerprint: - description: Fingerprint is the fingerprint of the API private key. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - privatekey: - description: PrivateKey is the user's API Signing Key in PEM format, used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - fingerprint - - privatekey - type: object - tenancy: - description: Tenancy is the tenancy OCID where user is located. - type: string - user: - description: User is an access OCID specific to the account. - type: string - required: - - secretRef - - tenancy - - user - type: object - compartment: - description: Compartment is the vault compartment OCID. Required for PushSecret - type: string - encryptionKey: - description: EncryptionKey is the OCID of the encryption key within the vault. Required for PushSecret - type: string - principalType: - description: The type of principal to use for authentication. If left blank, the Auth struct will determine the principal type. This optional field must be specified if using workload identity. - enum: - - "" - - UserPrincipal - - InstancePrincipal - - Workload - type: string - region: - description: Region is the region where vault is located. - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - vault: - description: Vault is the vault's OCID of the specific vault where secret is located. - type: string - required: - - region - - vault - type: object - vault: - description: Vault configures this store to sync secrets using Hashi provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Vault server. - properties: - appRole: - description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource. - properties: - path: - default: approle - description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"' - type: string - roleId: - description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault. - type: string - secretRef: - description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - - roleId - - secretRef - type: object - cert: - description: Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method - properties: - clientCert: - description: ClientCert is a certificate to authenticate using the Cert Vault authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - jwt: - description: Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method - properties: - kubernetesServiceAccountToken: - description: Optional ServiceAccountToken specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: Optional audiences field that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to a single audience `vault` it not specified. - items: - type: string - type: array - expirationSeconds: - description: Optional expiration time in seconds that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to 10 minutes. - format: int64 - type: integer - serviceAccountRef: - description: Service account field containing the name of a kubernetes ServiceAccount. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - serviceAccountRef - type: object - path: - default: jwt - description: 'Path where the JWT authentication backend is mounted in Vault, e.g: "jwt"' - type: string - role: - description: Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - type: object - kubernetes: - description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server. - properties: - mountPath: - default: kubernetes - description: 'Path where the Kubernetes authentication backend is mounted in Vault, e.g: "kubernetes"' - type: string - role: - description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies. - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - mountPath - - role - type: object - ldap: - description: Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method - properties: - path: - default: ldap - description: 'Path where the LDAP authentication backend is mounted in Vault, e.g: "ldap"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a LDAP user name used to authenticate using the LDAP Vault authentication method - type: string - required: - - path - - username - type: object - tokenSecretRef: - description: TokenSecretRef authenticates with Vault by presenting a token. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caBundle: - description: PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Vault server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - forwardInconsistent: - description: ForwardInconsistent tells Vault to forward read-after-write requests to the Vault leader instead of simply retrying within a loop. This can increase performance if the option is enabled serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header - type: boolean - namespace: - description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1". More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces' - type: string - path: - description: 'Path is the mount path of the Vault KV backend endpoint, e.g: "secret". The v2 KV secret engine version specific "/data" path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.' - type: string - readYourWrites: - description: ReadYourWrites ensures isolated read-after-write semantics by providing discovered cluster replication states in each request. More information about eventual consistency in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency - type: boolean - server: - description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' - type: string - version: - default: v2 - description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". - enum: - - v1 - - v2 - type: string - required: - - auth - - server - type: object - webhook: - description: Webhook configures this store to sync secrets using a generic templated webhook - properties: - body: - description: Body - type: string - caBundle: - description: PEM encoded CA bundle used to validate webhook server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate webhook server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - headers: - additionalProperties: - type: string - description: Headers - type: object - method: - description: Webhook Method - type: string - result: - description: Result formatting - properties: - jsonPath: - description: Json path of return value - type: string - type: object - secrets: - description: Secrets to fill in templates These secrets will be passed to the templating function as key value pairs under the given name - items: - properties: - name: - description: Name of this secret in templates - type: string - secretRef: - description: Secret ref to fill in credentials - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - name - - secretRef - type: object - type: array - timeout: - description: Timeout - type: string - url: - description: Webhook url to call - type: string - required: - - result - - url - type: object - yandexlockbox: - description: YandexLockbox configures this store to sync secrets using Yandex Lockbox provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Lockbox - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - type: object - retrySettings: - description: Used to configure http retries if failed - properties: - maxRetries: - format: int32 - type: integer - retryInterval: - type: string - type: object - required: - - provider - type: object - status: - description: SecretStoreStatus defines the observed state of the SecretStore. - properties: - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Status - type: string - - jsonPath: .status.capabilities - name: Capabilities - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: SecretStore represents a secure external location for storing secrets, which can be referenced as part of `storeRef` fields. - 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: SecretStoreSpec defines the desired state of SecretStore. - properties: - conditions: - description: Used to constraint a ClusterSecretStore to specific namespaces. Relevant only to ClusterSecretStore - items: - description: ClusterSecretStoreCondition describes a condition by which to choose namespaces to process ExternalSecrets in for a ClusterSecretStore instance. - properties: - namespaceSelector: - description: Choose namespace using a labelSelector - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - 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 - x-kubernetes-map-type: atomic - namespaces: - description: Choose namespaces by name - items: - type: string - type: array - type: object - type: array - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters ES based on this property' - type: string - provider: - description: Used to configure the provider. Only one provider may be set - maxProperties: 1 - minProperties: 1 - properties: - akeyless: - description: Akeyless configures this store to sync secrets using Akeyless Vault provider - properties: - akeylessGWApiURL: - description: Akeyless GW API Url from which the secrets to be fetched from. - type: string - authSecretRef: - description: Auth configures how the operator authenticates with Akeyless. - properties: - kubernetesAuth: - description: Kubernetes authenticates with Akeyless by passing the ServiceAccount token stored in the named Secret resource. - properties: - accessID: - description: the Akeyless Kubernetes auth-method access-id - type: string - k8sConfName: - description: Kubernetes-auth configuration name in Akeyless-Gateway - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Akeyless. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Akeyless. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - accessID - - k8sConfName - type: object - secretRef: - description: Reference to a Secret that contains the details to authenticate with Akeyless. - properties: - accessID: - description: The SecretAccessID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessType: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessTypeParam: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - caBundle: - description: PEM/base64 encoded CA bundle used to validate Akeyless Gateway certificate. Only used if the AkeylessGWApiURL URL is using HTTPS protocol. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Akeyless Gateway certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - required: - - akeylessGWApiURL - - authSecretRef - type: object - alibaba: - description: Alibaba configures this store to sync secrets using Alibaba Cloud provider - properties: - auth: - description: AlibabaAuth contains a secretRef for credentials. - properties: - rrsa: - description: Authenticate against Alibaba using RRSA. - properties: - oidcProviderArn: - type: string - oidcTokenFilePath: - type: string - roleArn: - type: string - sessionName: - type: string - required: - - oidcProviderArn - - oidcTokenFilePath - - roleArn - - sessionName - type: object - secretRef: - description: AlibabaAuthSecretRef holds secret references for Alibaba credentials. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - accessKeySecretSecretRef: - description: The AccessKeySecret is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - accessKeyIDSecretRef - - accessKeySecretSecretRef - type: object - type: object - regionID: - description: Alibaba Region to be used for the provider - type: string - required: - - auth - - regionID - type: object - aws: - description: AWS configures this store to sync secrets using AWS Secret Manager provider - properties: - additionalRoles: - description: AdditionalRoles is a chained list of Role ARNs which the provider will sequentially assume before assuming the Role - items: - type: string - type: array - auth: - description: 'Auth defines the information necessary to authenticate against AWS if not set aws sdk will infer credentials from your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials' - properties: - jwt: - description: Authenticate against AWS using service account tokens. - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - secretRef: - description: AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate. - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - externalID: - description: AWS External ID set on assumed IAM roles - type: string - region: - description: AWS Region to be used for the provider - type: string - role: - description: Role is a Role ARN which the provider will assume - type: string - secretsManager: - description: SecretsManager defines how the provider behaves when interacting with AWS SecretsManager - properties: - forceDeleteWithoutRecovery: - description: 'Specifies whether to delete the secret without any recovery window. You can''t use both this parameter and RecoveryWindowInDays in the same call. If you don''t use either, then by default Secrets Manager uses a 30 day recovery window. see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-ForceDeleteWithoutRecovery' - type: boolean - recoveryWindowInDays: - description: 'The number of days from 7 to 30 that Secrets Manager waits before permanently deleting the secret. You can''t use both this parameter and ForceDeleteWithoutRecovery in the same call. If you don''t use either, then by default Secrets Manager uses a 30 day recovery window. see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-RecoveryWindowInDays' - format: int64 - type: integer - type: object - service: - description: Service defines which service should be used to fetch the secrets - enum: - - SecretsManager - - ParameterStore - type: string - sessionTags: - description: AWS STS assume role session tags - items: - properties: - key: - type: string - value: - type: string - required: - - key - - value - type: object - type: array - transitiveTagKeys: - description: AWS STS assume role transitive session tags. Required when multiple rules are used with the provider - items: - type: string - type: array - required: - - region - - service - type: object - azurekv: - description: AzureKV configures this store to sync secrets using Azure Key Vault provider - properties: - authSecretRef: - description: Auth configures how the operator authenticates with Azure. Required for ServicePrincipal auth type. - properties: - clientId: - description: The Azure clientId of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientSecret: - description: The Azure ClientSecret of the service principle used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - authType: - default: ServicePrincipal - description: 'Auth type defines how to authenticate to the keyvault service. Valid values are: - "ServicePrincipal" (default): Using a service principal (tenantId, clientId, clientSecret) - "ManagedIdentity": Using Managed Identity assigned to the pod (see aad-pod-identity)' - enum: - - ServicePrincipal - - ManagedIdentity - - WorkloadIdentity - type: string - environmentType: - default: PublicCloud - description: 'EnvironmentType specifies the Azure cloud environment endpoints to use for connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint. The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152 PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud' - enum: - - PublicCloud - - USGovernmentCloud - - ChinaCloud - - GermanCloud - type: string - identityId: - description: If multiple Managed Identity is assigned to the pod, you can select the one to be used - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - tenantId: - description: TenantID configures the Azure Tenant to send requests to. Required for ServicePrincipal auth type. - type: string - vaultUrl: - description: Vault Url from which the secrets to be fetched from. - type: string - required: - - vaultUrl - type: object - conjur: - description: Conjur configures this store to sync secrets using conjur provider - properties: - auth: - properties: - apikey: - properties: - account: - type: string - apiKeyRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - userRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - account - - apiKeyRef - - userRef - type: object - jwt: - properties: - account: - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Conjur using the JWT authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional ServiceAccountRef specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - serviceID: - description: The conjur authn jwt webservice id - type: string - required: - - account - - serviceID - type: object - type: object - caBundle: - type: string - caProvider: - description: Used to provide custom certificate authority (CA) certificates for a secret store. The CAProvider points to a Secret or ConfigMap resource that contains a PEM-encoded certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - type: string - required: - - auth - - url - type: object - delinea: - description: Delinea DevOps Secrets Vault https://docs.delinea.com/online-help/products/devops-secrets-vault/current - properties: - clientId: - description: ClientID is the non-secret part of the credential. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - clientSecret: - description: ClientSecret is the secret part of the credential. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - tenant: - description: Tenant is the chosen hostname / site name. - type: string - tld: - description: TLD is based on the server location that was chosen during provisioning. If unset, defaults to "com". - type: string - urlTemplate: - description: URLTemplate If unset, defaults to "https://%s.secretsvaultcloud.%s/v1/%s%s". - type: string - required: - - clientId - - clientSecret - - tenant - type: object - doppler: - description: Doppler configures this store to sync secrets using the Doppler provider - properties: - auth: - description: Auth configures how the Operator authenticates with the Doppler API - properties: - secretRef: - properties: - dopplerToken: - description: The DopplerToken is used for authentication. See https://docs.doppler.com/reference/api#authentication for auth token types. The Key attribute defaults to dopplerToken if not specified. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - dopplerToken - type: object - required: - - secretRef - type: object - config: - description: Doppler config (required if not using a Service Token) - type: string - format: - description: Format enables the downloading of secrets as a file (string) - enum: - - json - - dotnet-json - - env - - yaml - - docker - type: string - nameTransformer: - description: Environment variable compatible name transforms that change secret names to a different format - enum: - - upper-camel - - camel - - lower-snake - - tf-var - - dotnet-env - - lower-kebab - type: string - project: - description: Doppler project (required if not using a Service Token) - type: string - required: - - auth - type: object - fake: - description: Fake configures a store with static key/value pairs - properties: - data: - items: - properties: - key: - type: string - value: - type: string - valueMap: - additionalProperties: - type: string - description: 'Deprecated: ValueMap is deprecated and is intended to be removed in the future, use the `value` field instead.' - type: object - version: - type: string - required: - - key - type: object - type: array - required: - - data - type: object - gcpsm: - description: GCPSM configures this store to sync secrets using Google Cloud Platform Secret Manager provider - properties: - auth: - description: Auth defines the information necessary to authenticate against GCP - properties: - secretRef: - properties: - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - workloadIdentity: - properties: - clusterLocation: - type: string - clusterName: - type: string - clusterProjectID: - type: string - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - clusterLocation - - clusterName - - serviceAccountRef - type: object - type: object - projectID: - description: ProjectID project where secret is located - type: string - type: object - gitlab: - description: GitLab configures this store to sync secrets using GitLab Variables provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a GitLab instance. - properties: - SecretRef: - properties: - accessToken: - description: AccessToken is used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - SecretRef - type: object - environment: - description: Environment environment_scope of gitlab CI/CD variables (Please see https://docs.gitlab.com/ee/ci/environments/#create-a-static-environment on how to create environments) - type: string - groupIDs: - description: GroupIDs specify, which gitlab groups to pull secrets from. Group secrets are read from left to right followed by the project variables. - items: - type: string - type: array - inheritFromGroups: - description: InheritFromGroups specifies whether parent groups should be discovered and checked for secrets. - type: boolean - projectID: - description: ProjectID specifies a project where secrets are located. - type: string - url: - description: URL configures the GitLab instance URL. Defaults to https://gitlab.com/. - type: string - required: - - auth - type: object - ibm: - description: IBM configures this store to sync secrets using IBM Cloud provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the IBM secrets manager. - maxProperties: 1 - minProperties: 1 - properties: - containerAuth: - description: IBM Container-based auth with IAM Trusted Profile. - properties: - iamEndpoint: - type: string - profile: - description: the IBM Trusted Profile - type: string - tokenLocation: - description: Location the token is mounted on the pod - type: string - required: - - profile - type: object - secretRef: - properties: - secretApiKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - serviceUrl: - description: ServiceURL is the Endpoint URL that is specific to the Secrets Manager service instance - type: string - required: - - auth - type: object - keepersecurity: - description: KeeperSecurity configures this store to sync secrets using the KeeperSecurity provider - properties: - authRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - folderID: - type: string - required: - - authRef - - folderID - type: object - kubernetes: - description: Kubernetes configures this store to sync secrets using a Kubernetes cluster provider - properties: - auth: - description: Auth configures how secret-manager authenticates with a Kubernetes instance. - maxProperties: 1 - minProperties: 1 - properties: - cert: - description: has both clientCert and clientKey as secretKeySelector - properties: - clientCert: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - clientKey: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - serviceAccount: - description: points to a service account that should be used for authentication - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - token: - description: use static token to authenticate with - properties: - bearerToken: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - type: object - remoteNamespace: - default: default - description: Remote namespace to fetch the secrets from - type: string - server: - description: configures the Kubernetes server Address. - properties: - caBundle: - description: CABundle is a base64-encoded CA certificate - format: byte - type: string - caProvider: - description: 'see: https://external-secrets.io/v0.4.1/spec/#external-secrets.io/v1alpha1.CAProvider' - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - url: - default: kubernetes.default - description: configures the Kubernetes server Address. - type: string - type: object - required: - - auth - type: object - onepassword: - description: OnePassword configures this store to sync secrets using the 1Password Cloud provider - properties: - auth: - description: Auth defines the information necessary to authenticate against OnePassword Connect Server - properties: - secretRef: - description: OnePasswordAuthSecretRef holds secret references for 1Password credentials. - properties: - connectTokenSecretRef: - description: The ConnectToken is used for authentication to a 1Password Connect Server. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - connectTokenSecretRef - type: object - required: - - secretRef - type: object - connectHost: - description: ConnectHost defines the OnePassword Connect Server to connect to - type: string - vaults: - additionalProperties: - type: integer - description: Vaults defines which OnePassword vaults to search in which order - type: object - required: - - auth - - connectHost - - vaults - type: object - oracle: - description: Oracle configures this store to sync secrets using Oracle Vault provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Oracle Vault. If empty, use the instance principal, otherwise the user credentials specified in Auth. - properties: - secretRef: - description: SecretRef to pass through sensitive information. - properties: - fingerprint: - description: Fingerprint is the fingerprint of the API private key. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - privatekey: - description: PrivateKey is the user's API Signing Key in PEM format, used for authentication. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - fingerprint - - privatekey - type: object - tenancy: - description: Tenancy is the tenancy OCID where user is located. - type: string - user: - description: User is an access OCID specific to the account. - type: string - required: - - secretRef - - tenancy - - user - type: object - compartment: - description: Compartment is the vault compartment OCID. Required for PushSecret - type: string - encryptionKey: - description: EncryptionKey is the OCID of the encryption key within the vault. Required for PushSecret - type: string - principalType: - description: The type of principal to use for authentication. If left blank, the Auth struct will determine the principal type. This optional field must be specified if using workload identity. - enum: - - "" - - UserPrincipal - - InstancePrincipal - - Workload - type: string - region: - description: Region is the region where vault is located. - type: string - serviceAccountRef: - description: ServiceAccountRef specified the service account that should be used when authenticating with WorkloadIdentity. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - vault: - description: Vault is the vault's OCID of the specific vault where secret is located. - type: string - required: - - region - - vault - type: object - scaleway: - description: Scaleway - properties: - accessKey: - description: AccessKey is the non-secret part of the api key. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - apiUrl: - description: APIURL is the url of the api to use. Defaults to https://api.scaleway.com - type: string - projectId: - description: 'ProjectID is the id of your project, which you can find in the console: https://console.scaleway.com/project/settings' - type: string - region: - description: 'Region where your secrets are located: https://developers.scaleway.com/en/quickstart/#region-and-zone' - type: string - secretKey: - description: SecretKey is the non-secret part of the api key. - properties: - secretRef: - description: SecretRef references a key in a secret that will be used as value. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - value: - description: Value can be specified directly to set a value without using a secret. - type: string - type: object - required: - - accessKey - - projectId - - region - - secretKey - type: object - senhasegura: - description: Senhasegura configures this store to sync secrets using senhasegura provider - properties: - auth: - description: Auth defines parameters to authenticate in senhasegura - properties: - clientId: - type: string - clientSecretSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - clientId - - clientSecretSecretRef - type: object - ignoreSslCertificate: - default: false - description: IgnoreSslCertificate defines if SSL certificate must be ignored - type: boolean - module: - description: Module defines which senhasegura module should be used to get secrets - type: string - url: - description: URL of senhasegura - type: string - required: - - auth - - module - - url - type: object - vault: - description: Vault configures this store to sync secrets using Hashi provider - properties: - auth: - description: Auth configures how secret-manager authenticates with the Vault server. - properties: - appRole: - description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource. - properties: - path: - default: approle - description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"' - type: string - roleId: - description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault. - type: string - roleRef: - description: Reference to a key in a Secret that contains the App Role ID used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role id. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - - secretRef - type: object - cert: - description: Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method - properties: - clientCert: - description: ClientCert is a certificate to authenticate using the Cert Vault authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - iam: - description: Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials AWS IAM authentication method - properties: - externalID: - description: AWS External ID set on assumed IAM roles - type: string - jwt: - description: Specify a service account with IRSA enabled - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - path: - description: 'Path where the AWS auth method is enabled in Vault, e.g: "aws"' - type: string - region: - description: AWS region - type: string - role: - description: This is the AWS role to be assumed before talking to vault - type: string - secretRef: - description: Specify credentials in a Secret object - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - vaultAwsIamServerID: - description: 'X-Vault-AWS-IAM-Server-ID is an additional header used by Vault IAM auth method to mitigate against different types of replay attacks. More details here: https://developer.hashicorp.com/vault/docs/auth/aws' - type: string - vaultRole: - description: Vault Role. In vault, a role describes an identity with a set of permissions, groups, or policies you want to attach a user of the secrets engine - type: string - required: - - vaultRole - type: object - jwt: - description: Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method - properties: - kubernetesServiceAccountToken: - description: Optional ServiceAccountToken specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: 'Optional audiences field that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to a single audience `vault` it not specified. Deprecated: use serviceAccountRef.Audiences instead' - items: - type: string - type: array - expirationSeconds: - description: 'Optional expiration time in seconds that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Deprecated: this will be removed in the future. Defaults to 10 minutes.' - format: int64 - type: integer - serviceAccountRef: - description: Service account field containing the name of a kubernetes ServiceAccount. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - serviceAccountRef - type: object - path: - default: jwt - description: 'Path where the JWT authentication backend is mounted in Vault, e.g: "jwt"' - type: string - role: - description: Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - type: object - kubernetes: - description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server. - properties: - mountPath: - default: kubernetes - description: 'Path where the Kubernetes authentication backend is mounted in Vault, e.g: "kubernetes"' - type: string - role: - description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies. - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - mountPath - - role - type: object - ldap: - description: Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method - properties: - path: - default: ldap - description: 'Path where the LDAP authentication backend is mounted in Vault, e.g: "ldap"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a LDAP user name used to authenticate using the LDAP Vault authentication method - type: string - required: - - path - - username - type: object - tokenSecretRef: - description: TokenSecretRef authenticates with Vault by presenting a token. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - userPass: - description: UserPass authenticates with Vault by passing username/password pair - properties: - path: - default: user - description: 'Path where the UserPassword authentication backend is mounted in Vault, e.g: "user"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the user used to authenticate with Vault using the UserPass authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a user name used to authenticate using the UserPass Vault authentication method - type: string - required: - - path - - username - type: object - type: object - caBundle: - description: PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Vault server certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - forwardInconsistent: - description: ForwardInconsistent tells Vault to forward read-after-write requests to the Vault leader instead of simply retrying within a loop. This can increase performance if the option is enabled serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header - type: boolean - namespace: - description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1". More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces' - type: string - path: - description: 'Path is the mount path of the Vault KV backend endpoint, e.g: "secret". The v2 KV secret engine version specific "/data" path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.' - type: string - readYourWrites: - description: ReadYourWrites ensures isolated read-after-write semantics by providing discovered cluster replication states in each request. More information about eventual consistency in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency - type: boolean - server: - description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' - type: string - version: - default: v2 - description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". - enum: - - v1 - - v2 - type: string - required: - - auth - - server - type: object - webhook: - description: Webhook configures this store to sync secrets using a generic templated webhook - properties: - body: - description: Body - type: string - caBundle: - description: PEM encoded CA bundle used to validate webhook server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate webhook server certificate. - properties: - key: - description: The key the value inside of the provider type to use, only used with "Secret" type - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - headers: - additionalProperties: - type: string - description: Headers - type: object - method: - description: Webhook Method - type: string - result: - description: Result formatting - properties: - jsonPath: - description: Json path of return value - type: string - type: object - secrets: - description: Secrets to fill in templates These secrets will be passed to the templating function as key value pairs under the given name - items: - properties: - name: - description: Name of this secret in templates - type: string - secretRef: - description: Secret ref to fill in credentials - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - name - - secretRef - type: object - type: array - timeout: - description: Timeout - type: string - url: - description: Webhook url to call - type: string - required: - - result - - url - type: object - yandexcertificatemanager: - description: YandexCertificateManager configures this store to sync secrets using Yandex Certificate Manager provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Certificate Manager - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - yandexlockbox: - description: YandexLockbox configures this store to sync secrets using Yandex Lockbox provider - properties: - apiEndpoint: - description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443') - type: string - auth: - description: Auth defines the information necessary to authenticate against Yandex Lockbox - properties: - authorizedKeySecretRef: - description: The authorized key used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - caProvider: - description: The provider for the CA bundle to use to validate Yandex.Cloud server certificate. - properties: - certSecretRef: - description: A reference to a specific 'key' within a Secret resource, In some instances, `key` is a required field. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - required: - - auth - type: object - type: object - refreshInterval: - description: Used to configure store refresh interval in seconds. Empty or 0 will default to the controller config. - type: integer - retrySettings: - description: Used to configure http retries if failed - properties: - maxRetries: - format: int32 - type: integer - retryInterval: - type: string - type: object - required: - - provider - type: object - status: - description: SecretStoreStatus defines the observed state of the SecretStore. - properties: - capabilities: - description: SecretStoreCapabilities defines the possible operations a SecretStore can do. - type: string - conditions: - items: - properties: - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/crds/vaultdynamicsecret.yaml -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: vaultdynamicsecrets.generators.external-secrets.io -spec: - group: generators.external-secrets.io - names: - categories: - - vaultdynamicsecret - kind: VaultDynamicSecret - listKind: VaultDynamicSecretList - plural: vaultdynamicsecrets - shortNames: - - vaultdynamicsecret - singular: vaultdynamicsecret - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - 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: - properties: - controller: - description: 'Used to select the correct ESO controller (think: ingress.ingressClassName) The ESO controller is instantiated with a specific controller name and filters VDS based on this property' - type: string - method: - description: Vault API method to use (GET/POST/other) - type: string - parameters: - description: Parameters to pass to Vault write (for non-GET methods) - x-kubernetes-preserve-unknown-fields: true - path: - description: Vault path to obtain the dynamic secret from - type: string - provider: - description: Vault provider common spec - properties: - auth: - description: Auth configures how secret-manager authenticates with the Vault server. - properties: - appRole: - description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource. - properties: - path: - default: approle - description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"' - type: string - roleId: - description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault. - type: string - roleRef: - description: Reference to a key in a Secret that contains the App Role ID used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role id. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - - secretRef - type: object - cert: - description: Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method - properties: - clientCert: - description: ClientCert is a certificate to authenticate using the Cert Vault authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretRef: - description: SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - iam: - description: Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials AWS IAM authentication method - properties: - externalID: - description: AWS External ID set on assumed IAM roles - type: string - jwt: - description: Specify a service account with IRSA enabled - properties: - serviceAccountRef: - description: A reference to a ServiceAccount resource. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - type: object - path: - description: 'Path where the AWS auth method is enabled in Vault, e.g: "aws"' - type: string - region: - description: AWS region - type: string - role: - description: This is the AWS role to be assumed before talking to vault - type: string - secretRef: - description: Specify credentials in a Secret object - properties: - accessKeyIDSecretRef: - description: The AccessKeyID is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - secretAccessKeySecretRef: - description: The SecretAccessKey is used for authentication - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - sessionTokenSecretRef: - description: 'The SessionToken used for authentication This must be defined if AccessKeyID and SecretAccessKey are temporary credentials see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html' - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - type: object - vaultAwsIamServerID: - description: 'X-Vault-AWS-IAM-Server-ID is an additional header used by Vault IAM auth method to mitigate against different types of replay attacks. More details here: https://developer.hashicorp.com/vault/docs/auth/aws' - type: string - vaultRole: - description: Vault Role. In vault, a role describes an identity with a set of permissions, groups, or policies you want to attach a user of the secrets engine - type: string - required: - - vaultRole - type: object - jwt: - description: Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method - properties: - kubernetesServiceAccountToken: - description: Optional ServiceAccountToken specifies the Kubernetes service account for which to request a token for with the `TokenRequest` API. - properties: - audiences: - description: 'Optional audiences field that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Defaults to a single audience `vault` it not specified. Deprecated: use serviceAccountRef.Audiences instead' - items: - type: string - type: array - expirationSeconds: - description: 'Optional expiration time in seconds that will be used to request a temporary Kubernetes service account token for the service account referenced by `serviceAccountRef`. Deprecated: this will be removed in the future. Defaults to 10 minutes.' - format: int64 - type: integer - serviceAccountRef: - description: Service account field containing the name of a kubernetes ServiceAccount. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - serviceAccountRef - type: object - path: - default: jwt - description: 'Path where the JWT authentication backend is mounted in Vault, e.g: "jwt"' - type: string - role: - description: Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method - type: string - secretRef: - description: Optional SecretRef that refers to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - required: - - path - type: object - kubernetes: - description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server. - properties: - mountPath: - default: kubernetes - description: 'Path where the Kubernetes authentication backend is mounted in Vault, e.g: "kubernetes"' - type: string - role: - description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies. - type: string - secretRef: - description: Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, `token` is the default. If one is not specified, the one bound to the controller will be used. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - serviceAccountRef: - description: Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead. - properties: - audiences: - description: Audience specifies the `aud` claim for the service account token If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity then this audiences will be appended to the list - items: - type: string - type: array - name: - description: The name of the ServiceAccount resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - required: - - name - type: object - required: - - mountPath - - role - type: object - ldap: - description: Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method - properties: - path: - default: ldap - description: 'Path where the LDAP authentication backend is mounted in Vault, e.g: "ldap"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a LDAP user name used to authenticate using the LDAP Vault authentication method - type: string - required: - - path - - username - type: object - tokenSecretRef: - description: TokenSecretRef authenticates with Vault by presenting a token. - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - userPass: - description: UserPass authenticates with Vault by passing username/password pair - properties: - path: - default: user - description: 'Path where the UserPassword authentication backend is mounted in Vault, e.g: "user"' - type: string - secretRef: - description: SecretRef to a key in a Secret resource containing password for the user used to authenticate with Vault using the UserPass authentication method - properties: - key: - description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. - type: string - name: - description: The name of the Secret resource being referred to. - type: string - namespace: - description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. - type: string - type: object - username: - description: Username is a user name used to authenticate using the UserPass Vault authentication method - type: string - required: - - path - - username - type: object - type: object - caBundle: - description: PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection. - format: byte - type: string - caProvider: - description: The provider for the CA bundle to use to validate Vault server certificate. - properties: - key: - description: The key where the CA certificate can be found in the Secret or ConfigMap. - type: string - name: - description: The name of the object located at the provider type. - type: string - namespace: - description: The namespace the Provider type is in. Can only be defined when used in a ClusterSecretStore. - type: string - type: - description: The type of provider to use such as "Secret", or "ConfigMap". - enum: - - Secret - - ConfigMap - type: string - required: - - name - - type - type: object - forwardInconsistent: - description: ForwardInconsistent tells Vault to forward read-after-write requests to the Vault leader instead of simply retrying within a loop. This can increase performance if the option is enabled serverside. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header - type: boolean - namespace: - description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1". More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces' - type: string - path: - description: 'Path is the mount path of the Vault KV backend endpoint, e.g: "secret". The v2 KV secret engine version specific "/data" path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.' - type: string - readYourWrites: - description: ReadYourWrites ensures isolated read-after-write semantics by providing discovered cluster replication states in each request. More information about eventual consistency in Vault can be found here https://www.vaultproject.io/docs/enterprise/consistency - type: boolean - server: - description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' - type: string - version: - default: v2 - description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". - enum: - - v1 - - v2 - type: string - required: - - auth - - server - type: object - resultType: - default: Data - description: Result type defines which data is returned from the generator. By default it is the "data" section of the Vault API response. When using e.g. /auth/token/create the "data" section is empty but the "auth" section contains the generated token. Please refer to the vault docs regarding the result data structure. - enum: - - Data - - Auth - type: string - required: - - path - - provider - type: object - type: object - served: true - storage: true - subresources: - status: {} - conversion: - strategy: Webhook - webhook: - conversionReviewVersions: - - v1 - clientConfig: - service: - name: external-secrets-webhook - namespace: "external-secrets" - path: /convert ---- -# Source: external-secrets/templates/cert-controller-rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-cert-controller - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -rules: - - apiGroups: - - "apiextensions.k8s.io" - resources: - - "customresourcedefinitions" - verbs: - - "get" - - "list" - - "watch" - - "update" - - "patch" - - apiGroups: - - "admissionregistration.k8s.io" - resources: - - "validatingwebhookconfigurations" - verbs: - - "get" - - "list" - - "watch" - - "update" - - "patch" - - apiGroups: - - "" - resources: - - "endpoints" - 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" ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-controller - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -rules: - - apiGroups: - - "external-secrets.io" - resources: - - "secretstores" - - "clustersecretstores" - - "externalsecrets" - - "clusterexternalsecrets" - - "pushsecrets" - 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" - verbs: - - "update" - - "patch" - - apiGroups: - - "generators.external-secrets.io" - resources: - - "acraccesstokens" - - "ecrauthorizationtokens" - - "fakes" - - "gcraccesstokens" - - "passwords" - - "vaultdynamicsecrets" - verbs: - - "get" - - "list" - - "watch" - - apiGroups: - - "" - resources: - - "serviceaccounts" - - "namespaces" - verbs: - - "get" - - "list" - - "watch" - - 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" ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-view - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - 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" - verbs: - - "get" - - "watch" - - "list" - - apiGroups: - - "generators.external-secrets.io" - resources: - - "acraccesstokens" - - "ecrauthorizationtokens" - - "fakes" - - "gcraccesstokens" - - "passwords" - - "vaultdynamicsecrets" - verbs: - - "get" - - "watch" - - "list" ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-edit - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - 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" - verbs: - - "create" - - "delete" - - "deletecollection" - - "patch" - - "update" - - apiGroups: - - "generators.external-secrets.io" - resources: - - "acraccesstokens" - - "ecrauthorizationtokens" - - "fakes" - - "gcraccesstokens" - - "passwords" - - "vaultdynamicsecrets" - verbs: - - "create" - - "delete" - - "deletecollection" - - "patch" - - "update" ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-servicebindings - labels: - servicebinding.io/controller: "true" - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -rules: - - apiGroups: - - "external-secrets.io" - resources: - - "externalsecrets" - verbs: - - "get" - - "list" - - "watch" ---- -# Source: external-secrets/templates/cert-controller-rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: external-secrets-cert-controller - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: external-secrets-cert-controller -subjects: - - name: external-secrets-cert-controller - namespace: "external-secrets" - kind: ServiceAccount ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: external-secrets-controller - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: external-secrets-controller -subjects: - - name: external-secrets - namespace: "external-secrets" - kind: ServiceAccount ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: external-secrets-leaderelection - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -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" ---- -# Source: external-secrets/templates/rbac.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: external-secrets-leaderelection - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: external-secrets-leaderelection -subjects: - - kind: ServiceAccount - name: external-secrets - namespace: "external-secrets" ---- -# Source: external-secrets/templates/webhook-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: external-secrets-webhook - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - external-secrets.io/component: webhook -spec: - type: ClusterIP - ports: - - port: 443 - targetPort: 10250 - protocol: TCP - name: webhook - selector: - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets ---- -# Source: external-secrets/templates/cert-controller-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: external-secrets-cert-controller - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - template: - metadata: - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-cert-controller - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - spec: - serviceAccountName: external-secrets-cert-controller - automountServiceAccountToken: true - hostNetwork: false - containers: - - name: cert-controller - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - runAsUser: 1000 - seccompProfile: - type: RuntimeDefault - image: "ghcr.io/external-secrets/external-secrets:v0.9.11" - imagePullPolicy: IfNotPresent - args: - - certcontroller - - --crd-requeue-interval=5m - - --service-name=external-secrets-webhook - - --service-namespace=external-secrets - - --secret-name=external-secrets-webhook - - --secret-namespace=external-secrets - - --metrics-addr=:8080 - - --healthz-addr=:8081 - - ports: - - containerPort: 8080 - protocol: TCP - name: metrics - readinessProbe: - httpGet: - port: 8081 - path: /readyz - initialDelaySeconds: 20 - periodSeconds: 5 ---- -# Source: external-secrets/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: external-secrets - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - template: - metadata: - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - spec: - serviceAccountName: external-secrets - automountServiceAccountToken: true - hostNetwork: false - containers: - - name: external-secrets - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - runAsUser: 1000 - seccompProfile: - type: RuntimeDefault - image: "ghcr.io/external-secrets/external-secrets:v0.9.11" - imagePullPolicy: IfNotPresent - args: - - --concurrent=1 - - --metrics-addr=:8080 - ports: - - containerPort: 8080 - protocol: TCP - name: metrics ---- -# Source: external-secrets/templates/webhook-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: external-secrets-webhook - namespace: "external-secrets" - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - template: - metadata: - labels: - helm.sh/chart: external-secrets-0.9.11 - app.kubernetes.io/name: external-secrets-webhook - app.kubernetes.io/instance: external-secrets - app.kubernetes.io/version: "v0.9.11" - app.kubernetes.io/managed-by: Helm - spec: - hostNetwork: false - serviceAccountName: external-secrets-webhook - automountServiceAccountToken: true - containers: - - name: webhook - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - runAsUser: 1000 - seccompProfile: - type: RuntimeDefault - image: "ghcr.io/external-secrets/external-secrets:v0.9.11" - imagePullPolicy: IfNotPresent - args: - - webhook - - --port=10250 - - --dns-name=external-secrets-webhook.external-secrets.svc - - --cert-dir=/tmp/certs - - --check-interval=5m - - --metrics-addr=:8080 - - --healthz-addr=:8081 - ports: - - containerPort: 8080 - protocol: TCP - name: metrics - - containerPort: 10250 - protocol: TCP - name: webhook - readinessProbe: - httpGet: - port: 8081 - path: /readyz - initialDelaySeconds: 20 - periodSeconds: 5 - volumeMounts: - - name: certs - mountPath: /tmp/certs - readOnly: true - volumes: - - name: certs - secret: - secretName: external-secrets-webhook ---- -# Source: external-secrets/templates/validatingwebhook.yaml -apiVersion: admissionregistration.k8s.io/v1 -kind: ValidatingWebhookConfiguration -metadata: - name: secretstore-validate - labels: - external-secrets.io/component: webhook -webhooks: -- name: "validate.secretstore.external-secrets.io" - rules: - - apiGroups: ["external-secrets.io"] - apiVersions: ["v1beta1"] - operations: ["CREATE", "UPDATE", "DELETE"] - resources: ["secretstores"] - scope: "Namespaced" - clientConfig: - service: - namespace: "external-secrets" - name: external-secrets-webhook - path: /validate-external-secrets-io-v1beta1-secretstore - admissionReviewVersions: ["v1", "v1beta1"] - sideEffects: None - timeoutSeconds: 5 - -- name: "validate.clustersecretstore.external-secrets.io" - rules: - - apiGroups: ["external-secrets.io"] - apiVersions: ["v1beta1"] - operations: ["CREATE", "UPDATE", "DELETE"] - resources: ["clustersecretstores"] - scope: "Cluster" - clientConfig: - service: - namespace: "external-secrets" - name: external-secrets-webhook - path: /validate-external-secrets-io-v1beta1-clustersecretstore - admissionReviewVersions: ["v1", "v1beta1"] - sideEffects: None - timeoutSeconds: 5 ---- -# Source: external-secrets/templates/validatingwebhook.yaml -apiVersion: admissionregistration.k8s.io/v1 -kind: ValidatingWebhookConfiguration -metadata: - name: externalsecret-validate - labels: - external-secrets.io/component: webhook -webhooks: -- name: "validate.externalsecret.external-secrets.io" - rules: - - apiGroups: ["external-secrets.io"] - apiVersions: ["v1beta1"] - operations: ["CREATE", "UPDATE", "DELETE"] - resources: ["externalsecrets"] - scope: "Namespaced" - clientConfig: - service: - namespace: "external-secrets" - name: external-secrets-webhook - path: /validate-external-secrets-io-v1beta1-externalsecret - admissionReviewVersions: ["v1", "v1beta1"] - sideEffects: None - timeoutSeconds: 5 - failurePolicy: Fail diff --git a/examples/ref-implementation/external-secrets/values.yaml b/examples/ref-implementation/external-secrets/values.yaml deleted file mode 100644 index e69de29b..00000000 diff --git a/examples/ref-implementation/images/backstage-templates-spark.png b/examples/ref-implementation/images/backstage-templates-spark.png deleted file mode 100644 index 2b0b4112bbccdf39b9c5f25738e81b0cd0e74cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189054 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 z z`J(@QNaDP}8iU@+u9)DT)T5FeM5Sy|n4IyqSvcpf8YCFCqml!)oL`G|(j|%fom6B} z1YT=6xCTg}Ur9U6<7a&+XSH-i8;cy_WRIw>MFy|s$j1@vFkLF9*eoW6EIALT`$sOS zQ5}VoP7Ie0FnPd!PQ_ukIy6b@neHiyi5xKgK*P{LZ-kfyy-_r#4rsQL_N;wg)i|Y+XX4F?adzXWkkB<$iXMN$E@O9HOnypzzZ(c!Bf4#i zNL$;-(siJv@g!0Q8U}KKYGYK6QlFfRHve_iLo>x~F&615VL-+JfX2tJKEv!on*M%| z%I@S_jvSX$S{Ky#{mK0aUX$oAqp!06SkwiGVf!}|gD2MM7bDry6mVmbuWTlVzwy+J z8|sXGmY()|n#B{f^~E_qo2JKgTDT5%zqT{m59aXrE;OX_3h!cZNtp?PE+JC2iZqrguIwqd2FtD2qQZ6r2lWs^LdH`-XwO@IsU_|-#2)@tR?8+m?2Drc55{qt5c$6cCFY^UD})@jyW;a+Y?#_emuT+U2lUm$z@s}!B>P-Nc{V%uQdp_ znMW8}3F5FksnCsjRBgKwO0iN04kC!PWdw7PTwDn)9skq=R8`_J8+$+6icz~&o$N|p zX(mFI-~qc+8k|zjX`%_)b@zGBgfV(C(H2d%B1Rnw>w_T)R7rOW?jQEC>63K7doVEW z35aZt9zqG5G#xqy*~5)KYKtt%k4W{RwnmtJsx{Ns*g5cz0T{!uUr* zIX$d=d4kBX!6{Mh>?OAy14+%{JT!!NfUx^P{XJk0ewr|!CyJy-V6afX`T{NdU46UO zbN%YGWGLmz9-}%#om28gEQ?wD=q)`G)%7rOxEsStBx?Rd7>M!mhaR5i^hKwtv@FyR z88lR8ey)B<{j;W!&OwoefK6&ei!TGzo+%P?xf8UuP8IyZuxw$DQgu^=!)0%Ex1FYS zeSb_^Y<$qv2K3+Ja6wRPOZmfL*VHC)JILLaH$X)hLdYi{A;ML0PUoVP?3V4x>g9Yn zxgx_mP8Tjsi4)8h4l5Yh9w&O)%!%F?$*STBX!L?JUUt8d;xoL(ef z9EAv#6UDtzDbL{KHttat=nz@&-$9hJ|E+dL8wj>XZ)QXACx^nnHESI>4(@f+uygB( z_0FU9l-AA9!Eo6s1ImalfHzv2_Fojncl`9s!u`Kc{3iUjz`Fu$&h2XTO)5OwRSEBN$hgJ{+>l@=8J_?xF7%WGfPURO5t0Tx~+Q_^91$M@Y&0)xHzW3nA3* zu~KuUV|4OlwbgAAYpvgb!*z>A#iC4jJREoz^OvSblle%^#JLhlE(@LYNaOZfKv2ne zO`N(Gy4C#xqCLT=7QnNDgD%40Qb$W+^!qq^43#=09OP#I}hh9mN|;Byh9Nq6=HkNri|8Dmaf zfEQ=;lo3UyShu%{=GpqY>omyl?S-?oNGH=Zo?vIxiiGq0lRr@d3RNUOCFs>ricpHO zaYy3E+EudQ7*Jn>80hB%Yf>_cSyNfmfC@p@+FH|g5nVL`?{|Qnl#`%sO+SpnB%;`cUvf~mY->#*MKm>Pj}QP8QUC!P*p?WC54Lzh#cbtrq2YKkxh zcm)f=GHiVp&SbvIR-s!GaL#6+WmL>{}C79?7jr)yRiCC1d%?mKT<*m`mRrAFO zxKzap5_+pkZE9s@-odIdpWN90!%iAKP8$+CFA=veFrEe45J${tOvyJYHL@7T1*r~g zhW4SRuAfapaX~KV>Y>f`6*=as*G1-%C3A6{lg8QqSrVp`AhmU?T)Dud>sM);L`wK0 zM!dqbMn}g1p|aaW>hXiDHVNAlug}O=->UVll!5AxGp@OZRE|A8)Aj`o9aoBI4qrjr zZ+NA0m*si%Us0KZx6CLRzq{(HYPYoN_ebyNPtn^;>XrS0S!`o@5@9NDO=0>q9h>d9 zAa%j_O!9j`#A~PnrR%v>zAh%#jpw%fop*|H{)`|OMw5nTc~n87r5hnm zacp9K5dx2-r;EAeUrtpQJcAB^WbBT5AylUg)a-7krwfz1?q9vwp|pyh&ZZ<&OcU(( z4pK4j$mg1Z5ay;gzpORQ`fAS7;)13qx8a7AAB_a>bOaI9%YSe>PjQDE$)26b#Cevd z&s6y8p>2~oZ~O*h_o`0{!H&z5s>?Ix*^0@ZoUg1~f%AIm1^KpbaS~sL8PsqY=5UkJ zU*zs~vOxEUR5_sSiqAx|ExqATb9RL_o;EW`RRe%Ej0F2^ z11G2rrakMz4l(Ady6FnwZ&iTcKkU;<9ySh?yesb`7YN><%@ROk z@**<8sgui9I;7S#uo2T^9bAC#w^^5WK$!aA^ZJ)<@an<``3jA=NDku;6v)&FK2RpBdtcl2-T3jl60sFUowKo(Db{7 zzd88vc8fHW<8Y82yq;}p%UreC!R<1uJuJ1DXU*mLE!GA-HLKkoJ*#nsc;&6A^4|`b ztPfr?e6S_&sx%PFr#Vy-&hQ43WDf4o*p~Df?2IEZ?0v#V3xHYU{m&QMDFBfzLfB0* z8PhizuU9`x8W7k(kPNHrCI8UX-}V&+l5Hk-n)M3rg1kAb5R_Z6P%Qj>`_D{ z1;g+#MG_vq<+a&ZuX0L>>bD+a`^9yinn9yrz#3zUYt87Nue*{`SiL5!o|Jm@AgcNu7tfmlRq$FiG@lFiT)XIOLRf}_xXMMs0Arhte6#j4pjRt^71vb$Peq zCJdYTVVFWsbvX$n{iMcI>w*GkR)uk@t{0Mqr{ya-FU^7;U(=-M!g%KqZ1{r7`9cwa z#@}oFtr}gW)@UzQ@MqW|H#kf})tzOJ^$-U)uGZs92G*-TTmkF|>H)33sx9kX-HIm~ zGeW3MC+U@>7}g;a1-jPM&Q*zsvwj%p&9q$?op=?BFTs)^0wC9^sf>Vdf9|J~UVJPq zsq`;#09v9qyScUfjT!Drv5-6xMy4?zeg>Id#g|BzeyjhcADSe3Wqfu^_~+%bN#~#I zQEPWbhQD_-THj^eE;ULSHe9UbD2J0aH}KfPKjMEs!?Dgx`~Oq4`hGZ0 z91;Fx6u55HQ!g-gmeIf*RMd`+jiFnNga^pj@pQp8^!6RacrR$4m#HUlV5ysR}+O)Eus`~K}rQ_4m_n#((s5` zLVgT`+AVPAd$9w*L)8yK!Jr;>S;<6)dZQ*VmGB46c3??i^Ct7bE^ZGm|F#c|&C^3n z6+42nbaCCfWm&-i|8IEX0Lz4BHeEGhaeTBWt)*`gZ7}y`yP842n!8Bp$H!B7{>m>I zcuO+v(6-isBKGR?6|e+h#W)uRz8Qy}Rhw$Oc=(7-HMPUkQscDf)T?CIImJ_!$_2?` z#Z;`!YUV!VeJhU^r13OEqW(f|IJ&S1dX-0<7B3`V@TA+s9=my$y&WZRai018IY|i=OHtsSvifGXH^OO!V#gVNXZ-I79uFwM`LAv~B`D{Y=qP>jS!$`l^P28s9nW~)q&6ofhx=^fB*{1pa; za`&*l*=tZH*tUh#*i3?YcM#oi7LP57+-w*s^_DuxQ%Dg@5y{++R#d213z0?mS!v6~ z)qhdXX$)x_y%X_Bj!qY2rcqBz+S0Sf4`@(PNvn~(nlC68yvSW5ig#es$;aky5i#H% zY4jW_kZRIrXC?D0^&>H!V4j!K%Zd6056-%}prFaw zDhBplDjwNWdINAiHk0&&KNh`^#38iaxh-{jcR7S-mWj7?JTE|7wf)T#md;iVJHMb) zrHj#S`7)GKQJP?@tDRd{!`R&PycBN_S%|5l$@w6{(%WNSB{h}iYW7GmW$;NBlSK3x zc$HaMp1`P>nK{D%%2l_Z%IWm;V7Lv`egv>rQT{K1ICzrnROo#W&9*^n7N_TgO&}KTxihQS^}YLAkJ>kQ0E!hS!`O0oK%(yG2cRi9ERG1GhZd)v2 zUny$dFT-OcXR? z8AS4Eq#F&~-nE;QE2gsG6Y&z>@4w!sW|Af;A1r1#HA`h#mu@QLN8>M0jZ(O1WQf^mlt2LXvQ>wRh4el=(n+$wi7f`a-Q@i6 zjKevnx1#Zkr!+L=5$K@5#^++GyFeAijzW<@fo^c>f@=3|isD%6|5_=@vI*8pvRfeB z^pG5Dou}}6>q23j8Ii>Lw`z!N0f(9^w3|(TlEMm|DSsaYfKm%NWWpUj@S3IetIt z$5ek{XlR?s5{O1i2cwv0S4%3Tvns_9P2y*UYptLxU9Q<`*l(jBD2MlaCRp3S*(`HX zLL+Bd7q+w88fETk;P+R>t<&0zP!6gsmk_mlb>vTOW^%A!W-W1L%^Z~w zU$S0Tuj-v@QWL{a3b8-&p0rxj=)iM1vJs~)o&cN_7}GC;aWEMsE3mQAv{1uiO^uD# z^ZnM1kIlBitCQ`AkMrFp<&C++w+x$kaKtL(BF0DwZ4;cATBPe4T%Zxo{p&1bi$65t z&N37j@U(lXeV#I2&kG+fW;%m-TAcmHOBnxIMQ8)CBo98a(es$tHJo0 z5bZ5Cc2I6sQFrHA0`JIw9$#vH&~F-P*sszkk3Gho14xRTIF-0%>AvkV={o6r5b$de zS9hg}CCkL^0TtN;Y>tJ=ZB0Kof>4jT-oeQyobM&Q=p5}8U!rm-v{n`G@JX!s1Ne~m zg`#Zo{QvwTiqdOidd=4*#K+D`8_LIJxmpyo7^_kw$;edcLDttuMTY>hXm998?BYt;aoMDl~wNQrPh4C zIr)6CLDFhuw*gr0{icMiy!1xAgi;0VKiPNQ&t4`J!L_!L3H|pZx8o3p9A8mt4ieR^+!N1w(C)DPu%tE=?SY4caNR3esSid z6a+s(uJJ!1GndLDt@z_R1EJtORRD(U0oyiZoa2(V$7X~Mwz%FnOV%|(A|XsMPF z*90#-cr4-Ht2`e&z8Ly}BsKzjnJe$`@M3@!%=2ZK?WCeXhJ(A1~#E!FOF&uO4+RW`%ehD6iqT!qN?p+9#IL7IB19_w;5f zXeCHIVk*ih6%23icLH$H=7Q6YYdN0dGS2&XfM0vTUmBhY)8j-w%VDWUiH<_}o4mO2 zr;Z@Olf~ms>+2Ej%=X;QSy0ZzV@O9Yw@)vfz|9oF{oKalQBVx@YB9XXcujzbuMX#7 zfi5q)HS(v)OjS{7gb%C~ko{ztoA<5ad(H&qXFO24`|ZG!jpL(6;mSAmG!T)sAK;?V z78i%AzxKy5&#&;YCt!j8{$ZhHNnbx;YQ*DSexXd8I&$%G<(v1vnB~%}+52UyYflPv zWoMY^Qu=@RcS2D3(#VE>nUnkWu>eN_qS)8b=SgpvlSl27yeJ0&-^o+XfFE5Ked!Z} zl;;%bE0zSCHVN{xBi-KJasTF;N{+@8I&rf&Z{uZHN8#DbEd4>qhb^~J-XN4=^m*(|u7`5t31sWxaFxcda%U+95v zuZNa3=TEE3I%)kcF?S-;T*}peR$n_uGiYTyz&%fE7wLX4eow&ii3NO}UEVyWtU(nQ zss_GJYu1Sor)VvMT}>$>P`kv6GK?mtn|1TT@N@r`=(A|1|6hF?9)%zA&Qqys`?_I| zDd|qkPZ#Nv%VDk9b&1dr=SyT*q%a}sA;7w`EAO8W{lA+tOC(JW zYO#iOx__TVA0)T;!AL2#p<58$ZBBn=2NH^)UeRxN4%qb~xso;wT!BPjR2v09*Ws+b z?2tSrRz@s~kc9dQ19kKyDMJZ=n38#xCKN2_VNPhj;mEn9(@8!_C-WPTXdR?%_1Vv80ue7wyjx(f^89BV6ht&wzf{m+Od?Dho62(j*%jx9 zlHeXon4x}=dA(r%eI!&J>aD!}11)cWYNEO_59dejT7Y!) zx7$9mHTq#7JR+QNCcD^z!kCAhh)dK-QzP*!wX9TI1^Gz&yIhKY$#8h_C1U$yiLri; zlO;JjJxBp0wf{TPoom=+gI=-MOHY>&r_3)J|8=m=9uq0Pu50gX&I+8b2s(kfKcWa%J%^Lpy zeMA4I?Ttw^<%Z+*^lSD{*3!;;g@d&} zO-SN2l|n;9!~gBOi%$!5m%QFjU>d0fL$sAg9ua@97<;>B`f80EYk){CR` zbsb-?5$(LS1L`5}hofcH{>aUWk){0dhG%9WIt4tb3SE()ng{Q`H2?pQ2VV@+BIGPQFkv zPDfs3dvJ1n9|Sa1zPsd8hI6U^Xxd7T4ufoJ{(Zhc9C#m6Av`3uzCWsxa@9=4DIkU?O+dLbPr?-|&on~q;L=#Jggey~T<41|?T_c$_qeYF8fB)7^&6MyAw2g>A^}$pRMjbjsGlZ(JOR#{S273tW!`;QG zz(rD}KhMO`9nqSa1-mW6%u=hz7w{Yh#r}acEEC?GQoS_gb4p$(psA=K&)p@zT-aG#A`wx!rrTY{et zJt24-)}fUZvMl*?_gWY)7vN|EfxF17w(hixik=v|oiK)&pD>k^ z!Q6>}r|)r1%^UMq1Ko$rpm1TLbMBAD)ob%sTd)3#>3|x+IKj z%mCDrwt#3WVcz;JW*UTqYtRQia9p3&{WxxlWD-K(8B9^V7M74GW3w`9GUx_pC7ceebvKg1dB80>&eslEHM z9Iqo04ME13eO3Mv&M}h)@RL4B3rjpK2DahY+$tQg5Lk}!eq6)4=1YA$Sg*!K1!*|! z1v)ek-+v3(;UMkW2qE-j%x#Nd|HX%%m~%$jOctsC1p;VcM?pU1H# z4ShgksU<^r2lGW!w3F$%dGHVxw*=br8G>)R8|p>dbCW?oczkMTIF~KMH?stEL&LF{ zSNh{S?2Jtk+7es5d8e6-W6V24%|{*AcTd4lGNDI(fzMIl_kEJGKPPGWW4?JEb3DJ9 zz9Ic#*kn151~-px4aFSX74>fcfe`CE8@TsrT08VjchXJ3G_;X+;LgW<+7*8PQ38G& zLH#L)9h8%g59Ta>n)6|+r91H28+8|;fPi%CeblQoAzMS@yM0U31@$HEUi{%UyP>d7 zjoqQ3&$R7Bn1K0}M?wkB(7r+KTG%OKCE7V3{ZCp!{0zf>=dHk2~%LZh4>*|Xid9xA#mfOBWT1F z%(?z_#yR#3%kdNb1Z_+T$C6@ym@C@*LEdS`NNq?BaE1lfs|m;O0zJ zg2L1j6@7kj=5mWS#-%-|hatE+4da2(Gvr(7J{|P22<2Lu3!I$>ZQH)+0}A$Mp}*fp z{~Yu-{+Nz&hJc2(1YdRln?@V9?=s_2&xH!N?SP}6z#W0~iS~>}_C4NoKc=bq*Mxu{ zwSh5zPVe5<)a7Oq+BP5Kc{%JGJMQKRJ-Qu7sk*M4>pd)M*M2{np8P?6WQjph6;hQZqg2Ji4W-W|RH{A83GT=VwQU|~$*%$+!fMtB9ngl=GH zX;50jzo#!Ve|T>(>KjxpZRS9~-E~fIj-JLZKl}JNo19G3kI(IE>q?KW|96TNFwuQ6 z7?3XvJ%LX1bJ!-JVB@ZH``Pzt5W?Lv>I0+=-mNG8jD)a)zrVru(4t8TBfWQVueRp9 zXY_VEa7^=={vFMY&%6h_C}4m?ydKn*SMFiJCADn`W3Z^0yJ3s@#%aCm`}x4(!{M$Z zJt*K2p!N;N2(uC9tTnqU`i^y66k&bj@~`MuloH3Agi-1)*3 zD{x@|ja1)@BWZ+Dup6KSJUuX%+EuF>C__ZKO2ZY-#n+EdC=~}E_D6RI6wNtU^4=X2o1!+PhWc9Jp29<=RLSn zYxCFXijK|33uysr=LY|h1k&xZvNRNgjvj@hh?v1g)Njf$X2 z9SWJbiSQ8S$v<5*z-D`K+2VIR6?t%>*%7q)2RIhgQ}Z8ThA&|;`XKto z(gyeqA-zVQ6Yd7>xe~Oa3xpMfQ4n0j0X2&52Y&m73;w?X-e=B|s;cZ54$oo?P(fJHLWpWXF1 zbL$xa&6)-reD$e`mdD^xtsoB#M0x%jlUWT|A^y%Qj=$HUHaoaN! z%?=1>2s{e)tIwQb27$i%@O9AZe@$3me);-z8#JtQ8*>}-C*1z*By$~T?+GDpUZ1_f zZZ_CJ@6R{E2Yl}2U@T9-_i=03k6yH_uXlphV}Qb)LJ$M}0q5GJ z12}rM1~+EC+hCh{q48$(4xaPs?l$Wn;MoD;POv1&HMb;QRbhZk1b?8F_Q#6=;(l@U zK~%do=CLAb>JauLqjx~)-@*>1z`58}LJ^VQcfkaTaEG^*{11%MBrHBZ)#F&)!j%#_ z*!rQA%e%L6!X54&y@B1EQ4qv*2cyZIRDsgQ?tN$Wa>AV_u!#I2j4?g}Aq^QPF-<7Wff`RNrhsB^J9xC}dJ+-)V0!8$v+Xb!sJQX3s9%yu%q+_n1a_}*mq|rv?8%gGRRm=r%rMd`$pIm@Pu>@WNLo^D4t(zuq5Vfg{rp|q zr=9s34Camqg)%Q;{uvLtgdt&nH(|b`1}WiP%s)Swu+ZE;X|cPt@Cqz=kHsRK^*a~e zf(Uos!gv3JvGc6(heCJG3A{|87-K&he0$glPPnrSnnnKutymgr2~h*}zHrf=Ef0pB z2^!4BJmD>BK44MGivS4JFyh8XCip&t8)CzTai{@HfsY7xs15WS=*UXsC&C>+uTMhL z@QZ^wS-SKg1RXD7!(c4xL9I<{3f=p$6LCvc<~lGxYLSXCi*|LW(Lp*VTC0;`Xn%Gn zjH3o9hak09TVn1c%mz)~fq8&*?g4Csh;U~z`te!J4Wyrh3o$2r`_vw`4}*CpHDbPq zc~^uxjLVQzD0nBlQ(NSxFzPJAoj+m2;V%%1QGi0aMNJ-ovC!-w-69X9LGmPTLG9H0 zE*xNmI~3@=g)#8boYl~p+-Eg;ZW__UeEh^fusu2yYB8@N${vi?5Ty;EI+$|^{U978 zJ_uu=CF0MkHUNKU%wJ$IdA;z17@%y)^#RV=9|RsbrnV%3`NqLg(8|X_4`^3T;1$fF z^rHr+hR@?$IRW3@dl)k!c;meMHEgsL7Suw$1A8?>Cxlk<`AY~LXd{R4FZ9KCo|$BR z58(mld1^x40(vO(NT&JiwK*$Ybw)x^^YmBFHP765p1JLU0p@J*2Mxf_F+cu0GvpgabaS3$5dvv{Xj9}08!)H;}vP#gtlJZzdM#4wi%gKk9u z@ATs0kQzEILEs3Juy`dCH31Vm1sD`soPsN^d38Gd30<)hGCbUMTMj~g)0?xPqKzEbj= zzWc^3dn}6qWOD!d@j+JT@f8SpMqzhnmmwp=?9ouh!i6S09hegbf-ui&v4%pY<#LnGJ9NS?(@u=6IaqAPA ztgF#q&(B_!Q3K%}ERuSJi=x5MB6<xM^Hw6s%?k6vmfB7+ecVHvp+OY zE&3tspk0C;MP7$acn9r%Dn^@%?P1)fNICR!QAb`5kM~D z3DY6`+zi|gK)tE1PT>Ou9Rib(51B;bn8&BSg`M5IVchXpEK~?&nyJRlAA!fR9(Ze( znW2PTHXy?v3X(p=xcw=1KBu9cC9uZHomC#oBHWEWei668(C$ic-I?Yk+;lD;E%;qnCLhhb^HKAKHg-q1PeLV>48t5V#g<=d!7&1n#Q7a_hyWA%u}%0K@sptYy$Nf}k?& z4<6n6F9bm>@9lZ3(APukqM^)2uQB)Q%R%Lm=kbvzMs8Gk--{(T+7NUd4b7FuScAG}Ka9%xRG#_?OF;Qxwn-sMrMwfM$* zwMuCLy}fdi8ISR4ziZ4RXM~IIWAQyM#u$nN9+Q%Ivmg|>_013L1`6Z;4!0)uLY+yo zx?t=t4uunO`Oxoza1NvUO?-<43VN;!Y3=!4jxm3rwoMGQfPmy-XrR2kY!hfw2@Ey2 zHf>OE!rM41dMC7qI6Nr$c>wjI{W${tIIgIz`$c?T1k%;d|8FvmbOnOz;Sdn;21us; z`mk>17HB2fgf@2SPcVDpI11+7bI=w$w*o)=F&B&AYC3oiYRQncvLU0Ol z2v=isgNB+3e+6Cs3x1sMD4h89MFZ{e;B!GcpM%h6CWY~ANC<7v|1V%;h=Lj(N2A@f zP7pQ;P`GmsZu=S>&gs8}M)1Ew8#_F1Oj>j^=ns!-5uV4KIw2Hzi*Q8plIOQD@5r3` z?HArRlfkbLcrEA4&`4eO+YlyjevBXzZ?nN8Qlqp*gF)^Vt$#ug#*F|Z zz)@St*_hSf_rCP+cR>?(TYB`&mp*2iqkn0%zAeW8Qgu|^3N*q#BYmO9D>Z07Kv@sH z4Za3pZ!a+B3>=x_CP^FcbkwR9K}xFBlS)oYo5Agq|NI)7Y;Jdyaz4Y48ZvM`_$2D8r{-$tB5-h@KgkQM{(Nv zR)eSPA2}z74F&t{?nnJs=+3`8*Q@i2|B4!O*@Co|)Io z^nbDAWQ98+_MU@w#C14kAxs;++cmCdZSK%L9_RJBlPN$uJTtL_*bnvu2rQdFG6(_4 zvzA!}hU}UbriT91SgCE=g0S~R+D>2+1aQjO5e-Rg!|!y{Ki!1z+YBV|m6z=OF8_IyTfpKc)GX_GNd;qVll^vXk7@s2G zX%4mT)PM;VBSCqoUOgK}0%a^x-MxehI>77DSP`aqBzEw|W1%DP9?GDAhd?2cUXb$m z75n=0VdMd5yWU-$1V&oJEF4Mu6s}{Zy&T#f7>w_T%)0?(WXO!s4gM zSJcg!evq0MxO2)|zyuzJy7@I&(2+qLXcr8*3wR_C{p8N}E&qAf+5+OY&ptZ|0w%(I zd}kuu;rj&aq~7${SbMV>7p&~t%+YfUY=^8a4e6Y2G{}jZhfQLXkJQ`?M zj!uUzNi~Y9&__nQpM-@WtoBMG5Is&S?*F#H5 zY}IhnL4-Sz_+@yZ!05zq9L&MkvBI6Oy!Bi6SUPkCgbpl|nng3fAB~5==wqN2q{|&Z z|2Z0)LDPbBB2B8S;vr(|YxYR7Q z`C?Awkz^i4rhsQ?IQMchhDWz7sJzR70vq)$&|YqM5NNlIf}vBxIhva+TEJr?g@0B- z@Ok;4-gI8vAZZ7I2x$&Af&|FRWdn}MpJ4OjKT{T)k>F2HJ>ghfY>-M%O`t1bV3`{Y zw?cTLf%y545>im>^C{$WD~@^v^sl8^vT>`q;csu*WOBTd0-qk}t20CUe+=aJ;eQ@H z0(KYZj)f4%8r7tOXN6kG#Nl^wMZL9ms3NiT?weQsHqRh1$lv?Rx^P+=0{STMCkWAO z{-MWj-<)B-3c(KBO1k=>L=2yk@tsh(BQSQsYS{AIXzloP1dh4MvJ-utK!AZ1_m^NK z!9W=>P<*f;qXrMZdD_$2j9{ZRFnVdq2RfXA@NZE)98V8u4vgds0@a%XfC2p}0}0-22CK)?mKduj=s zO0*igIwIh)T!&8qZQ>vSk2QS;1alA;r=nsmdFS#J%^}9+ZmtF%vwAsHk>)Y8)6@c& z@wjl1-5;vQ``?PF%rkB$EE=*2cxcFy1}_O@@Gr;l0s$Uj618+1TmBt(UwzPJF^qx> z?l3l~M`NHxrWgz4VAm~3N%ealsM1aW4}q%inFKtHw*m_bGMm)6Ap=9zaKb;aYupEd z10MO|wdW_bYia%YXEX>u>!39?^k7j#z@>5FVW2f)t9GhZ!L?GiV&<{+nl(QN*q&vs zFEpa|+64l4Fzwpa?@;}&-N@6%m(1}b!~Y=`cLeroTP#3?Xz7zI>sDVY{*Y)9%EG`-;?D^Tt@0*Qktl7NK23-%yKh7{N z1!(*xcI^pn+j7jeBubv;#sKGCJ)Fj`*<$|8ivSc1!=n1WQ@i6^GUn3|*8T@tUM2W; zNbh(I>txWpj%q$vNv)IP{3)cNpy+hF$x+LkfhT{2^%$#vhcMxlP%v*jy+4uTz}U6d z^n!+(`O5{)KOqo^FfNTee-RoivXbX9T^`Y)?V7<5h)jwR5>p5xz&g-2o4|%$du+XA z49g_}63(YSdbPs;CJ;_qL;(-yL(&o2YRd%g;X4#8|NPz#m?tEyg;sk3pVfbe>j)qadLl_FWFP9X|M4yo6iGYV1Mcu>slt!E53<uoM7Seft5rYAJTGDXlXU26Xo(I%ooV+c9yliim616*99lNI^z}jrvK}18 z-v_1@=6)La|1@mQaI=GO1~gf^v}$5E0jvl9Y@o&;4CzZA^tW0{VT86Aj|`(Nn$Lm1 zI2}0d48cZe?Fy5dccHnJ4QS_0fEv7)K;!619EZvVtjoY~qlbo)=csuhuFGgpS%8{Q z^&7OIU-30nX^8fqqVM&7fqnV3L;fkeQQjD&Jwpq@3b z98J0t_HzP*$-D^*H-5li@;L{an)>?+taW+DrtO~g`|DbJJKGUIfx`m>(TO^Ei~8wy z#D|=1nO9Mu#!;UP_G5UIiUJM_Xf#vBBV1%;G%=;02Cd-}XR|;wEOeSUH-$#O!*MR! z6X0&>DC`o<-?YOlf&k(w*j}K}hoA|upAWT%hzYxh#A2^E2=VNYaa@f>?R`+mW`s}o zZks0H(d~$CR`q-hN z{TxcI6-2RPNqG`ow zGS($Y&?MC`IK{35aq#H4d67kliV0>tSbUCwAnSr(zF>wz^MTqu!|UjaiaGZc=E9M;yTJw|hIPJ&C7;CERs@X9H^y{O> zwjH`l;MTNIzC&G}cGHdxHyd~ai`uYmZVeZSykdS1HF|+-Za&B+2yeeSfd1e(--X3C z1@dxiR_D)oN`P8)KJdtJHek~zEIAE}V+x;s2-`w8K)aIjcG|azxKS#bp0mDPOxI0f z@<^uuwGj!_w2=)29>EfvQbUJ!-KfDzJ3J#WF6?)YG^3$GA$7@gRA(I8CHYdoBlA1y z7H?3z5w?JMB>7ZmSW#PpFk0E}34Bt2Wf;hlA;giTUwGob1JXsQpN;220*6H9li!B4 zi$}EncFpPbh%M{>8jh^b0l&ec%{SmkI*$<(tm2wvVtrT_2EdRsXxgW+fkGGyAs4k# z3B3H_`RU8d3plR#==Eos-r=UzAn-EO@)Qs{C+~a;uSGZMF~5sHeC~923m0#goD6&~ z!TiGG(>H`02muZ>CUERA+}L1VnSeHTNT*mX4K2Tmepv$^B@=YOrpvFcJkVF=@$J6PP^5<1%F82{BMJP0z2@{xp37-ha26J_Ehwl2zV-r z!J{;N@xj`r05@orz$V2yTx-6h?q0J7&#kpf%uWb)=+EzK1+G1B1+5*e#nTa5J@e}B z!i`y_GoeQ*dTU&>g@CbQLJ(7q+^Ty)r$EZi*c9GqHFEm#I&^-!(Gu^V07_YZ_IMq8;n{A?&eZ31rb0wH1sPwraV5yT~A?* z8JE}A3M{p|bz$Y;X)@LFvNXNklx~#!en>9}vC(oDr!0PR5P9 ziWKmi2ccElaEFa{d&&Y-U3N@BSrTT6tBosjVX+On!ve%{abclV_om-PuwnEJ7(D?V z)1rV!Gb&`TMG!?d1w10$VY*3Rk{wfv0=OG2+C3vWw=pk4gGU3eyA=>)%<`V;$?q)q z*4Tmoc-<~{a>=;Sh$VjMB@R{dc?~o1-xpe8Y@3V^ zmiynYkF=`a3t?00nm@m38S?H}^f2B;9O05H)|nrVA#j(KupDh@M;u_h5~hL?9~)kE zPa6Y&{`^_6(Nk=g7k4b()%G@a`XAd1sji5L0O1Sj#9i1uCD7)v0y-p!OXCJldNxOr zj~%~Z`^!tWO2Y@|!v@fz65xDz0>%IZIRqN`|1k_K3+P+7#BT(?6KcnBL*p6jvhzpU za070Wx-t|7@knnb0nZZqeFyaQM0_tiN+$3*924P>a2M>lj9VGp4kg@|(5=Ck`-PrT zn56B-NnX6NoOm38Z*Mg_ojd@HoT=hK0IMl`wSc3VPz^l>UgT@0jhG{Vnu8|1SPRtS;38OJYk0n&XD1kwK7Q_z0V{1N+) zw%A0#LtA|snC4g*M_#=(HJ#dy2u8#EfKSK<5#gb9 znIIhrXJ9Pcf+NW{oeg0l>^bp>H*bsl%HQ60*+#iN+B{0}7Ca^;K+RHW_XzMvH@jjH z1ZD!fCVdgcgV3!G*eH`epz&qmOVeu}@6zL%TFNxaOrVz7a_}b!q%e>Y>8AV=SAv03 zF+lB{4~lo07aMpIWG zT@4r@fsmgn-X{PI>I^2Ud&uzec+&N+%`%^VJ^H&BH;f4IHZAZ_);5o5@mvJsjw8T? za?)xDX82a@lsKlH2~n4gJNKEXApz-(^V77^Lq?f9WY^;M2z}&>RoB3Jlh*O4uLR!( z=7V{2VM(T)JG8mNA7Ri=>farjNq@d*fcY}c-t)TI+i)%Je?L7uQYW47Yq&z5z~f;| z!yOe8w{wy9)Ns+b0F2s_ENbc>LtNR>9g9WwH88|`&9l+p6G|8`GDh>{ToBdMA#fwE zd6e$kBf47yudLgfp{*pk1*kgzWf+L2)(#2q<>-Sxp?WuM1CS9FAOZJ(^ALwZ5(1fX z0&l(|i1AAiB+!rc3vA!@FYHd<3x<%w zTM9?+#*I?^eg2dllFY1xKxKQ#*m8mR5q1?vLGVE)pYTQOKz0q)xOuee`?$qM;H6OW ziK^Y~Cqf&v@lq^|$QWJ-Bha#g$}rnM_!~y0SKtQ^D`Z3jGQF?B_7Z_Nhw-Kn+Owdb znFt{>6U3TO`J*KYs-KmbWZK~(6bR?Z{WpJg8V^10?- z*gB$ZvHCD7NjHCA2n|;l5>Oc6ppc*Pj-y*D z*gAW_NbaX#YfFBghc@T$&hBk(v@rq&Ba1N~H^JB!;5ZOyf<@2i?bRYItjBp+2;V-u ztGNqvYa5Jt){jPcwLxS#X2m1|bTjwS5F*J!@><;BW)1u!khf1>hTA4-Lyo6RY0FJ7 zm?R%QM`E5A_zTAP^)S+FfB(ZX{P7kn0ySyQRvR{w&VRlPK^27#1Zw^KoLVXn-v1Ui zM-2^yzdDVjXQ8&hS-{De_z~)$@;6~l69Lq#(2me}(0OS0WZ0SUVH%AghcHzMd&FM!u!(|dw12m}CKu~Bqwc#9_6#~U1FK9czUQ_n#R+k^!#`|js3JT2Oo*W==a z&fpW+Hotx1XY=s_g>JnZ3XoevDD@R+oe*y%+~?v#iqk^-X{4`9E z0^2hOIN~@FBhBr@4V{UgRl9T04rG3!krT-m$BJ23UM@i31}&rDl^Q-*gjb1Ed-WY`wCQ71R^uw{$j0DjcuSW6 zy)C*@C<}tZ_&T1rdAyBULVq0nffYp2e;DS4%LWGYlvfgj+?dm2%` z@6#tc?IRvNTNMgHUx!di`uZ!NwcWytGMawA(*9 z)EpO%p>eRsqcs^_Mn|zDMTL%HBqU8QI|dfj*<)&f*6oEbhuS)s;6n&^HWrka=FsA) z6AE;w`E&gKA}bKujIaa_PYk5kR@C1c0)E)}5ZDO3h20?n;R#gf7Nd-k*&{Pnm_A^-8UH#6b!bP2gpP`YB)88QU}QhrEAaX*7|SzotcB(9wi3Nyl4CKE#Oh@Wgju)0GspZ8D#=vg zr-13Ia5q(=aRETa);9#n<5I)G1XI9s6`1xbp!q?=&9YlehW@^B3$ikn7h*9Y@J5U< zhGCRzpIRPpf)YY$XE$n`_vbSb1pGDBxklj(8FPXD((BL=|%pT!l^yS0j=2amC|Jymd-|H+qP=JN-ygOEvF0F4*g`st4y$jdMusFF|nINQvCLcq zCYH?alej&MhDT-Rk>mWAxS@;R5Vd}$VNo;yLdDC$B=-R>mO_=jC$urB#Y1=zJH?e{ zAelR`)Lx*vy9m&1p%wg-X({H<>7^EV^aHYPZS@4>>jH^x0RRRxN}V>2&ekxlz_q)~qx+22fAyVcIK zgF`J59@!nUBBi}5>E%gH*S~`9ePv)r+z3@<{)t5*=WEeIWxNMLPxQi7((=h;NT)#4 zg23_nR*cY@VWTjIQL~0Xfz9(Uz^~9_{q>)1sKY(@Zf?gn#c_Bt%HWS>{0HCuXVo0f zbo9Ru@qY`UE{{w81UKlh9Xwtn8x?CX|NRlS5E1Z+c@TPpkN07CUeB$x`=gKZ^7cis z!^4bt+tqSKE8c+CA&)MPz#Kmai`Q3fI0M?5`|Sk-Qt-pj!jY@XHQi)*YVn@=%UFmx z@kt1-KMNYnHs5hpUvtAV6D%&Ij9j0;1x+D6Y6DG>Yj7LcXOJgphiE`jsBjPFXDuk< z1qI(b)W^}E84z&s*foJ#I6|}dPTM-U!Wi%y-$On^*QUV$y&UT5y3FmR)f#6R@f9DhSsI3+{{eApA zOB3f{OpC_pB?CHJji0?Za@Q9;DmO#~^aTszm+O=B#7|#(-~8sP(`=GkaV`6}g=--6 zq1l0;?fQ7$uV0^TesbwB8~4-b6aF+j`tDpeo>yaTd1=mw2aTgnQmolRF;55gC`4e zlAz2O*aZz9If|7z76=?BgJsm>@s4A4*jLXQTTV@z*>Xw34rdIIIG&@72){|=gQOAq z$5&9=F;E{Dps{7b6JR1An7jlAf&*b71vC_j-0|)Ld(=zf%X2msW4ys+B^W^hcQ3hE z`xgX7WTYLSd@}U%bN+Dfn%ciXTYAT=Tz*5 zU5g!1-h8z^Y=gvGg`JHXUz%#346i6B@g!5o-*yPQu7#1>m%voX0-wScGOSau=)VS6 zm(NFA@f!Q%?ONT#g*2JuaS$ZTH^ha}cQIBTz!j?$0Qo>1J_;ew_5T`U#}(_C{tNTeiBZ14?!E&%`#*zuU*r9NTc~WcWOOK9@*bew1>T=)9Q!T^ILPWSjBhBBy4P9@CJLxRrtN(n* zJp2A)Yd?rLom>FHCxtuP(5}CZodZUCiXFqjVk6jDj&n<0`HTzKeljlj*;AqAL*vX`B+lBn-F)k<**LD8{#{ExeEu6W74+ zT?@KnZE@LpurB&1IR<{Dp`?)l`gj)ocno^ZhCnNc@9%lXlj-+e^y|a8=AMFVVu-g# z5_sJCmKWbQ&*0{?(tvp3kN*U;`%lJs3MSu)p9 zV@H7bj>e6sdj7Iq8%7|WSbzThjd_&9Af^$ZQ^&VK@bl@G#Lx7ky|_P&oofZ*JYGZr z4}~*Npv?bZ>fP`<~f^dTSt$a4+igci@%%Cw=@62z_{_AcQKr87T*qa45OwSP6aDPu2r}Y*Ljz@K+wn8ELR&fahfpKz!?z?$+l4EDoN* zF)r?=@Ww9QTtb172HIwLEWA~T*RcQK^_iAn^Tre2Rzh1n4qW*WjKx$15nbFMwH|YR zU)va7{K$lZ2;6mQh#fed`KB@2)DEkwT`)#vUx}0=DI^CUeL_&cmKnaj6vH=?d#x^!iIN^lj zA8g}@1I8F^z!-y^gb*Nuk%^KJNPq$;qI5xb(&=*E9RBaCnb-5Wr@N;or>~^F>8`Hu z>Q~hjURO}RNE^Q3VtE##+9~-3r4PPTr<#PYHQYGA*h6ORk`W1i!aXhJGRfczJeE>n zSsWBL*oQ!utmXX_BS#*gb99ANWMdco2`+W8WK0)5h!|fAo4WC~;P}3E2g{ zeW$Z{m%qZ2PMp?-<%Q@xj!jP&orJ>4-{`&xd*o{@PCpAw$gL=vr7k&M_E*5s<~S{6 z`++0=L^|(2;udx#^&l(@?qc&KCJcCqnh8<1VGkqyiXSc&F@YE>#OpiC#?FTC<%&KF zMP|zGL>~RuJhpo%7AIvH_ zc@IS%${8$aHb_GF^5Mu+;{doZ3wFIM)7c~Mn%~>WqBCycKU51xp84?2yB9q67r~u( zmUmmcgd9jaW}(77D(}+w3koo_TR(CB2KTcv%LL{*?TRWcIfaIVkq_lB9eIMon? z#Jthp!fo^?aA(lOc`4WdPw{c_Dio|(ua&lYh2+l@a#C6Fv8KeiSVZjXD`4|F2tVRp zs=&Nad-;v64}t&+eJc|YmJVZS6=sobk-BDDK8l&g5g7{+X?!MJTsEWK3Pow;h)XvV zev3uXhRv{Jm675E?UcCcvl=dq$onqb7&~(rDHq;D#Ll=jmv9MrA=7cvSKTTzRfE~I z1$S|Ig0_Cc$|cg)AM>Y(6=E#;vF#Qx6bIkh_i-`IfVe z0cHtm_3G8$+3wxNue4eG(M@L(fCA@9*?<|FEn{sfo!KG)L9ib=o}x2G<=D1$2`E)czkt*iS3vb{HQF2+teRS z1IIC~l^7@@a4J{SAnldJ9ra(yJ-&86B#m}y21P?bF35i(^P|!^$r~f3$mqu+M+U8Xd z3ZZ#7DvJIl#w-p>+=#^__R$dqt3J*5e)6H%a)>goW{;G6{242Kl=&A+o$&|bi)k_V zP#C6G4%yf11|K4RUG^42JUHd)cV%YnW73|!NS18Bs<6BgiW1BWiZeL2JD7o!kcK#a zmD(ZbVjjp{5SJk&b~{CpjoGLn6S&RW+I$VUD|3_HZXqA@5oK++u_-gw>$vfjNDhEC~+IA}JJ3lisuruLkyA?dE;{}w6SelK$tmcsH zMR(s={QGaih_+h~WtHxDliDp!XG;`3mtA(5kN>*su2VVq+r

w`>tb&Z)92 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 diff --git a/examples/ref-implementation/images/backstage-templates.png b/examples/ref-implementation/images/backstage-templates.png deleted file mode 100644 index a53f9854e4e749a4cea69fed0d276fab2a0e1d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185821 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�rHw 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

C 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�W=oeB< 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 V6}^fU5r6}KWF!?OO2l6I{trXd*mM8@ diff --git a/examples/ref-implementation/images/demo2-entity.png b/examples/ref-implementation/images/demo2-entity.png deleted file mode 100644 index 607cb238b12d7d06bcf9897d9f9c5e3f204aed1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127951 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

R+t2EY@?sUI@#?JPx-UH)FW%99;`}Juz)<%XJXs zh9V$sfu%S9y4UkVAGe$;w1qDBuN~=g1T@{P0Q<9jgnw>?hOco0);jYbFL|r~Z^`od zX;gJ_t@O!d#W7Y$7|sx)x_R2->}K1VAWheJYzpf4;Dxw;Hc{)Z3i4&F6NQsk!_Wjr=-h{gBF02F5#=uqrk(AbMCS zuB^Xj`-RAVewL4wuDka*3m`<#q86Q@c30F8F~B9OiC+O95HzSHCtXL+(D7%iOhl%h zA9g-+ZPxTp^T{#-9D{Cdd^0@R<-WKTJn50d` zN~T%E!_Fa@dPubW>F`a$pGkkC(FiXP{f#H?ouJD-OHb>OST?;gI||&D5tX-bkvf!y zjzc!hp35L}rX@sk08{s65p>#w&gmbCg_N#jgD5;KvYhvVi@Eaq`NY{T@eE^>?piU> z1I8Y@}bmu#R~m4r}g1sANF9 zR5)cA^zUw2rG&%Q7Is)%5^!v0`y)p4cgVgenRJCsU`(U_edNFxb4EX>wArmvR7FB8 zY`$RXyj)`+p^$vTz)!@J_u@$2q~yqiWpWeX7~0hOzusSb#z;hfG6rS2djPqRvG=IR znP{F3H2}w4Zg>7+2GrR(7?USMFeZXy^|EMSJmh#kKhQ0x??%=Dg%H$OEazj8s00XQ^lQU*!;C0nN!Ym?FAnQ4|2Cp=Md zxowZe@lu&dbqReilh9`ocQ@2=m-donSu-at(qFN*_Og`15?$BSA7X0`ycY|lC#sZy)p*JHBb{z~uX4tR zEJ**(rn`}cpsnCY9Ls96b^Cx)wKhtJjt)(k0%g#rXv67uE)NX_MBr^vcA@USrcNNv zA;UbF>z5Wf2hacFyx{EYkmDBKdZJg+Ly9EOEv6F5;;}KyvTr(B*j~O%Jav=flIgs= zGNsTgK5Lg4daK?=QqpfbHw2E9u@%Y*A7--6Oh`(46K*HGR1-92%e_3Zf%jQ0LsdmB zNsIL*wQgaC_GA>O7YDbLga&80{hs$%cFUY+(|;z8)*PEHbI2yh8D|x&PvsT1u?`nt z?VRuJ;my{Ir}?AKNy0mzA?1Cm^Cs6_J)1?_b^dndWE)1VcE~<7Jtqn=wZPSY z@_@R6j0c!_XlWm{0^{t>EEKli$zGmw^ZH?dv_^R{;Dq&DXZTA~m}c(f;nZhh~iUSQvI5K3Z5?~xj}G0~u_d-xUYQ)<924|Sm9 ze{6U9l9WMpx=QQd5YOsHlcyjD)jrChnzFd6lcXLxQlB6XLENvq3eS5$x!)*K!=i@J z`euErV#N|{@jZO(@2b!`V{8E3u93UnrVXw!oi=Yt(==?mMpbxId%D>Mv~B_U#gnN?I@p_Umn0NGteEa5j6kW{N?jWj$=WW?^D>N?5}@qPgl3%aew<462*r3ev=>RV*>cp_YQILi zKZW7%x%i93AdDQv-!cFK|6z5Ia_$=!*rBd!BYJAKVU4MQHNHu?I!@e;6gCK>!lV{0 zeZ_n%CV0Rj4$kCgIytx#i=rfze+lDhCLU20z;%s$e>9suZ|>t#F6RS=msf$F*|5Xf ze9n1(pFnD(YXrabygmjzDDfQefiH#@7gyp@G%$wY%tnCzD>#W&5S8REXYnv7%gLw+ z|D?A`>ElMELjZkPH$)4#}jgo38COIj_jQUaTkv~G6a3)*<&2_f;7{kIh!tp+-M0SU@ z-5@PqI9@h2zyQjlfN+lVP?8VMzsGx`e4GE(hkqXmBpN}`E>f+hZ;vP=U zt?0SlntUNhk?i}+Iz*9^3VZ;;Qi1-COq0-7Ye_Pk+3p6#ObsP%+tvt z_+L8E5D}a%*s8E>2uEWdLe>unK{;C8z>1AlbJef38kiShUmj*mb6R1z-nrx*H63iZ zSW9X24wOzbZSxl|zdLEo(^M%wO+KkRN3QtY;)5`Jb@HKj*$8myfx=L~1XWA#n z*Sc0#k(^Lgg@z!oS&qbEW4DjUzUzxmd(zXHdDUG z%C63Lzulk!X}PYFCJEK5i}q^)oG$k96~3EZD>rq{Q}I(@jRztpqBOmhXi*l!f4-WI zwJxfLoW|#u7uZJBwu%E2l}%NieYDee6i@m^1pHaD=mZa*=(kVsl8LgvX@_qcr$tDf zi~!6b(VuJ(nT%q(CgpMBl-wzrVI;Elo=o_6h}2Wa&5q{m)VZp^RQR3~bjgmkhqg(H1P<+e=j{#JQ20EG&!AbX6T;vy7f0JcllN zX%uMMSgFo*;cc_4C;F>0Rj+ndtmkuMXr-?;;<_7PJ=ZB;p)Nh#dw03GmM_O;Vt@Z? zjHHy^vPYRO*SWJNJn!u(|Ngyjm-~3DbN*?HSLs~*)vZ#mxXWo?*9vGg6fVyx(z%nc zZ*{$f@@KWI%jaJArMZ^$B*Z2BHkpNOq=ou-PP6-V(o02*Cq+3(l!F4P6Oc4No;5<|}NHyjrJ;TH1{ zX%~0B*00VRtGK?$y}upJQbdu-mNW66R{AgdZg=hFGw#T|?8WPH`Ow z0?$F^^Y$6e9a@4*zE9?ECE1(xT5s3oS-DYM24QWZvmzWc|4 z=SufIX^|)TzMk#RBbm`B4e}jN`1eHWo0UH25f~?T{a{t=;|Txmr;Ym)EvKLF>)P4n zas@Ym#weEdPiF&d@2?B+@=D!8a@`aSCn)#l%2=BvK1rjqLd93vpOKP)_x1JT%}}3T z(YGUUHhn8TX-ME>tMJ62jQC(hWVZI>w2Nw-{>9p+7B3*o7^f|wAt7&q9Q;xysXWwri8SMC3(;n z%AY+G2r#d>3W&{l;`nk0-jL>&JV{!xjfKAGihtta?xufjM6|X| z$_(AKv@xhD3WxSS>#V$(k(^g^2tj(K)fc}|9nBe|!_B?@&W-whtbr>1;r38XX`QJm zzl4wxe6-1UznOx-$_XF!^>44G;H2O)6vD$J*(ULJEWj#h4+pS}+Q!b>6TV+8A^8+$ znNwUUlO4$yZ615)cYC47O_@lUr}NoYH3Z{;&H? zJfdkiAn&2} z;vq_14>+`Q`)<5th^yxQZCf3QC(?TwZAZb-cM*@xG0vwu+C)lt&5`l()>)oL{p>*4 z_5P8d*EHVVrZeX6>ThO$Cm^fI59h-zG53;(k6i~c%m3%3p_12y=>FD=NIm*r`{Qji zp9XBFdUv_dg{n+)ipPP<|Dm2K~*7X#Op-*WfIt6gK_>ohGJ`(ZgA|pwopTjjhm?Vm7~> zpnaC=wv@-EC14YrVSPN-d#>^XTKpH73)1!eNV6Ht2!nRT+PHPMeAxIWeON9&vcbTR z5y2CUAKaoRGs(+|S?%qT*|q6(B6pwHpHw>U@*A;gVi&Ct%?0@NJq0&I)CK3~B56n9 zs($OA6*}Y53elMuo@_d4-Ov{Hh79V1avgz*?X#L&QyxVHy@yWOMH(3~_uDg81LNvk z@$7&%ifL$rV;ID>p5%S^dnEs?xv=+CA~w-)+`k~wC#R@}Hh7;o0;5JcjhgpJ>IIYb5SFOsb^_+U z+#w2>ry%-BQB`6?6U`tNG~aAN;RqcyZ!V?-9u1e^&=S9s)wlU#14oC#J!|k&uIj39$#Iq2`A5tG(?wF#|;rB z+jixK1l+!)5FJ-h&6t<(-p2zgTO{^ho@(gg==-@pB`%1)>Xf0YgX!AF=Y&@?L_{kNod2~ofx z%ogVgX}bmK)FeS|u9b=u0vbhc9J+M-`0a74(B47yK7_*2atLeTV}H)0guFF9G>cYZ z{BH}17a!W`Up1J4G5i9>2w8lW51IOXht3yKs?*JnT(BX2)wbT4Wn8r5cxnTWTCE zZ6}2+n1Oo`C%c?2!vIzLtmTMaPw$hhRL5Sgy{J$5mSUT_du#po@jSN_9o&7-ki~>1 z3?u^38BH~(YECz)@N&xIoC82~uJ2g?n2(U&PFQ4_CnnRYlP0Is-8N#m8GqHVXL>`m zw*HM!eLG}xJ1y)7P!%7;f$6MP@Eu3;dcW3!?sBzjrgm~zu=qhdsdU_40X; zyuIRd^r@aT>_zg(h=-}C`;gC`?4oz6@;z!?Jl6v&l|BQc=`89AH-vJktk0jP2b>rQ zJ5Zo!i9f%yXQ+5d7)#a$J>;oR;CGm%c%+Z5t^OMn=Y0}1G+(l>ouWBQ$@glDF7XV# zW}|N9CR;k5u)Q0<^6yOXca1Kk#rhFpm|LaAITA)jZU-bsM}}5`9h3FDSN&)FI%bq` zcJabIbj8_Gr;r+q1@cxoqg^dleFK^dU(!2w9hSosc#bZHf16ztA||lxPl^C@Bq)FP z=e{&$%rRCZVQ%}mU-M;hFF_#l*{u7QFTXbWG>pSSAkXQkGBnk zKEllt)r5WH_Iu1`B#aE0n_0H!##)uj6g`8Df;Y^#x94@b-M3)xi97rI!@#}v?>Yc| zUCGOLd!GlUlh4Bp@KhHt(sQkzn=w`qS_)2r04I=X35Vxg-=;mtnyk{GK^!!AQ;a3)^^TV>PT(ma!_t)ePr9OoMcZuGShE*Tnr(_q2x_ z77+cMW#XeO&h!GYb?6{nKdV{qahry1O}}H3QMVwzjs+lI)SdR2BiXtfcksO+mRrdMgIiVDmUPT;_@UB4ecKF%w^j zjiU;GMuY**hl`;)4JQQxxtBS^){0EGC3Ac)d3z#thYiD~b;mu~;M*ykk`DVq9KXwt z5duo7kG?9mX)Sl{15UOYZP@VD1v@pbDI7K0(pmyWU)J6JnJxH|fS0YQILj&t_n4&f zuG5*l5(nXy$&&;bd>?(GdeZe%AFp~P4yMj#$7acCE~CM9P=n6XNA7aUAwg5LClNht zSMtR=eEqGRC$lD2lxCzo-?f44&7%6Iw$oW_$HB&&uyghsvuP-6H4CG$4B;H1Yq%8V zU6;hjQhWZ5>2Q_Jx}`N>#Jrj;mEZ=(10G>wXSp()Jt_~;etQY8@LdovUufF)SVza@ zkS~mu_fx26)lI~uO}NKO9Vi4TaVqjO`;zy!x+|Odv5zl$P!|4Jx^si7YPy;YnzSjs zMu|0A5OkIOYFUE;62ODJ{ zGsIqYMRH{@@$)ftL4F$zO6;bX4+YeFV&4dfY7Zl>5u1NA!%o!{G`O(&p=Pda7ia8@ zk)J#gOVWKW%Nx^C-;(6CAUVpsJNA`x?PsUNh*DawD)3ws+Q`783gpNe9lv|RsD$46Z|f*i-6`$Q~QBw(hr zdpEp^hIVq@6}T7q!pi0>(vYm$f37qO`$*9;XO$uSoJ}#^J-oub&_gsCZrNR|0^jy6 zw5&Rt*_^B8x-#FR4zo-6ov&q2`c5zY{d2In2wPN8Q%dkswxA$hBkUnrO6RSs=Jd`M zqI>x3wJCo=clOk@Xp`3JHdzZ*oMBi84XDmvHgaf5J*9T4c|+mqJX<#Ua6j!oAu}f| z&9a^7^Lk@?DVN?}lLqMfbP0Cox9`^4^xScC+djCd6Iw0RZCa~Us}tp!{zY?XU}0Fg zE5#x#u6bS3Y032Gy{90KxxbT0%O+$gy0g>& z8vKIO!mbz+2!e3jpZT*N_{b4se9tvGvri;&hkg!H*Eu)^7*yt64ROA`ha|1-C`2Lg zo=V(@Vc{3^i#+wj?e`_(LWk^U3mjU!PL}F=EOtdSqplz-EZ7?yPa<2Rext~ z4KXfpA&DYn)DUV2)#JSSg%%>PWpoUba`QbihcVZ4ODpOokARG;M7qV&^46FEq4}F< z=wL@$4nYo3cs-vN;cR+5--(kR5dXKU*wR`0RsT4hG#-(!aK8LVQV=g~DXbxMPBS~! zXgW#BCB18?QA7%#Krj9Sv9L!#$LyfK%kjMfTrL1Ky3yv1--_@&Kc=0VxXX%;SJU@? zCGkWO*j>|>Ml(wKx0kkSQA(BJ&I!6FU*RC4D&Ki#I&TEiq=`TdVaN>+e8Imgg5-Wb z!c(`(;+W1wNhu96EnHeeoa{q5wrb0~BaGh9*Z69a5!4EVnfFs5U)XzaUXZP78%J687WzG(+2n$P+Zt4|YpIzYTXSx>5bIA}T=#miIS2YAKaVvi*>PumFW zfe4?{97ry7k7ssr4eQc3CLR*XoiwYCA5Y9AdutCb5Wuziyb2CyU#1)P3SPpkFO@%B z?7BAAp>XADo2U6*9-z!K&XPn>G2n5?NF3;#q=P950rc*X$tGB9YZDi$K?Uz&#)K(!Q{^>;e#s^H}`e zx5BTbN8cZK#iWA;?)%W@sPx@CJo`l#&BvTcAk0w=xEN;q`n`PJt(p4)^jNWR5Tsb} z{VS}#!2&P$)Wa}wf?`Qf_+Kv;xLW+lEQ!=vhby7OUMHum?CrYAk?F7>Q{MBW=%Z7! zA@!p|U}iL*x7no6b3$xy6mv8%pnCl5r{57hl=%b7e#?icKN<*K{#<#2hBin~^+^;P_#4{uLkPmw zGJE*i+FpVl(^)j5hw;_af9svHS~7NRn)B#_@Px_P^kXvJU{ zqWMRlknfIxwEIid7|bjPwm7=;n#*(f(sL#1bhD~OcpRQ6Qefb zkqk?(lK<|++=}Pw!iDQN1R)MS#LD|hJv&#=X~ys*)%O{A57h?|HO!F>s>rgqJC?R9 zK=V#k(wkK4zAYT1AT|FsQE~Wo*w{Ad0B~!Ayfc}#%ONVlv3SVEl2-`u*ah1&IHqAG z`|^WDfZymt*s$bWK(hlP@<~0vz*7MJf8@uTx82Uh9+cEm&D{sR>@~@dV|~A=H{IN2_nab2)83@b!$!Y8eX@Xv6FRU*{!APR=b4& z#LF`CD*x23rc1pwlr?+RM2}c$_c`4G)PJ6WTy&+=5|bw*uu|!rmWuQ4vY@z=EO; z^s`UazI!6e_cHdcvuB*75uNUoJDPRryx6;xKeR&lV`m-!uo$Ck4;ZX<9X2NZ6K?(B zetfq4fUq4-;hi>LyC4fUi_}*pMMP!KF@!F6DGxd_WxHq<1hRi&q}l$i7lz%8Uijh9 zR?oksY-RYD+9qKgZMG%iINb`Y72_ggWH4)HI(q|Kt~yG0tEJss484C2_U+7DT@4L3 z-POf2nmm}xB;~Negv@@D;i~h&&YabZUbo;W?NadXmxp_>=?`ZMdya~zRg?48U=fzd zfuYABRwnbz#?Le-I3NC{-?o6hhEcf60cUL-Kw;*J1=ETbK0?l-ND15hz3GouzQB90 z*|^piZ47-O{=2o7-7AQj?U9Og%$|B8L0f#xmI_84+^1o}Ut@rH=3-gchM*q@^lbX) zHDh)YZII1(h5{pQv}CAiifoRAPzptEJwdtR8xzO0iduhKOWrbKdLm0;kMnEiXZp|| zlzYWsW#V|sbeNI|!P7;%BWUj8-i>C$(bD!wCw@<{KHrWT zbhL^$T_H%Lc#2s@nmMrPMo86RM@!G;7<$1FOUTutBnK&}n=uqzq~vBu-qEx&V>n6;j=3M5Sl=^TL0%C1P8h!xe7h&x{Rq^_D*t<(W?`e(vK z6z0mCiah-(Ip(ztSg`OVF%_&P20^mh!<17_n2Ut_|3FE5>0LREN>jWNAql$OxP$XBQRT;XvI!_+xhwj+voYx&qj8}vr`Yz58j9sWak2;H?814&C92E2{g<+Mq-AYT zrd&`XAY<^P-DNqBf3g;uFk-Qmt~mzE+1LlvxBTc(H1k4C%Mljn{Nn>xx4;4caqCK_ zgoSh{E2Nu-+ctBBt2NY2t&im8&TQjSks?I8zs}O@xPjo{$lOTBHAgIc{9GK$SYMuL zlCJ%vvYeBCk)OOji5dZrOI@Uzyzwp0(z*(~&i^)(bjVGA&Kjuuvgl!Uh67rXpYBA= z<%4W+o~lI)vGcyFz&Igad7SAIeAoo@=f3-!k?$a*UG5Lhy69w}7<676FVkm4Ed?NL zyJa`&Ozl8YKPBB3b z4ZK@vX4RF}2Vg8Q$GtesEp0E(VfF9`P zlzW&sLG7fg^bc|mhnsCkf-cqF)JSdS?_q{h_#7ZzyG>rHTdB%X^6x%KHSgmfvsL$6edKJKdVqKUoSff zQv{WcHEwVs%xPTzJWZ@@vhsFU)s{>wH#?)MwuL#Cd(0zjUqfD%25m59gLK;Pm&1Kg^I(YN(AX%dmJoAx5-dP|!3c+d1LU zy3W-r5{MIedObaK%>$(!8o@8rX{F{#=)NCaRC7=+Ur`=*`=P|Qz?Y|!t;Iod+X8D! z3nn)~vm{_nq#|b^xZKi4RIszT-i*)n2HGnUrDApxbA?zZ&T_xltYT46n=PCg&*rgX z`jelJ>f7O4lv}vfQU&V5?-Vci0CMV5bw6>k^Z8`n>>RJ z5n_&BmG;hDZ2Nsj1t0LTF?G`s9Hapgg0MM zm&Ed0jfc2niXtvQ>}seDyY@!iQd%w`M_a9e8ewmR?f_~d3N0jPUj?^16k|B{0*bxe zlZ2J{Qndg(-I&PP#@VkHORjcs-)DSr_m?A=s%3>7{Q2%QrWa^gt`k{THj4x_EEfk= z`BNu-HCf`y;&*^)fe6$;a*tzi5HjwZGBZADaDaSMT>Pcw4ZsjnKLZ)%dn;E1Z8bs14@G95~;sOoSW|a}#?u8hOJe zeP(59d7oGAkUM23i~UcHJiCm;Opgb;WcgRF9@;y&rw_-f09}xYiKKr$Az=mz5|cbo zk39l$d`Bv}Nh2=~CAbEuYJN?<=Iit6<%U)e$sox1%%ta)xMQKDpnuyMUX>$K3MpkF z%u7_#;j3n$D?bDV+Rm09A1%!GQzr0P3jvWqX!t_&4Zo*5LZM+S^jwWE0?)?fE1*)GnSgF0^~m+WgvX1fvd;(gzv3kt3Gk0odas5-pPIJk>=XPs?vrg6 zqdQR3@*stVRdWES7H~9!c6a%%8Ls=NHN%sq3{|uppN9X2k546_u<)&kL2=^}MbfUv++R z(Q5ybke7tLOPj0-yqI?VWoEmO(t4zP$aX#Y@}&%A>xFu~HuK4mcHxVjJ8d94!={)A zoOxY6x`GM@S5}rJXO2U)NB#ZKG|)xk2$P#G|N0B*EZT1|HKZW**1D|E`neLvv}9@V zj3L~C=ffB2IsFV^!SmpHbU9D;3iT-c7&l4FxD*o5L0TeaQTxTcdO53Ire332nKsIYkKKKE3ev5cbwJrpBe}?*D@O z;WE~L@>>~cEJY2Kfyirv>7=|_pzMN}juG$j?hUhaQ_};RK5=*$UGC_uIGt#m6tQ@M zLf`do-Py*sNiO$NPsF$KcAw9`1)o_BE%o_j=vZu=2!i7g#~fG;q|rS@guHw)d);z6 zFz%yQWh#a-6>guMxejtwQ(#36RJLQC-LT5)oc#jEu!jp9S;x%78@#<=Rn2Ob4M=61 zG&K{$=t6$RxhcGyNTi@R;3FziF|sm;6Kd4oWqEVnQTb$|V#tz9p%|pWg-0etnPQ5u zTYjkK^=qjl7L3T^<+}1q5shvwN%K3X?N<;{%v14tW+u{LuhTuOV5)BtIv{lu>Ge1) zzpNPzq7SOO`=mK0rGBv(jO)@AsZH@zaTHqlGyToZdu4#7r%GCruh!No25Tt@6nza3 zo&D|r&!w`>`~iGspdq+ip_~t~J#0}PJAdVrOkJB>IMeGcW&A6K8E>+iHbx!%|FHIr zQJO?cwq3SuSC?(Os>`-*+qU_YZL`a^ZQC}wU)@Fx`qm*wDgjT=7OJPCGXAuw8mO!%;1VTb^u9vM?nm zC72c*WA!7=B4g zLqk@C<7tN-Ha!mwAwD?oN=s)ETn47PH8y7)NpQ2i!u<%dcIr zy{8NO07vNv@Q$GQX)D3 zoZ7`CHT>FwVyX=QHp&G5&Z>)%lk#`NC91v{@+QS%isdc;C4>pRpJ9MpKv`Uzi&ztw zu<&a72Uqh+APi++WUHDb-4cfLt>~t6fn%eu#B91N4}74kEdtk(pmpE&X^&a0tZg|_ zIqk886=$iMW#NW)1pkyA?V8`=iz+0^PEVZq>zt?G9qNytpKn}yr0EqJz24Hx5Jp=P zk@(%*(LvMQK;CDZuV<+z!4?0@=3_jRT7ysAnysJTLD2cUiq)mL%V|Md$OrG!FuT)u zSlA!z6Dez?+6h4A57ZO9Nz_U?Hg_8XF|x{)Sjn2>2v1J<0X~&1-;h#0O;_0jhUF85 zkbSz%Ll)cc%G$&ik5M2z+1Z>tSp<+-C~V4I0=j%p8E&0Ft6#^;^=%BJOJY+Zho#W# zN<*>R$&98K1~UM#!^Q888dIs=g9+|whf5bF`~61!#!9?XbAi`dKdOI;{->ZAU~LiI&+w91gxC_B$L zB0T7{685&pWTxL+_8%=9lsnu8)TlGBQ2YKYvOfmgLM4e!pZnmTA_1=Ua7~F7%hXy$Q>e*X}$4 z+N0oIM(L6u9x}<~Kk_(gh={klkhvu57C3~`60UQJ(P|8rj}c@ zc3+?L117>2DU$O2^;Y{L+zvPzffpAOO=bDj60E{o*drD(+aH@V`XMo&s{CuFcH3j9 zwCeW$%>K9<5l8cZkV)VCrIh$nLV~-4s+AK&!}xv;E$1-L`~ew#&=|=KM2VUX+y*q# zWSdu4^sU8IkK-aIq-ty9vazbey-FG&Gu`<{GQjc!uRvxKWo^@`fV(<^)FKnPKNk{? znC^ta3qLuj-$-*ExrV_}8XY(VUVsVuCvXN<%`sAFy}>d#MKqh)xnBO4hVvJumvd0Q zLlAoL7@pFX1&<-EN)RD+l=YurNoW(>F%iU@_>MD@b4XJbONiWALUCD(SsSWC(J-Fg zR4TY)8YBla-a+OHL_A*=ivH-CDwz-|+aU!NU*A45Qr7Y_IoRAccYiOnIE2_l<4FCB zQia4n?e|IMx#*c~MRR&TN%yVi;08>hB;+X@ehbkqvmMkdYleOVgn^dLqgz`&SA?qK$adG{AU_kSQ_rc=|mPO=?Ha)N* z&b%oV7RE2-0Ys&YoU%U3_)ZayUWLEPhRqSSh<_7B9MqLNUNfd%P&k8kS4MP7r!o*g zb;YYoq^{|MadcK4Zo`Y~0{J~=qa5xIteC<|$n+$ZCxcczf<+?^eSsM%LH(u5#Pns4tj@GC{&tQQSwZuU zrq(CYFdF=_GYO_m?WfUA0j?6!QpMJxl8fqO8y!7x*Ib)~GCml^%;yDj9We5JS~U}x zSM4qqO>lE)#=I(KHT_(ljr(`ev^$fVK5rZ}S$l^`Q?7IMu4(H2Ja)t2~d88MV<-QR9X6lm9^0|K4HQXf`23WvMPH6amvPK=^pfDUNQ-wcTKOZB^3OKL)5X~U2zi#>{z)v-qC6`Ev-SR=iWwL{k+$PC zbDv5w!H6GW13A=*zh%oZ#_TdCgS^H3oII{XN_lYc1-Z zbi}A+N0%MU4UkcoY>wEFmC|yI`4g`ll9jkbZis*N}}8oGgyM^nR`Gfy?-?PknrJh&B=^ru?T$MwgV4jnSeE{TY+gkFEF~j;MAz z5)GNjSUQ<(1%8~;re>Uh*%i^sLYU&Xx`|JY)If1jlp{!61@?Z1u^Qbq%#8NF*@t3mLR96P-8#%dBBup*6|Qj3AWmkW>2EcH>Plg= zpeY!fbhHZU(!800493zy-G)Ghb|jSc=v|wE$+K%se4|Fy%!|H3h{^4ZCKG9!Aw?Ze zx%2(RMU2yQ$?2~9hRtD#!ym#TcXUV<2d$uz@RyP(0jz$Nj|O&?Y-;Q(&E7CM@y?8OfxFWsc0jmmXU**5H@33l&LlrW?G{V3)9eNF6`1SyX%zip}LP| zr;T;|lZbe7>=NvNp|CaYPNQ}@=KII>?$|z28eae3%kcH{601_6t3a|aAxc#j22Mwghy|?mP4IYo?e=lun6M8 z$JQJsV^M{y16a@oHlXVRRw&5JWdhkV4rW&AqW}%><}^C?cNAq`CKRzrYu8Y!xVr&nqy;jj#yXhYfVp@jPL9|L-%x5=zf zkK@i@&dxJOFa=LA9fSmerl7o7ieqq{dD)pVC6M@yg7PdspO0$TSxYOX>^)AsDJvEB zCt7~(2>WS_V5@-D=t!M2jGPEXVF?Xz9L01q#U&Nm1$N7lWeRsB-}%Z33Mkq=qtd*m z%QXq&rq=tLp2x%o)mmPJ`L3h6$nb(n#?2}Q&m8-5?EYgs^fJ^NXui<#98HV+xR=+A z4Lz1cbRAXyD@neTF+-4Bm7*X20Sh9$q>w-TVW^ynY)iJi&4e5!vq;vjqn2bI zH?`5gNL#kqP!Y{t23yYTbCK(nC9aq4c&jpUqNt5SQg;MXMU^~6&`3aXI=jJoMd^Dh zo?bZ6Hf4VGDKR{&@9e;A_v{iT+A+iHcl&y)a3bepCJ_W^G^0@iT%`5%_wt=n-X+)Fe)4vGk zagCoHSHAesMOlp0-c@Aq@W*)m2h+!1z0;!>^kn0@VtlSn6)^}`0vH4V!y?#5l2Wa!Xw&H5+2i>)4AC5TN6#c7P<$E0wHJI?+B{L2ef?v0 z!#7bgkgozLY||(GQg(<|_iO&mtWqcpn$%BnpM4PNMA(IJbFZ*Q%}<$br%Emk40}2D z^%IU)VPdq9yfxA#n2~VHgBd%6l7Dc^*KzAWMSV<=jW@K!J)?iEW&9bj_jqxA$HgBi zxX=LCX3e4$Ym>6t7wy3}Rnt?g-2_cY^ehnJvx~mz)1hw$f!;2XX5b@lMfjj`D1m4l z4(5RYPc9P!jIj&t!Y!P&zs^U;m^g5~8S7<%X=~$fH$E?lNgQU+K|1S*?@H@&c!^Av zc0JwhhsDKccO4sr$U6atR3%tv5E9~pxI=PRlVn3LfX%ve97rw&!HTa_)ev~xVF8X5 zAWmt2#^n9_NEcqtzLlqt!Pdk4c$zF?nH#hi$wN7r*1un4TR3?7GaS6laMc$kj2A?| zvsyz+LC+X`-+@d-AP8%S&uE~aQhB1Gpgg1#2Hyou%QeM5`obF_A3eygU5O(eo0n;a%lKUpA|-;M1(Lijff}9j_a@>fPm-vO)OW)5}Ug}cIrOyv@U)9@*=g)gy)}oevtESnUK}e$*zTp_bG)_5l}Jrf zFJfE;1%h!p%SWny=4g0iW&G`wQ*J7Eg5?aV=sN|GprE;4ADrcBe+{QW@4mJgI8=g5 z>HD0jfp@UJBdH>BwywqUhAjQ|NH)W(I$vql?EBn~z{f^!ZF~}^xwBzRhb78KCKki%e$t4>ZGKJ~tjWHs6h9;dB3n?P3 z5wCfH2qmLkTYrP9^;=F3tmu4y57QH@kQd8SMJa-wF&gnhN-bbDh@_Y(qdy{_ET72_ z`)?wneC2Lj%tG5%E*+0s=1aM(F-YuyNV@n(S3Cgq+Tu9*@r_fKY-CVuhF zlWW;Ze~s=i53Dm!|4`XFk)*SlT~ z+gN_3;#rnl4T(?l)+D6#B`Ku54KlU>bJL*DA`zA1I4ph1ijO-n)-=+~rKj+qK7{9l zNH)r9TfYbY+UD#4C)HpFxz7RGgKX(JJ|)%Rx73k}O@98(gRQLM0|lH?EQooxh{60< zJ;^sBNTU-ppb!05O0;iUY%Sz@eG}870wR}#Cu)}WhTHWb^BdEgaoO;c1FY#;qCb5j ztX;Vt%&y7c6Q!jlCRVs8yT?Aby@wy3`8+D|hym+rut#lMp(WeY`hZG=`U+f!q6Tx` zX17j-kmSl_#pn_@XhlwVjVhIif#6K=^VPBM@a76yVO_NF?Ji&RhD(uRap_J|;Wuem zOEODJL8OsiCiP6f#?28WY6G4bDg8ns_-0&mE5XLEtH}AiT@={Z=GZ{lzL+cRacksT zFoXl4V3q+n|5E-Mx4QN^qGG|^?yR!{AL#O1VG@1?PrGamu}_NV|25X&{<$$cD^ z$`w0>jS=$qyjFgy(EI5;ZNUk~#k7#ldN%;X3VJurjeI`!IAgCfzK%?X%hKD;gr0+b z2520cEWt89L{hYvp|sd0pZ<7%in8}@M>*b(lCa@knI%1quvbT`hE4qW{@y@!7gz-7 z)^B@{qW8HIDj^diSjL{Z`WZTYMI8#9iR233L1HU47Emr+G?JhoONgocfw6W@x+@X! zYgfqRtemSs6?-?;Oe$yT9a0})R?hytMJ<78-n$iRnB~nq3(=DJ@Q+QVO58=ZPDk2= zc|k%V!X1KORbV^1_duRG1cqJ&|Qvf(v3KKx2LkEOY;JahEJA~?G3`mq_}2R*D!7&|TX4y+0_qYLE1ebc;bX39S&)gpzssBH7Q zQEj1%LU2N(BdF?>w{}D1RzoWWL5u636-liiaIlJ|rK~slQWJ*KdDW|0$pvK*KIUbn z6H7GGriEyn_mi?!V7MAF9XuA?)xxjwr>efgxzq#%^>tu`S@kO=WA1D`HoY(BUw>Nl^ zk2!qEX~^6W5*lB-v>`0qS9lZ#S)N@gINp+V#mqMG7)g_u6i5L??Dn>y1P>+R0Q z%p($rgY$~UHw4WpRPjLz{qrndqO;ubLlN47&it$^f~^sC>!j7juKY55^>)L#yYBcm z)8PSa_rO{#Z?5s+$$Z8AZj$_XX54H^XlLOWPyH!@8b% z>OjU^4KIM`@-ofOT$%rzOGy{;&}G&OI)BH7V=#XNt_3<>#%|SfKzUY(a;~@F#^WTq zv^8g~Pk)z@D29$nzi!B9swPz-ThkF7Lj~FC!LbjcvaLzmt(4E*s1&;}Qh^m*Pgs49r5wR~C3FYyOsU;@R^LkK8 z!3XOxJYxEp6Ad@PbZ*#r^K)<%-2z)fR!Zy#*x$UuO^zRp=7?TdIBlOi#e{1WQ;ht7uIKMhl-G>dhkSbm444Qf#l^{A-|hMyPitr-4gs?KX_g=fi;&#l z&aPWyZ|h+d_!a5S8-R1@iIp~KdG|aqoz`A1c+dTM7Z>DpIJ2-B??nU!jS}EX;wj^X z1Px2{9~u^Ufs3IbDP6Z_*scDh+Q7;C0c>V~*odEbu9xe@!}UM)9D)ZZbFdsN)+BrE z!Y^{_rYB($KeD38R~2!Bl@O%nG4`8S)~(3S+A|<4C+svzTDKP?t{HUPq|khlWU0)G zmjlZIE1HE$f#7Q?kvRp<%HwD*y=)nHR>l5fIVvqpn6Z$~Q34M{QV*&KJKJ>F^n39! zI_Bc0Jd>CMEd(&YH9IW(Gz~P6E*W8rJvG0WY0@{_1rk=~jlrC-mUV+d8K;sR$W!la z#u#ZbQrGZDj*rOMjk##j+iXyopq&}o=8n_}g$yZc3}caj-Q;cS_urz1-+gM2LcNE! zTw=fO>_SRW0gg|%_DsQRd6NV41E;H9&xo74QKl7&)G11JOs(B$^%2nr&FV z*n|)S)&hD5&m=C?Tp3&elI`tuW;o%f@)6MJUI>LzxhhNXGX7}cNrWT zp_#j-HT#Wm12tHHV|hfDd}j&4U~$yD(zNWn^!(hOGr)Owy$B^N{e%y+X|N;D@NgCc)J+t*Qrj@c3=(;6$0aYrBorh+xHsSz z+OAs8!&^0zr{I~UTLwlb@_}ksO=XcX5o}YjAhj&^o6H=luy~gM<#eFXfRE?~j`eqf ziX9*)kju4(61yQ`8#cIP@bW+Vm5-RbU#vRQsp{w3TF)JQLVvaf-T6rn0hT5_A}*K{ zb|**y&iVR1EgZ34@;=aS-xZKy zXi-v)J}r$YNfjuR*JX`8NmTTZ5K|rWY%&DLA9IH6Z|BroTG@3I$J))rlUmUBlc7S_ zYv^5Dh2#^e+|~M0xyKG^=IJVn*pvhjdI%?(hZ9G~!?{XprlPs_W91T$M%h>YSb#3v{Y1Syj&p9n$WuRvmBQ`6Vkeo^@CxK9~{8W3+}BQ}K+N z`pYS3R?(#*xDO95>qf1Dgay$u2OS^j>dx!;tJOMxSUj89ZO_Pa93~O@>17tDV&)W+7PpuKn}6txva}} z)9aK7h%RgJee`BISRFkhfmO$e8RtERq!H=j5biA8Itg`_(Z_{aD20xOc|;bUbf5`XCOz#IUrsP2YE< zPfyavXT+iEfU9I`(p<&T^s^?@D8lHlh?tOOUK1yMU2&rEC-NyH0IYqD&v@O);HW&! z1L?(SA9`)m-gR==RM%QMJ(CgPMu$b(5YO8L$bj)VK1l(usmHmbP4Ibw<_I9&jRQ#t zW<}^xLhCo204gqV+kpGl!4ut8--5)(21%RU))F2~#cdXE5pdsVb&=+BmfgP)J0PJ6o7%$_m- zPp?cT{y*Jj#-<1Z<0=l94nNy5J&5@b5**H_N^2{eETD$0xmZA?Cde?%pkKhYsG}5= zD3oLa)YNm4OY&r3qhtEaNhW-^S=szCI|5s&Ilp5`n02Yj6tz%HTW5zoO?OdICY7zp zBU#tkl?@_75{es8?nC0AinEFd+d~U$n4VbAgijwZz=~#w)SP#|nQAVaPiQ05 z1^In)kR@^$$z8fA-N-}XR&UI!&rQRQ&)%2wdDsptjB^*2(`R2;=w<+Y?3u$E>Ua$f z5Ae-7sppP9g7h&*+duQCZtNM}*Wv(13imeMUpRomp@kp~c)Nro8GPA6yx%6fUBMie99 z*lpvQh@R!FS#^5{we5r)ukPGz!1`gdF2>L615R794vN^6G2#YLo7hN%MaqOz(m&z@hK1~DaO@%U}aG9hdsp&kW zJSKq|R5P(8X!S@5t#ev5RQRbzHbPx~ZBegAcyoM}+3|owkNGr(k2Jn=;YQdZxa0j5 z006nX(r(Lz{b16@7u>2)OHx$1Q3U(}dnPI6#MwepXQeKLZKrjjfCAd8IEVR~BS0sh z=}$7$ma>{sZyb<3vGfy3jD@IGN~FNL!noa3%6NIMRn-4Om#e_%`Sy+6XjS^;=kfdD zowu%~N1#ny>GmqAV;__WUTr#=&CAbxuE0|taF2U@(#-JYq&Qp}_feUm(hI}2nzB#t z7N{6~JO)~m_KG*pD@BiM?v|lKlep+%_L#wP_5$=-@{t-PyL-X({1Ac+TB5G_NxiCS zuvgKM(18hnZc~8ENp-&1jy%_K1K>n$JfL|JX>Svhd-<^|Yy3p#<(BFt8+ORez&XC@e*I96dwM5cDophu%mZo9 zNt>H|EVk>m{@eK4zbH}-clNx4S@9WjGOR?Di-)pG+47u|Sq4?8tm-w@}-en>QmQtmocoRhb_OxjQr^18s=>H9RcJISpRU zQcv&hxI%x4aMCP%raID0vS@{AXs?YhX#(&1Pr;%%Ao^BWq&oaTpY*1UWZK8WbiO|C+n&!)PSes z#bUL8QpEb~nn`y-9mdWSd~OpeE-JK2K@^nGWwLb04fLX+nFiPOcYAZY!JWpK7ADQ) zEnT}Y;aaGmzii-hJUwSH7u40_n?~=)r_s@MTITD148u=3b7Vt8Ic&tL*`_Z^aZy4M z)xkU<6Dua3u-y+Hkuna7ld#PSQw%PZc4O|8*A<-l?s)8uPnv&6A@HR4V*;QdUxyX4 zSIMgg-gOeVFgT+6_DvqhldG#qiwDOa8#p}0$Z)q2c3|b|5|zc0eA%!yrtGH7!>BMV!d3Ki${MJ(u9;MQZl;JS;Nz&KiR{Tk zsnm<_zz*KGVYjO+Hs&|)SK?e13p)6_ZeHNk8RNN2<2Rc!B{@aa)4yJ;#mx|elHrij zN}!}ywHC{(Y#aA&<7@L&2)uP+jSf^pteGlDGlDoHo63O%H?{ANZrDXr=cfaxVHsaJ zlf@kl?)0qFJS{S9u*ZC0YQGVPX1m)Jw1$P=hMQhDj6j_|)I$uxP^OB*8G?c@X|Qmx zO1f!T*I#fQuVZL(N{{Dhx_`3Us%W_d-wdrR#u5buY~;P&b&x*~H zWKE#gvq9%6RZGiD11{^Fjo0lgi;nU0=y$d+poWjbD&F*QYF@Vc>hKh%tF>ZqC}ez# zpgdaO3Z`Mj-7?zcitz~U zrmaiTNC*RRG)h)`n8kmpx_#b5>HWo@cr6V`py1@+7RnC2=S@~Xadu-TfxKmZj; z8(Rg`wS5cN!3D+qj7e^M@^Z3pxDv|E@mfb(!p$i>C7f5vFGxKxE9+6>&l^JYUl)YW zn-6c4nlN@`y}*OeEy!4-Sxa#O-Gq(?+0-#|P$*3flmBo&Td~_JU6`Zqs0Y2|5_(0r zkGjvfz2{u=ezxy2tA-cGbv3?LF|L8<*Ky76x=y!5N_WN@E6pC5xB_IE4<0}dLHKol z)|w&fw(93t?UOpwbjuFCl!12H9h;VqZhodfej=IHHG3hi*X&gMDKWNLQI!I);YzJ3 z2KG}p{jM&&dOwH!nN__GcMh@PtFf1bhBuf%M^lJfbkx4;?rMD^%gQF}b?-vxDH%~W zF$^Duy%x%@yrNuC>Iq!B&G#T?@pgr{gcau?q0k5uF1gIOFa^ym@VE>4xj5xOfJ;6l6={0Siyy}fdto#1mPXl9( zr8G}GDITtwbV8|q_^u<6afGZ&MCfkbRv*2XGtaSIXv9<~b-+Fi_@OUY@wYfo!%QuY zXS%3@<6&D*R7n!1ZtPYvmoZfLZzBFf4ONXe7|@kn=Zys{c=wAy0$MarY%Nl3Rvz8K zW_J-zC{^Js`hsD?MAjg}w z){}nK&Ty-k^t?}HAE#bban>T=<*(SdP#lUhRA;P&2#C@f#rJWj(wyxc1*KsjN)WaO!%c@^_OSl* z-sgHD-BfAoyp?+ZqQ5_=tt;jLx~{)rXwzI{L;^}-1rmcSUfMXu&Ah|Q{y8D}VN>vk z;FfHK`s4JDd4w&BG&bi`JS!1f2pjbwBiq?0q(}dpEJvqoM+q>Ao(Lf#&?QEf_l~IL zH;Ipz-hOlvTVEr*Prn?r{kZB?;G zZbv%WZNpK`H^8u2krQ{y>`nG}2CBsw3Y9o@RM{e{GT{e_DedXr;TzF6mo)t>b zLn9}KhsOlV^zvnPX2N@{amg^^PMI!Etob*vYKJw0IhD^E(Kg*rxfO1Qdu;uU&{b8b zKF9j?K6Yu@?mHdlTX3JL3EC-Yg7qKF+?!I9?@QC3=@1c@RqhP}cxf-qZLy3rT{41E z56Gs9Mb|{YHsc#iQCc>H=(JVrh90Rpg(a9)K^MV8!SDoIvM0PR<85agaGm$^e*ERtuF=Y!L^d;ml2W^2SxEK|E$9Tt_?nRVpsi;OEpGn#FVCISh|5>aDF z0pFD6gv5wQ;gBMr|JZE&x62(wOl;i2mq2&Xe_j4hPcOg)oNi{?lA&M4{7te0H-ziM*JA&TR?^g<;3X-|bF2TR$?q>NtZ%MQ`2NDgV))PR z^{<{|h(Qd`>H0n(bZ+rq75@`*{xJg1*K6j3|47sRr`!JxUwv#M#B8sHvbuuue}VTu zKMaKP4QS(B_};&f+{+?F$n{d9U?8eQ@~>>@pW0*to@+BJL>l-vk^?M)zm<_G?2jxF z`!{xH4O-wdBSsSX?<6lk{=+)OLeOOXopr84ik#%ch{1~g8_6X|-^#GZKvQR6|IhvB zKXk7{3ZLf1iTVDa@jvvk|NKJIB;U%|VWX+Cu>P+Q5)$i^d}GLl&4~MNBm>00mDy&Y zsxtq_L1_P*S@ep1V`$A{$nn3{`aVqU+aRa^e;XvjRhCzy>6GHfO-~Ot9$vN>gSgU1 zNbl%qxMrPx05)d4n$2Q4nN(`o-rinddbnPzzCo20nDYLVF|j{ayZKy!`p;}30WWc_ zY;Lz2p^g}}|4$cpq(|1Z5x{{hwICBbNDUy5!|i zBe_#_KV;u1)BC+mJVjmA=yZG^LAX=H_go)WE>7U1T={kz#$T25kabe_(sko=ew=By z>_DwrC7=8E^JGbeeXHotF2WyyueIE-bgq*uCrQ&S`vJJ~uN%Lf*uT%ed#cgtv;lJh zDoB`|n^<33_aoWU_dCe>JY?=DyKOpzrN%VD(6tJ5ovYL;=DshME{bC4 z6phh$-U>B)z1TjjuXHchjpzyK=lVP=%y=$0F76LSvEmyU8J(wU+0MCR`%m-#_2w1$ z_^xPL@JOFEMDN}QgIb42K(G?qrzFR#g6DCVu;zb#H$tGMrsvbV-ei$<%=vy=xWt@u z7cD(KI2f$i0&w8hBpWIFr&tTcD|EI#a_ZN{gD>o8vUn^L*a z^U3mQfZ&h3c$?#F37hR^neSbcUfBq~m-GUFNo;LE)~Ra`&Q3m)-EO&scsj-8boOM^ z^P;*PZsRNB*GTP{T{i3^eVH9~ta`pF9O*Rms>@M|T1B!g2tC^uS%yGUbWKv>uQ}2)v$xyZDRXvkCSqfiPZ89+YXs6_k$QP z6I-o~7MslL+}US^lGaT}8pv>V8erR=4xK^Nu)-lv2 z0*=L~U+KDbIcLs&i}w83*r~w-R?~4walOv=I8IM@x~XcMo=4Pm7(xT1*pqJ5Yr3`n zP2XAN^S+R~tYDAZ_2=oEv+!+Hyh-*nzzM-K+UaHxMQ%~=B@ZG7ACJu(Cg+(CQzYRzUzZqM7L=imdmS^6^y2oA3)FmXh1ZvZ1G zJ_ppEecyy&=Qt#;!ywXmH1qWA6W%mD$FmT9r@xNV6>A3E)gHhocFx2G*G&vREATJB z*9nlBsLP+5#+YjVJb!2j1;L>}OrW7aY%3b57EB{#qhHd|rVpuZ( z0P@t;g8HaPa2Rw@7z#F2!2sI2EB+acY5VKT&8?1(m+S3&pBE>$^>k+DnRITqWA2*| ze7#qp_=l<5()RZC7Dj}a@XkLnd@C7qh2k3zeR?|tr8RBzQ%`0g2+6fw&lzZ>oN>dk zcveFaB1DtfPSI}4Bj0`BV#Z?7Z&{RO9|%csBcfzc!Frn{IE69hIP1OaFIyuUp*P4q9nlXPbQf4aH67Y3 zt=lp9tn2n)ohLb7LIH8>NV^!{V`d#uw|IBkjb_6QwF!5}uu|v+$cxvX8@2}@r;mXa z_qCDc6bvRg-lt@}NnQTeuA5P=4PCWs`hpFIkFy!K%}1O)r8D=_MO85!6?9GyFVKGL~wI+;7&z7wiC^prQ8H}N&8fQbo#iR1ZzIf<@qx}KI*R|l-F zPx$|OxIem^ex8c+GkwnoO=xeo%e&z4f;R|$uR*lzHtQ_hBKCJNnKJn8Nm#_Vx~$W; zum=3Ed&kwAnReY++lcm!Y0@Ij7ac?eMEHIVpnK6D`C_s27~%@z_G_qAwT&UsH`MR+@e^&d#P-=i^tn&@Rd zE>XgCV{}LsOsB@kEh+EoZqQXwz#wlF=^nueb71Sk>V*WToH`@Z-2A#B!8t%jLBU|C zs}+KM5X+5Eq@pg#mv<7A%^G0i#{=Ty5N8D>^i8L5l8;s$*M5r{)A;sqva!a)!sS3; zV=eB&F~h&=uyt?%6XdW#8|)DaLrka3p9KLq%oBdM^}Lbb1jP75cyzBlpl$$!*${8X zs|M%0^pC@SjvmCeg!?-YxoFHq@J;>8cc&GJGUpNoeT|*#{uFy)3J7zZhTHkP;X4^T z6#zY4r@!C?`rAHnL$cznEB{Wfe&-+80sgM_(qlDuQ%QYdH!<}PrrqHI6nuh5FP50z z!>wp{w~h8sjYm$@ZF03_`uRRt_gXM2~V`($NQ=ta`3m}TY;&8 z7+Z%TTFRc`i6f=P==#RL$qr-+2?z-h2x$~HAPe#3wQnfrd)xwrwq5townqtl0XM`% zu;lr43~JHu3v^|F(fgh=k+(@n4mlG-W9*sFY@dUyvj5ogy4 zy2~B$^D2we=~Hx%10ncYG%#~*>EN;qep;@^MB5JWjg$Y5CI&xl!!;ikiPOTbX2?4Y z=?Ll6{WQ+gijzFt_j>*MJ5rs#m96L7ZkIRGAb2|+d}id9M;gPNLb*0?6c;ZtA5aVs z_R{ODp}br| z-jCH(JM5^bshO>~cQ$ikw7NQVNe{UT_D13I^n0XFyiX$rZ1Dm=wElUe2jbeu(fZB( zf?-`tV*4KBFaHATs?DASnO2pp-7yER-rzX*A=)hSvMy>BAzag!_Fr58{*dARkj~ix zvf*CWVJz6HC;0taj_?Esytc2c`OZXsjX4sJ>xG-iluDSv$Bvn;SUiJUjuW)D^PZPk zUe|4VEE}B10HaG+M0CWRvVoZ)B=l#o@8j{za(y~Ehc~~Mfqm2(M#2#ugrX9=dr4t% zBHzFK?v69VJn@gW;KYQ;z_gGy6iWX`C-ZBJVh+=Orqd@utA-6pF?-VV+$WqIFP z;I*Mb`bIs1&GAlb(&im7uy6`wH9#>3QAPOlHchY$F1v~PU%!p>k=b+-GOErmj`vxe z<4SDwEbQlTs+M*7E#XNj^C6EjJ=W%DP2?@!QlDFn&jGf-{CLpM+}12Z+m8?i5pNO# z;+&=M5%1i$+gTYvi(l-W|BMT2{f}k$-S#xrD&Y?&T7A5AN9S8Y0<_1ynGq~Q{Y9y? ztnh2^(wJM&v+JiZ8}WffNJPW1_;0Vlj-hS~;pY7}Z5YPubrN^dga1Ro&Q>hXo6<(R zq$t#_7o?Uig3m$wl^%UtT2!PLo{yf6PPWbg<;!N)NtHNn54ZM&65|VZtiTP1(HnEe_(1H`43E| znFHA`yW1>Y{D+wwi?W>Of3Zm~eJIwSGiidAUVe-S<9Ilkk8sq|sXLIcdmro_?};xTF*pM=8TfS1wSf@agSs3> z3{0_qkkTXO=G5y}hcg8KMuv{?p8{!RUa_^!AVSzxcg9-yz2n=VGaSU3Kg-j47k>m( z0U7SA)pnDv!}uBoczC=ly&^T_%27WAiGFw$DH{k%^Okf7U8(uYsU7Dj1mtdOUJCXRW z1&JG;dY5T48dNz%kc0AO5dU^SmGJ*z?yJM1?4I|97X?IGL1JMM0R;)^W&sJMMG&N< zK}xz~6#+$3=|%;myB8Etx?_o@J9b%eX@1X&Z~1<{|NpLQFGbva&N*}D%-l0`pV?H_ zZbGLw2MyABq3YiRUhmDwJ!D#v3si8Ru?w2fXmY11MbZ(RctnYOm@r6UA}j5ju&m;x z-AleOh2t0cfuTshL$m{wyneL0p#>c2_8VK>-gc=cT{EJIZ#Kok<>WjKr{xO?`wm6N z4AnNcMQ5|7LadZNN+QMg4ZPWG*xZelV{0>#HY%=T?X@s3?VIzRPJ}pS2}OnS3O52lDjt;fWTJEh*8lDJUIBPxEE>U*H+bLS0z{S^Dwy(-7~?GB^UelM5l;u-tH zTMAZOq%U07r49P({0a(|d#AYO>X~j#`$7m9TDrC#8+i@|6+M54&~gAbpnO0IW^x2u z5;#@Wv-Iex5`~B~{B40S8w!Ti&qRyjHxEg1JuXFE6&W-1OYtBl`|&cp`G8qZApqZc zB$}Esh(MDIFX$mEYb-68Af%ekN{swKfkZrzww|sif_B^~ZJBoq1t!>$ldwVMx;Usa!sg_ ze03~x>d}_IX;}naqlgz{D-oy?K|I$kw?RE5NR@Q@`sar3;6eutP4^nZUCIa2c6>P8jM)^bd~QhtiwLEH zLr77a{4XwuY!v22}i$eS_{IzQ$Obc zpSit2XI$lBY5e|!FPR(KXO|eK@73eGj2d~&j>*1rM`5jVfs8%Kqas&=Afa&6mBlKdJ7K<0Rn^FFR(}zA-N(h$v*35G->W<@1+tCJd2O!8>wM9?l zUT|EX$H|s=_panBInr-qV()r)szmLCXN;}40jvRC*;F;I=3hUTHARs2pk)qK84JL8 zx8z(zLlaqO1tr6D-K}X%fOBI?PoI-`Zu10pj-9AIDd)AHSWJ--i^YTy9bC1Yr_&72 zzv3*8m`0S7I);eG={w!ORUvXG#6HA3eroQEUU%=S^(xO0anNgT;9H%ed=~h*U0DX$xfVT zjT8c$>1Rl|MXnF@T}0l~i=+$-2ENuB&+#U^;f(o0`!vg|kfxe?#g0RS*^#^iFv&ou zao|W5K;>GsJXw~#ZN6XcG`B&w^z?BvEPQqP;)U7f_&(Ehfe_^L$y$cS6C_o?Fx+m8 zq3~H;dfEmTDdJ0=Elsa~z%_7H)=?uJskOeEmF7|g^+LNy<1V<{bTDSY{bddMx{OXp z$I5d1vk^YrZn0?RMjB+(OA!V$4^!8Lqvh4!A{#t}YupCqlBCFTrZqbOJj{^$c2c|h z@DyDor%>Ss8}ToXd>m9ONn|Uf>Xe_Ht~jlo(7|g9j$j!0!WcapE!)qa>lnHJThQe@ zeVXJQY1OUJkb-XhaEIF?&1>sR;ND&b%YVWxIp|~Q%qLOxHGB^#rP}K<*u>cnwFQ{z z9(@v#3lKsD+B-M>=+fc+K!1Z|@=05}W5I6Wio+`1Dy98m^w5_B3APK)V;B3v@f*$T z2DUjDEQkZ&%;kqXUk=r%_T*m~w=qlvk1&6o)y>~#^|jS{M-T!zBs5z+m1!VfvEzWN zy6(CPJ`&SK7U(NrLZ2m>?eH7n-GkuW0~_EusUno%&|C&=T<||%t**EteHrovvcsq6 zzyrXOzrP@?1d50bJguSIKjTXv#Qe_-27$~Pazln$vE%;F7nl<7Cd&Lp&g#|wVi;>{<%__Ay>Lndnf`~+&xcL`q{dD8NGtpQoa+uQuwd8)-K77i0oY$cl>w>6 z5$5D*{-1O8f&vRR49HXYA3{GD%Kx`&V#We}Gi)+YSl)Wod|}c$`*#IRUjuf^H6>yA zTt2PRxX06W^;wN?t@C&mpsj3_ziBMg2dth*il1TnOPY z_}`bgRJ@7({X{{ADFHF>s(b{UAA;rE&@J#)_h86~Uc>7&*bTm-%x0e_{bn~ecHid> zQ~!I|WgFZ#N~>#By?f_+%ljbU*emJMOqD6nSGkJ7mzl0ZMK072m+!J+%x?qlT!u1u zqc~5;s$nG`#uS0l=mA@~!&D?(8+cT|+*5VuFQby^v0Q5|!d&`mA>P~Ut12lz7#UXD z^Nhk@def?c>!jD(7ScMLa3iK z8R~tkv_;eKWzFb&_2cQ~h%3aBuW@Scvk%(-ejr;P0_U)#%(zVNd}$NR0c?{N(8rV7 z(u(%xYc;C;ndRj%xpxIX?_U>uu>Q}-1+gE`mn)Mx|G31BB15vET1~QWF`oOv1x5$) z!|Z%K=m|}$0yVk0-=tT4512YvdF-Cn -&;s(yCk~BIBJ-g2kzV;X*Ss(VYWI-BT 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 TnW7>J@b9vU*2VnumcjoI8Wu_I diff --git a/examples/ref-implementation/images/port.png b/examples/ref-implementation/images/port.png deleted file mode 100644 index 4474422912df2e7dc9c675f92438334202ac61fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6619 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 diff --git a/examples/ref-implementation/images/codespaces-create.png b/examples/ref-implementation/images/codespaces-create.png deleted file mode 100644 index 39bbb27f18c0a254df8665f0ab34b8bc9cdedfc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122148 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%0Aj7F`*N{OY+FLG;H>o2idpO1lsFQ^zKpFSfU)E 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