diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84a29c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea +sensitive-* +identity +identity.pub +known_hosts \ No newline at end of file diff --git a/GETTINGSTARTED.md b/GETTINGSTARTED.md deleted file mode 100644 index 8a57fb7..0000000 --- a/GETTINGSTARTED.md +++ /dev/null @@ -1,68 +0,0 @@ -### Getting Started - -#### Install secrets -To install the secrets required by RBAC/Confluent, run the script: `$./populate_secrets.sh`. This will create secrets based on the sources found in `./resources/certs` & `./resources/users` - - - -In order to access the Confluent early-access operator you must register at https://events.confluent.io/confluentoperatorearlyaccess. Once these credentials have been obtained, export them as the following environment variables: - -``` -export USER= -export APIKEY= -export EMAIL= -export GITHUB_USER= -``` - - -#### Bootstrap Flux v2 -``` -flux bootstrap github \ ---context=minikube \ ---owner=${GITHUB_USER} \ ---repository=kakfa-gitops \ ---path=clusters/dev \ ---branch=andrew \ ---personal -``` - -### Deploy secrets for Confluent Operator Early-Access Docker Regsitry - -``` -kubectl create secret -n confluent docker-registry confluent-registry \ ---docker-server=confluent-docker-internal-early-access-operator-2.jfrog.io \ ---docker-username=$USER \ ---docker-password=$APIKEY \ ---docker-email=$EMAIL && \ -kubectl create secret -n flux-system generic https-credentials \ ---from-literal=username=$USER \ ---from-literal=password=$APIKEY -``` - - -To deploy the operator, ensure 'kubectl' is pointing to the correct context, and run `$ source ./install_operator.sh`. - -To verify the operator has installed successfully, run kubectl `get pods -n confluent` where you should see: - -``` -NAMESPACE NAME READY STATUS RESTARTS AGE -confluent confluent-operator-5b99cdd9d9-pcx2p 1/1 Running 0 3m44s -``` - - -#### Useful commands - -* Force Flux Reconciliation -`flux reconcile source git flux-system` - -* Decode secrets -`kubectl get secrets -n flux-system https-credentials -o json | jq '.data | map_values(@base64d)'` - -* Access Control Centre -`kubectl port-forward -n confluent controlcenter-0 9021:9021` - -Log in with: c3/c3-secret - -* Test LDAP -`kubectl exec -it -n tools ldap -- bash` -ldapsearch -LLL -x -H ldap://ldap.tools.svc.cluster.local:389 -b 'dc=test,dc=com' -D "cn=mds,dc=test,dc=com" -w 'Developer!' \ No newline at end of file diff --git a/README.md b/README.md index b69ea80..325f14c 100644 --- a/README.md +++ b/README.md @@ -1,169 +1,95 @@ # GitOps for Apache Kafka Example -For this example we assume a single clusters simulated a production environment. The end goal is to leverage Flux and Kustomize to manage [Confluent Operator for Kubernetes](https://github.com/confluentinc/operator-earlyaccess). You can extend the with another cluster while minimizing duplicated declarations. +For this example we assume a single cluster simulating a production confluent environment. The end goal is to leverage Flux and Kustomize to manage [Confluent Operator for Kubernetes](https://github.com/confluentinc/operator-earlyaccess). You can extend with another cluster while minimizing duplicated declarations. -We will configure [Flux](https://fluxcd.io/) to install, deploy and config the [Confluent Platform](https://www.confluent.io/product/confluent-platform) using their private `HelmRepository` and `HelmRelease` custom resources. -Flux will monitor the Helm repository, and it will automatically upgrade the Helm releases to their latest chart version based on semver ranges. +We will configure [Flux](https://fluxcd.io/) to install, deploy and config the [Confluent Platform](https://www.confluent.io/product/confluent-platform) using their `HelmRepository` and `HelmRelease` custom resources. +Flux will monitor the Helm repository, and can be configured to automatically upgrade the Helm releases to their latest chart version based on semver ranges. You may find this project helpful by simply referencing the documentation, code, and strategies for managing Kafka resources on Kubernetes. Additionally, if you just wish to operate a working example of the new Confluent operator, the following usage instructions will guide you. -## Prerequisites -You will need a Kubernetes cluster version 1.16 or newer and kubectl version 1.18. -In order to follow the guide you'll need a GitHub account and a -[personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) -that can create repositories (check all permissions under `repo`). +## Repository structure -Install the Flux CLI on MacOS and Linux using Homebrew: +The Git repository contains the following top directories: -```sh -brew install fluxcd/tap/flux -``` +- **flux-system** dir contains the required kubernetes resources for flux to operate +- **kustomize/base** dir contains the base definition of the confluent stack. +- **kustomize/environments** dir containing an example environment, folders could be copied to create additional environments. Files within are 'patches' which are layered on top of the definitions found in kustomize/base +- **kustomize/operator** dir the helm chart definition for confluent-for-kubernetes (CFK). -Install the Confluent CLI -```she -curl -sL --http1.1 https://cnfl.io/cli | sh -s -- latest + +``` +├── flux-system +├── kustomize +│ ├── base +│ │ ├── confluent +│ ├── environments +│ │ └── sandbox +│ └── operator ``` -Get early access by registering interest here: [Confluent Operator Early Access Registration](https://events.confluent.io/confluentoperatorearlyaccess) For this Early Access program, you will have received an API key (associated with your email address) to the Confluent JFrog Artifactory. This is required to pull down the Helm charts and Confluent Docker images. +## Forking this repository. +In order to showcase the GitOps behaviour of the FluxCD toolkit you will require the ability to write to a repository. Fork this repository, and update line 11 of the file `./flux-system/gotk-sync.yaml` to the new https git address of your forked repository. Also make note of line 10 'branch'; this is the branch of the repository which Flux will monitor -## Repository structure +## Deploy base Flux components +### Overview +This step will install the base Flux kubernetes components onto your kubernetes cluster. To inspect what is being applied, simply look through the contents of `./flux-system/gotk-components.yaml`. You will see a mix of Custom Resource Definitions, Service Accounts, Deployments, and other various components. After the application of these resource definitions is completed, you should see the following pods running: -The Git repository contains the following top directories: +* Helm-Controller +* Kustomize Controller +* Notification Controller +* Source Controller -- **apps** dir contains Helm releases with a custom configuration per cluster -- **infrastructure** dir contains common infra tools such as Confluent Operator, example LDAP controller and Helm repository definitions -- **clusters** dir contains the Flux configuration per cluster +For more information on what these controllers do, please review [the documentation here](https://fluxcd.io/docs/components/). -``` -├── apps -│ ├── base -│ │ ├── kafka -│ │ └── rolebindings -│ ├── production -├── infrastructure -│ ├── confluent -│ ├── sources -│ └── tools -└── clusters - └── production -``` -### /apps -The apps configuration contains all the Confluent Platform configuration and is structured into: - -- **apps/base/kakfa/** dir common values for all clusters: namespaces, certificates, secrets, Confluent components via Helm release definitions and Deployments -- **apps/base/rolebings/** dir contains the common RBAC bindings for all deployments -- **apps/production/** dir contains the production values - -### /infrastructure -The infrastructure `sources` folder contains the [Flux Source Controller](https://fluxcd.io/docs/components/source/) configuration and some common tooling which is required for this Confluent LDAP / RBAC example. -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: confluent-private - namespace: flux-system -spec: - url: https://confluent.jfrog.io/confluent/helm-early-access-operator-2 - secretRef: - name: https-credentials - interval: 5m -``` -Note secretRef: The Confluent helm repository is private and requires a username and password which we must create. -Note that with interval: 5m we configure Flux to pull the Helm repository index every five minutes. If the index contains a new chart version that matches a HelmRelease semver range, Flux will upgrade the release. - -The `confluent` folder contains the Helm release which is performed by the [Helm Controller](https://fluxcd.io/docs/components/helm/helmreleases/) and also requires access to the private Docker registry to pull down the Confluent images. -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: confluent - namespace: confluent -spec: - interval: 1m - chart: - spec: - chart: confluent-for-kubernetes - sourceRef: - kind: HelmRepository - name: confluent-private - namespace: flux-system - values: - image: - registry: confluent-docker-internal-early-access-operator-2.jfrog.io -``` -Note: The Helm automatically looks for a secret called `confluent-registry` which we must create in the confluent namespace. -## Setup -Following this example, you'll set up secure Confluent Platform clusters with SASL PLAIN authentication, role-based access control (RBAC) authorization, and inter-component TLS. The clusters dir contains the Kustomization definitions:: -``` -./clusters/ -└── production - ├── apps.yaml - └── infrastructure.yaml -``` -1. Using GitOps will require the FluxCD toolkit to have read and write access to the repository. For your own local version, you must create a fork of this repository and clone it locally; otherwise, the GitOps automation will not be authorized to read and write from the repository. Fork this repository on your personal GitHub account and export your GitHub access token, username and repo name: -```sh -export GITHUB_TOKEN= -export GITHUB_USER= -export GITHUB_REPO= -``` - -2. After forking and cloning the repository, navigate to the project root and verify that your production cluster folder satisfies the prerequisites with: -```sh -flux check --pre -``` +### Deployment Process +* Navigate to `./flux-system` +* Run `kubectl apply -f gotk-components.yaml` -3. Flux will now need connectivity do your cluster, ensure the correct kubectl context to your cluster and bootstrap Flux: -```sh -flux bootstrap github \ - --owner=${GITHUB_USER} \ - --repository=${GITHUB_REPO} \ - --branch=main \ - --personal \ - --path=clusters/production -``` -4. Deploy the secrets required by the application. The secrets referenced in `./resources/populate_secrets.sh` will match up to the LDAP/LDIFs located at `./infrastructure/tools/ldap.yaml` -```sh -./resources/populate_secrets.sh -``` -5. The source controller will be unable to pull the Helm chart or connect to the Docker registry. You now should create the following secrets using Confluent early access credentials: -```sh -export USER= -export APIKEY= -export EMAIL= - -kubectl create secret docker-registry confluent-registry -n confluent \ - --docker-server=confluent-docker-internal-early-access-operator-2.jfrog.io \ - --docker-username=$USER \ - --docker-password=$APIKEY \ - --docker-email=$EMAIL && \ -kubectl create secret -n flux-system generic https-credentials \ ---from-literal=username=$USER \ ---from-literal=password=$APIKEY +## Deploy Flux Sync +### Overview +This next step will tell Flux what repository to monitor, and, within that repository, what kustomization files to start with. The first Kustomize resource that Flux will look for to is located at `./kustomize/operator`. This will install the confluent-for-kubernetes Helm chart. After a successful health check of the operator (which will run as a pod), Flux will then proceed to deploy our first environment located at `./kustomize/environments/sandbox`. -``` -Watch for the Helm releases being installed in production cluster: +### Deployment Process +* Navigate to `./flux-system` +* run `kubectl apply -f gotk-sync.yaml` +## Watch Flux in action! +Now that we have flux monitoring the forked Git repository, let's demonstrate the GitOps behaviour! If everything has deployed successfully, you should see a healthy confluent stack looking like this: ```console -$ watch flux get helmreleases --all-namespaces +│ NAME PF READY RESTARTS STATUS IP NODE AGE │ +│ confluent-operator-global-7ffc5b469d-knmfj ● 1/1 0 Running 172.17.0.7 minikube 21m │ +│ connect-0 ● 1/1 0 Running 172.17.0.17 minikube 9m31s │ +│ controlcenter-0 ● 1/1 1 Running 172.17.0.11 minikube 21m │ +│ kafka-0 ● 1/1 3 Running 172.17.0.8 minikube 21m │ +│ kafka-1 ● 1/1 3 Running 172.17.0.10 minikube 21m │ +│ kafka-2 ● 1/1 3 Running 172.17.0.9 minikube 21m │ +│ ksqldb-0 ● 1/1 1 Running 172.17.0.12 minikube 21m │ +│ schemaregistry-0 ● 1/1 1 Running 172.17.0.14 minikube 21m │ +│ zookeeper-0 ● 1/1 0 Running 172.17.0.15 minikube 21m │ +│ zookeeper-1 ● 1/1 0 Running 172.17.0.16 minikube 21m │ +│ zookeeper-2 ● 1/1 0 Running 172.17.0.13 minikube 21m │ +│ ``` +To exhibit Flux, let's change our kafka replicas from the default of 3, to 4: +* In the file `./kustomize/environments/sandbox/kafka.yaml` uncomment the line `# replicas: 4`, commit that change to your repository (git), and push upstream. The next time flux performs a 'sync' (observable in the 'source controller' logs), it will the change to the kafka spec, and in turn increase our kafka cluster from size '3' to '4'. + +## Develop Locally +If you want to test configuration out locally without the need to push up to git (i.e. testing locally with Minikube), the deployment can be replicated very simply: +* Navigate to `./flux-system` +* Run `kubectl apply -f gotk-components.yaml` -## Appendix -### Useful commands +**instead of deploying the gotk-sync.yaml, we'll perform the kubectl kustomize applies ourselves.** -* Force Flux Reconciliation - `flux reconcile source git flux-system` +* Navigate to `./kustomize/operator` +* Run `kubectl apply -k .` -* Decode secrets - `kubectl get secrets -n flux-system https-credentials -o json | jq '.data | map_values(@base64d)'` +**monitor the running pods, wait until the 'confluent-operator' pod is in a running state** -* Access Control Centre - `kubectl port-forward -n confluent controlcenter-0 9021:9021`. The web UI credentials will be c3/c3-secret (as defined by the populated secrets) +* Navigate to `./kustomize/environments/` +* Run `kubectl apply -k .` -* LDAP Testing. Exec onto the ldap container by running: `kubectl exec -it -n tools ldap -- bash`. Running - `ldapsearch -LLL -x -H ldap://ldap.tools.svc.cluster.local:389 -b 'dc=test,dc=com' -D "cn=mds,dc=test,dc=com" -w 'Developer!'` will return a list of LDAP users presently configured -* For testing a repeatable deployment process, for example on a local minikube, a `tldr.sh` script which captures the above steps has been included at the root of this project \ No newline at end of file diff --git a/apps/base/kafka/certificates.yaml b/apps/base/kafka/certificates.yaml deleted file mode 100644 index e6d006b..0000000 --- a/apps/base/kafka/certificates.yaml +++ /dev/null @@ -1,116 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: ca-pair-sslcerts - namespace: confluent -type: kubernetes.io/tls -data: - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzCnVFM0dWemp2dEFKbno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTQKakNYaEJpcU5RcXkrMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWQpKNGtNcEJGalhjNmVFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkCjJCTVhSY2pBR3dUek9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzIKYjhLV3hQTHVjUDFaY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2bwpuTTVIVW1YR212cjBPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1CkhOU2RsemhLVC9xZG5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGEKNnpCbHZhUHo3WHRST2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVgpFWi92Q2lCNHEzTEh2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxCnlvUmNpaFAyNVlUV1BjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUEKQVFLQ0FnQXZ3TktEeEw3Nnl0Rm42RGVpaUVWSVhzQWR2cHNwQm9TY3FBYTFMOG5DeVV2eTl3RDNFcE01cTJuRQorTFIzck42TkZTL084dUQzbTVEUk1Ma00vd3grclgzZVFrc2U0L2Q1OU52U0hLUVJQQmxYaEhpOGc5YWl6L0FyCmNxU2JUSGFvNTZVSExiUFlGUExMdHYvTjNUeVNFOFQvS2FZNjk5SUJrVnhzcmtwR0VUYmd0WmcvUzA5N0JxTUQKMFpZaVNUUEt5REtmaThMTngwUzdaczZYSXJLbjhES2ZsYnZUNStzaHkzYUQxd1hHRGYyQjlGV1c3MUtNMmNVYgpZMG1Yb2VNb1U5aFBXMEhWNjAydUdKRVBKMVh3T0pYTDMybGRsY1JjZVd5c0IwanNRQXphZmJQS1lOSlE2ZGJCCjlsT08wdVZ0a3FGRTgyNUp0a001Ry9iOHVkZldmdlFmcEswWU51aTBuRlVNRmowNHd4WUl1RWNvWDU0RFlzMFMKTnhxRWRqUE1VMUl4bzNXb2dvVU9CRUdLMmFVakIwSVA1SGk1QlN0Tld2bVcrTUMwN3cxUDQxWUJvaVpuT1ZleQp0ZDFoc0p1RW5LVVlCU2pDME9IRnNPMlcveEdhZEU3TVlLUzAzcWh6eVVxVmlKTmNvZkxDckNLNDkyZHJOckU1CjYvTjVvcUtpRzIySE9qejBLblV6T1I3S3QyVjVtYlVQTkQrWGxjRlBKNmo5ZU1CU0t0YlgvQnZXR0ZMSGJtL3UKOXZVQjFvSFErR0IzSlVJNTRSRGY5WXMyTlIrM0VVWmdvakcybzZXbE1PTDNMMm93OGQrYllZZEt3SHUxcVlMSQpLSWJvTnJYRTVYcmYvSUdwNmQ2WXExbURXd09PS1AxTzUvVFFqSHdQWXNNMlpObFlxUUtDQVFFQThzQmtndnB0Clo3MDlxMkZDQWRIZnBsK0RQMllPL0g5emFqc1Z5M2ZWTmtlTUQ4V2ZvQUppZnFPbEQ3d0s4SVNzTFVkRThHVnIKdzVmQjdBUTVONUZFekc1WVZFU1pTY0oydnF5RnVUVHEwcm93VFF4NDZaTWEyS25kZnRIdVJKZitjczV1eFV0YQpMZ3grNHBsK3Q1NEI3NUd2TkdOaE4wNHlPbHZUU2EzRDZYNDFGTDJ4TFRxcjA3YjVZTTZlTXNoQ1BKMWF4Ti9yCmpQb1RQUDJxYkRObE53RWlBcm9Vb3lacitrVzh6Nkx0eWxkSTBWNjhsYW53NkhabXptazNUSExVTXJzV2EvWmQKdUIybGY3UklKdHg5QVVkZm8rWHRmUk54WGgxZWtlQXkvbWh3dUN0M0JSWU13ek5weVRld3BMa0dzTUNJREZ3SwprODhjTEN4ZUtUTFpYd0tDQVFFQXhQcnlGbEhlZHBPR1JteHRaZGRRaGg3YlB5M0R1aThjZjYrdmVhT2JkN3QyCnZuQUpUaWtYT0VLOUoxU2k2S1QzbDdicm01b0dzangxZHNmV1dPQ2VCbG81NEFXQU1hUWxzR2g3RWk0Y2dNeTUKMkJFb010Q0ZrRy9PMThrSndnNnoyTEhPbSswYlh3b0Y2eTdKbTUrbCtOeCtERWxCMnFaNGEwQzZQU3NKZExvNwpsN1NtNEorc2I0TVBmaktJd1Q0eWtqS09ObE9HT0ZhckpPQnZGWENpaStaeEIwK3ZzRHpaV2lSZGVSVEM2WlRPCjJWOXkxemdpd0d2dWQ3UDFraGZJZG9XU3grYjlhVTJzZUdtTzkydkw0UDNXUHRFdGhaTXF3R0t0Tzh1U0M3Mm0KckNaZDF1MmpISWVWNXRUR0I3bUg3WlFEYU5xMnhLb2lOeFIxaGVsSFpRS0NBUUFvRVF0Rjl4R1J1dEZ2OVFpUgpCbFAwd1BVSHhNK2FhMnJnVU1wRElBOUgrejBwNlVOMGhKQS9PTUZvdkcvTnpRZ2lIUTVLNDJLTEVRUkg4VmFFClRtemRsU1R0RzdsMVRDeVBRaWg4TGpqSCtVVTVvbUplb3hJZVNzTXRTSGNjU1Q0Tk12ZGpoeEZtWWxlYkRSeTIKTDlVLzluckZtZFdVN0Vvc0NiWHhCa1k4eHNENklHa2Evd0VYVzY4RGhIYm1DTm10NllidTBjcXVKU1NCdjVpZQpiVWs2Yit4dUtNcDVOMEZCT0x0MlJmMGJsWmFHUUMyK1FpTnFLd2pDN3VqYXJHVkx6a2RnSUhUTmk4OGlLZDV5CjA1ZXFXMTUwemVHSjhHaVkwUjRuMDZwM0JVUDlrZWIrSnVxS1dYVVBhaXEwdFhsZU9SajdlVUdocmVDSGhmY3cKczV6ZkFvSUJBUUM1REVKbXcyeHBHcmYyNnA5dkgvSXV2VWdjdHlKN2d3eVR5M2plbmR0TWhOak5tTFMxTDViMwpySUxFTXhlRDFJNGdnYUFmSW5pTjhvd3JGUnNCamFvR3I3WlZCUFhrTEorWGROL0JPWDVmWlhSbFRlRGtzODMxCjNZT0VaZ0Y3dzVJaXpROGFub21ySStCaGl5ZXN3ak1LY2lFYjY2b28vV0I4NldiTVZlVGhPcDhIS3BmbXh6b1gKM0JpdTVreGd0Y3lPV1Y0T0hUTW5OQXc5YlhZTnZ5MkVuZXlyQUtvOHR6MDlHSktUVC9TM3VLc0Z2RXhIY1IzOApoS2lXM1lHaVNDTnpiSkp5cDBhREtZd1A1cUovUDA1ZHhEa0Q5RUIranIySDFHdUhrL3RVZWtyY3lJSTVpaTlFCmV2OVF4YXh2ejFTcDFQWExDRVRReGorMFhNejNDeXFkQW9JQkFDcmlMYzdocmczNHZ2Q1F6dzN0cnk3b0JYL0sKSVhzZzBPY1BtSU9BZjhiaytUd2lBOWxFMWhwOU1IYkU5bER0cmF2WmIxTE5ZOHBPbE1GcVRMNkVHV0o1a0tQSgpxdW56Y200bHBUSUNCVUtMelQxdVhYa21WUTRreWM3SDZ4QXpkRUd6bkZlYlQydnE1aXRqZzIwWEVoeTFTMzZlCnNOVjkxaHYzZWRMT096NnRYc1lEdVY0RkJWWnloTmkzTGY3UE0xMEg4dE9XRzI4UlRnSTFGSTBvVnhacE5Hd1AKSFF1dkhlMWZway9uWm9Xd3RSejBuODVJSlN0T29mejc4dzZXTmdhY084bDBzZFhlT2lWZmNrMC9ZaG9rTUNNNgo5WFY5eUJ3enJoQ1Z1a0g0WXgvS2hyL0pIMWZlTlhHMng2UFgxbXRONzQvTDArcUtvZ29ha1Q0bHpFbz0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K ---- -apiVersion: v1 -kind: Secret -metadata: - name: connect-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRFlUQ0NBa2tDQVFBd1JqRUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhFREFPQmdOVkJBTVRCMk52Ym01bFkzUXdnZ0VpTUEwR0NTcUdTSWIzCkRRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREVXbTNJOWREdnBGK3d1MnZEOFdaaGFOSnhjMm1vWEw2WHZhYkgKQitaUWhYR3JGSjI1UFFZNis1WE1EaW1oZUhXcytWYjB0KzYycEhydktmVnNabURsZEFkMVdnVlJIZmsyOVF1SgpRTWsyazhrVUpBL2ExQ1ZEaCtkYUQ3K0hvZGo4NmZKSDFXNlRrbUlQeU83QWFuRENGbG04cWlqVmp5YUpVNHMrCnJIN1I1MitrekVDVXJrSk1uRVNpRkxzRDFTZDMvK1dLQUpYelc2UFI0ekM1YmpiRFVvM3lRSVh6TkZrVjhhRjQKYVloVTVxY0RXSTBkK1Z5TkR6REdRWUF2REdjQzVkaGpkVDI3dWFMeFRiWmc4V1NqSTJzZGE1NHo4T3lvRzliMApxTjRBQjNBeTFWV1hISEtlSDYvRWJLMzFOVFJuOTh1WFVWbWlYNzBlaitFbWhsTEJBZ01CQUFHZ2dkVXdnZElHCkNTcUdTSWIzRFFFSkRqR0J4RENCd1RDQnZnWURWUjBSQklHMk1JR3pnZ2RqYjI1dVpXTjBnaEZqYjI1dVpXTjAKTG1OdmJtWnNkV1Z1ZElJVlkyOXVibVZqZEM1amIyNW1iSFZsYm5RdWMzWmpnaU5qYjI1dVpXTjBMbU52Ym1acwpkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYklJVEtpNWpiMjV1WldOMExtTnZibVpzZFdWdWRJSWxLaTVqCmIyNXVaV04wTG1OdmJtWnNkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYklJZEtpNWpiMjVtYkhWbGJuUXUKYzNaakxtTnNkWE4wWlhJdWJHOWpZV3d3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQU1CNm9uSHMwOEV0QWE0aQpCZndYNTcyNXdSdUZKWFlBS2ZtZkg1eGFlVWNobnRhNW1tV2Y4Z1NyZVd3SDJPS3BneS9tZWYzYXdyWWhZWlBlClRMM2ZTZUdGZDdlYkR4Ty9oYW9ibk81THdtc0ZyekJPeDNhNTkrdXRCUGgvSHZMNWIwWll4c1ovdzQyYUw1T1IKWWpSTmVZMmlHaFVJRHFNbm1kZFpiRkNwMXVmNUp6N3RtdGxnN2J0Szd5T1pGVFZzZHZkVFZkbGdOekx2SWNRSAo5dTRNajhkV1lQb01waER6cmRiUmtqMVlsZU1EeHQzZ0RtRlhxTXNDQlJyMXBMTXJNb0lWdmhNc1RlWmpzN1AvCmhuL0o2dDVwNDIrRVpGVmE4S2VzeGNOVzBHZmEvRmdnM0RpK0hBcWY2dU01bXZQZGRNSTFSMVNEZjEzU3JJbloKbkdod1hyMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg== - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZHakNDQXdLZ0F3SUJBZ0lSQU81b3FiTDNqbmE0Tm90MDR0VmJTSU13RFFZSktvWklodmNOQVFFTEJRQXcKUmpFTE1Ba0dBMVVFQmhNQ1EwZ3hEakFNQmdOVkJBb01CVVIxWm5KNU1SVXdFd1lEVlFRTERBeEpibk5wWjJoMApjeUJRVDBNeEVEQU9CZ05WQkFNTUIxSnZiM1FnUTBFd0hoY05NakV3TkRJM01UQXhORFF5V2hjTk1qSXdOREl5Ck1UQXhORFF5V2pCR01Rc3dDUVlEVlFRR0V3SkRTREVPTUF3R0ExVUVDaE1GUkhWbWNua3hGVEFUQmdOVkJBc1QKREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRUF4TUhZMjl1Ym1WamREQ0NBU0l3RFFZSktvWklodmNOQVFFQgpCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNUmFiY2oxME8ra1g3QzdhOFB4Wm1GbzBuRnphYWhjdnBlOXBzY0g1bENGCmNhc1VuYms5QmpyN2xjd09LYUY0ZGF6NVZ2UzM3cmFrZXU4cDlXeG1ZT1YwQjNWYUJWRWQrVGIxQzRsQXlUYVQKeVJRa0Q5clVKVU9INTFvUHY0ZWgyUHpwOGtmVmJwT1NZZy9JN3NCcWNNSVdXYnlxS05XUEpvbFRpejZzZnRIbgpiNlRNUUpTdVFreWNSS0lVdXdQVkozZi81WW9BbGZOYm85SGpNTGx1TnNOU2pmSkFoZk0wV1JYeG9YaHBpRlRtCnB3TllqUjM1WEkwUE1NWkJnQzhNWndMbDJHTjFQYnU1b3ZGTnRtRHhaS01qYXgxcm5qUHc3S2diMXZTbzNnQUgKY0RMVlZaY2NjcDRmcjhSc3JmVTFOR2YzeTVkUldhSmZ2UjZQNFNhR1VzRUNBd0VBQWFPQ0FRRXdnZjR3RGdZRApWUjBQQVFIL0JBUURBZ0trTUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU1CZ05WCkhSTUJBZjhFQWpBQU1JRytCZ05WSFJFRWdiWXdnYk9DQjJOdmJtNWxZM1NDRVdOdmJtNWxZM1F1WTI5dVpteDEKWlc1MGdoVmpiMjV1WldOMExtTnZibVpzZFdWdWRDNXpkbU9DSTJOdmJtNWxZM1F1WTI5dVpteDFaVzUwTG5OMgpZeTVqYkhWemRHVnlMbXh2WTJGc2doTXFMbU52Ym01bFkzUXVZMjl1Wm14MVpXNTBnaVVxTG1OdmJtNWxZM1F1ClkyOXVabXgxWlc1MExuTjJZeTVqYkhWemRHVnlMbXh2WTJGc2doMHFMbU52Ym1ac2RXVnVkQzV6ZG1NdVkyeDEKYzNSbGNpNXNiMk5oYkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWcycEZ2aUlBVFM4bnJwYStyNmZkNmFOTwovNDhvMk9ZZWZtYS9nZ2FhNXVCYStqUGk4dUdZZkd0L0VlRmlUeldsbmtIanhKYVgxYktLK1pMbmJlOUpXdE1PCkNNSWoxbHJDQnVWcUR5SDVtL0dhUjJTOFBneld2YUN6SUZvV0dnUkZZWWx2aVllOFdpOFMwYjEzMDR2VEt3WUsKbkRydUk3QmdsL3ZGMCtDN0RtZzB0QldSZTNPTlRBQ3hKL3dIejFIUDZLS3lLVUY0YVQ1Yk13UEQzV3FGZHZzSgpNVW5ybnZqVFNtSVU4anhTUHJWUnJ5MVBsL2pWT2lNWmpRZC8wTUZJajBXeEcxQll5WmNCM1Y2am1Nd2s3YWJ5CjZMY0tvUS9ScjhwQ0Q5RUgrL3VJTzNGb1BtNzFoaEdrTi95WFpSVDR1WTBwN3R0K1NFVWZUeTVhVEZLYXV3eWcKYjd3MnFrbFpuSERuV2xUbGk2Rm5ZWmsrWnpOQ2hnbXd2SUtWU04zdjVIZ2lrd211TVBTMTloaUxoQzBDTVJNMgp6ZUhpc2pBMDVlRVV6VXBDd21BblRCV3Rod2FzdTlnS0lYcERraEJRWlQzc3FQYU5CUktUNlFVUnVUbldPeUR3CmRtNDlFUVlId2duaGZ4c2s0YW0xMXpsN2FMMDBlS0hxVGxUVlZQdHpVU250cTFiR01CanVZYzJsOHJMUEUzdFMKVmZiYmU0VFh5TlNtMlFaMVN0eS9oQTNpZ1dhWnFUcjR0YkVVM1FkQVFDQXA3ZGI4dmtaU1RpMzdzcHFjd0J4eAp5dnR1dzhDem9QNkJvbEVCQ1Y1N3AzNUs1YlpSWUloQVNhTTJ5dlNraTQxZmtBeWZDdWxHY2FKU2hhM1hXTHdSCmE0T2pSd3ArSXp6V1g0anpvZEk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRREVXbTNJOWREdnBGK3cKdTJ2RDhXWmhhTkp4YzJtb1hMNlh2YWJIQitaUWhYR3JGSjI1UFFZNis1WE1EaW1oZUhXcytWYjB0KzYycEhydgpLZlZzWm1EbGRBZDFXZ1ZSSGZrMjlRdUpRTWsyazhrVUpBL2ExQ1ZEaCtkYUQ3K0hvZGo4NmZKSDFXNlRrbUlQCnlPN0FhbkRDRmxtOHFpalZqeWFKVTRzK3JIN1I1MitrekVDVXJrSk1uRVNpRkxzRDFTZDMvK1dLQUpYelc2UFIKNHpDNWJqYkRVbzN5UUlYek5Ga1Y4YUY0YVloVTVxY0RXSTBkK1Z5TkR6REdRWUF2REdjQzVkaGpkVDI3dWFMeApUYlpnOFdTakkyc2RhNTR6OE95b0c5YjBxTjRBQjNBeTFWV1hISEtlSDYvRWJLMzFOVFJuOTh1WFVWbWlYNzBlCmorRW1obExCQWdNQkFBRUNnZ0VBUUQwWmg5S3NQWXE0WjdpWmhDeDVBMHRvOWdiOVBVRENkaUJzN05hdnlnNHUKWnZ0Q3NyUzlVaFMzS0dCRnpIYjlnTTYrWFNmRDZHc2RjUnQ0R0xQUjVaKzFSUFpqb09zK2VuVm5CY3QxU083RwpyVmt5K3JQSFVUV29RZlcvQXArM3Z0N0hEaXRNbHVrZ1Bldk4rSk9hT2xWWG5IckxDenRmTHpSdTdOMUFUR2xwCmtIU0ZaWFJLN1daNTNrb3NrVEhVUERBbzBiclNuVjFReXYxcFFKcHRYSGVoeEphMWxyVXdEN2ZKS1BkOEptSDcKTFRza2RJbWFPZ1V1dk1YellvWlpETGhPZ3k3WUJSTDdrZk9aWlI4K09OaVhNOFNWTFFZdFpaNEY2NzBxR3I1UApLemxpVGZrT0RQMkFoRG5FK1NLdnFNUTRyL1hhUDh6SzdmZ2hEODhVVlFLQmdRRGZmM0NNSXgvL0ZyR05ka3JZCldsQ3VsQXptNE1GTjhJQ2NVRDJJUkhTcDJ1c20xU2t4TkJvYmlqQ2ZSdEtITTByVjltR0JWS2VnYXEyNzJ0a2QKNStoR1JkZ2pIaGRiL1lTQS9vbTAwUVlUSkcrak5ubmVlNUY4YXRFRlJFNTkzdm1PN09ZTnFmYlkxblk3V1lUegpPTDNIb2tWUFc1blNuTEhYTmVoaFZBYzd1d0tCZ1FEZzZHMi9ZWFBsSVEybDRwWG14dWlMeDJXRlM0TTIzUXNTCnJhcWZRRS83amY4TDhHczZ2NnFWTER6aWhVR0FwampJSGYvTk5zdEl4dXJacDlzK0NQeHIzOTJXa1dzckZ2M08KMzFOaTVmWVloNFFhMnV4dnQza2RwSXJKS3EvRk9WaStRbTREMTNqU0J3c2RwSThNOUZNZVc4c0tOKy8vK2RXbQpFZUdyV3ZROXN3S0JnQ0VDQWs1QUZjYW54RnMvSURpcHhnYXlpT0ZFU21oSFg4YzJOcEE4Zy9wZUFhSy9rcERZCndBNVhMMjBtbVlzc01SNCtnQklJdmFUOGZHSWxKVEc4Z1ZwM2tEOUhmMjJ2bUhVd29vZlk0d3ZLc3M0cENvQ28KUVVsZHdUY0U2bzYrY3A4QUw4M096MDBoQjE4bWpuTVphelhqcWxiWkVYUEFmcWRwSjhQUUZDMW5Bb0dCQUtlOAo4YzBnYzMxYUQ0Rys0aW5DQThIc0xzMGhLbldLbWkyT0ZJaTlRR25PMTM4aUNmZEE1NHBsK2VxL2s4RE5OK0FZCmI2V3Z6aUV6S2dpMjVnNzRTTHB6dGlJTHhxL1diK2tRS25MQ0s2N1RzelVNUGZaOEVmcUhzM0toUVlLSWFLVk4KaWh1WFltYlNGZm8vdHVqa2QvRldhTEh3VWpESk5neXJuWEZkWG5kOUFvR0FVMlMrYTQ1U3JGK2x1azZ1bE16ZQpDQXpYQTlpYTF4cm00ZERrRjFMRUZXdWN1WndvZEhhYWVLMDdDVzNzVHFRRG9aRjA0ZkY4c2dBc0M1SitJYU1mCngxV1ZsQnRiOHpyYlFXeG03dEV1NCtWbHFkZmhCNXZmV3JFT3crWktIOEYrOUpzZHVmNVlPU3pBbktzS3pZNjEKTXBReGtpOEdzSWdIc3F6VGpNT1k0bkE9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5EtLmkQAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGov70Iu1X2a5v2mcMWU/txGnyBbwK ---- -apiVersion: v1 -kind: Secret -metadata: - name: controlcenter-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRGl6Q0NBbk1DQVFBd1RERUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhGakFVQmdOVkJBTVREV052Ym5SeWIyeGpaVzUwWlhJd2dnRWlNQTBHCkNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDdVFDUmV0Z2pyY0RYa3RuSU0vM3RWejVzM2xhTG4KTHAvWXlSMGZCVkZqd2FvMnFsRFNId29uUUJPQWl0VVUycmpjZEV5SEtUZ1Nrby9zaDdnR0ppTzZSOHdDVTJwVgp6T0NOamU1UFB2N0t3cmZsMXh2QmY1TUtzc3N4dFFPSStybjVQUFVxZU9YRDh1QXFSRXpLUTgzVWlOVFkxU3FPCnFWRnV1bjJQamIxQm1DWnpobXRMVTFseUFVRndvWXo4L2xnWVBGZzBlR2hnUzdwaERPb3Bkb3JWOG1zMDJDNzgKVWc2bUVEa0p1VVY1SXdzQyt5citNejVrdldMNmV1WnI1YVZQVVZGN0NiMHdDdDN3TkpOZWlaT1o5NHdYOFJDaQovam1IekIwU0hXUGp2UnhFbXBCUFhqMFgyRXhXdzhXOENrR2o1MzdQV25meUVGSUwvM1FIWDlGN0FnTUJBQUdnCmdma3dnZllHQ1NxR1NJYjNEUUVKRGpHQjZEQ0I1VENCNGdZRFZSMFJCSUhhTUlIWGdnMWpiMjUwY205c1kyVnUKZEdWeWdoZGpiMjUwY205c1kyVnVkR1Z5TG1OdmJtWnNkV1Z1ZElJYlkyOXVkSEp2YkdObGJuUmxjaTVqYjI1bQpiSFZsYm5RdWMzWmpnaWxqYjI1MGNtOXNZMlZ1ZEdWeUxtTnZibVpzZFdWdWRDNXpkbU11WTJ4MWMzUmxjaTVzCmIyTmhiSUlaS2k1amIyNTBjbTlzWTJWdWRHVnlMbU52Ym1ac2RXVnVkSUlyS2k1amIyNTBjbTlzWTJWdWRHVnkKTG1OdmJtWnNkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYklJZEtpNWpiMjVtYkhWbGJuUXVjM1pqTG1OcwpkWE4wWlhJdWJHOWpZV3d3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJYcUNUQ3owS2tYUzdya1dOK2dxZ1RqCmY3emp1Ujd3dTV1Zjczcko4ZnJ2c0h1OTRUajBQMVR6WkhYbWU2c0lOVXVNOEdhZFpSV1EvejlSSEJ0K3hoN1MKZkdqTmIyT01zOXRneUcrTFhjQno4eXdTaVdiK3c5bld5OW9xa3pSZzRrc2dpUGV3TnNTRGZvb1ZlazNHaVBnZgppT25rRGR0L2piVmdySzhjMkVWWE85UHdMVXdPNXNUcVpFaTNKdm9TTlpub1FuWlBxRS9qY0l2eGJWQjhmbFRzCkQwQjFUUU4vOXRjYjlpOVpTZXBQT0FBNmlZZjV3NE12YWpZRUJsODhjNnZldDdXVFIzRFhFWndzVWlMMnR2WXgKODJjTW4rWXU4RldWSWhsb0hONkxOZFFyRWNUc0ZTNDF5N3JuelBST2oxQlJZWkw5N1FxemFsVENUQ0lIM0pBPQotLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0K - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZSRENDQXl5Z0F3SUJBZ0lRZTZwNzgwTldYV1FSYURHcXBkYkcyekFOQmdrcWhraUc5dzBCQVFzRkFEQkcKTVFzd0NRWURWUVFHRXdKRFNERU9NQXdHQTFVRUNnd0ZSSFZtY25reEZUQVRCZ05WQkFzTURFbHVjMmxuYUhSegpJRkJQUXpFUU1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRBZUZ3MHlNVEEwTWpjeE1ERTBOREJhRncweU1qQTBNakl4Ck1ERTBOREJhTUV3eEN6QUpCZ05WQkFZVEFrTklNUTR3REFZRFZRUUtFd1ZFZFdaeWVURVZNQk1HQTFVRUN4TU0KU1c1emFXZG9kSE1nVUU5RE1SWXdGQVlEVlFRREV3MWpiMjUwY205c1kyVnVkR1Z5TUlJQklqQU5CZ2txaGtpRwo5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcmtBa1hyWUk2M0ExNUxaeURQOTdWYytiTjVXaTV5NmYyTWtkCkh3VlJZOEdxTnFwUTBoOEtKMEFUZ0lyVkZOcTQzSFJNaHlrNEVwS1A3SWU0QmlZanVrZk1BbE5xVmN6Z2pZM3UKVHo3K3lzSzM1ZGNid1grVENyTExNYlVEaVBxNStUejFLbmpsdy9MZ0trUk15a1BOMUlqVTJOVXFqcWxSYnJwOQpqNDI5UVpnbWM0WnJTMU5aY2dGQmNLR00vUDVZR0R4WU5IaG9ZRXU2WVF6cUtYYUsxZkpyTk5ndS9GSU9waEE1CkNibEZlU01MQXZzcS9qTStaTDFpK25ybWErV2xUMUZSZXdtOU1BcmQ4RFNUWG9tVG1mZU1GL0VRb3Y0NWg4d2QKRWgxajQ3MGNSSnFRVDE0OUY5aE1Wc1BGdkFwQm8rZCt6MXAzOGhCU0MvOTBCMS9SZXdJREFRQUJvNElCSmpDQwpBU0l3RGdZRFZSMFBBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNECkFqQU1CZ05WSFJNQkFmOEVBakFBTUlIaUJnTlZIUkVFZ2Rvd2dkZUNEV052Ym5SeWIyeGpaVzUwWlhLQ0YyTnYKYm5SeWIyeGpaVzUwWlhJdVkyOXVabXgxWlc1MGdodGpiMjUwY205c1kyVnVkR1Z5TG1OdmJtWnNkV1Z1ZEM1egpkbU9DS1dOdmJuUnliMnhqWlc1MFpYSXVZMjl1Wm14MVpXNTBMbk4yWXk1amJIVnpkR1Z5TG14dlkyRnNnaGtxCkxtTnZiblJ5YjJ4alpXNTBaWEl1WTI5dVpteDFaVzUwZ2lzcUxtTnZiblJ5YjJ4alpXNTBaWEl1WTI5dVpteDEKWlc1MExuTjJZeTVqYkhWemRHVnlMbXh2WTJGc2doMHFMbU52Ym1ac2RXVnVkQzV6ZG1NdVkyeDFjM1JsY2k1cwpiMk5oYkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQXQ3NHkxMm8wSFNoVkxkKzhIcmNSM1JSZEE1VTRKdkQ3Ck1hb1lHRVovZHFHcFB6bWxNQXpwNVZzTGdmdnVIa1psUW96aThKZSt4emo4Tis2N040N0c1bGlQRmZIMWV6aDgKL0s5TSs0MnNPUjhZSGp3dWxkT3dJeUxQUU81ZkJycGFmeXRlN29qYWMyUjEwaldodi80RTNyODZrM2ErT2lqbgpKK1FwT0hSS0V1L0pGYW5MdVhpZ1duSjY4NUcwNm90Y1JYbUx4S05CUUxnLzdUSmNVd0ltVmljM2t4Qzh4NzdoCm1XUURLdVVJQWVZQmxvZmVNL2lIVlhhZFZhWU5QVXcxMGxCY2xqT2w0dmFpaUZTME80WEk4QTlYZFRhdG04RlEKT3ZOR0xPUFNsQnRtZzVtSU9DbTE2bjZvOExZNHJoOTZXY3VVNVMwMVlzRTREMmREZnF6K2tuRDJSTUtqTzRJawpzYy9ud1FTMmVISFY1QWhMWEVLekxSOE44YmJPUmZ0WEZ6NzJ4Y1lXeXR5UEV6OFdDMm5YNkw1eFQ2bXE4d3RBCkptSFhNNHc5RGJ0NnRTclNBV292b3psUWliQU1kbUZzdzNFUlpVeXBmUGtzbzVnODhWQXRiUUFwVDhtZXJDeVgKeStlVklLMk5VTWdMVDE4cWZaWHc3aDVueHF3RG5jZEt4dkRuczRNVUlNd1Y5T0hHSGEwR1B6enhKNms3RE83LwpnUXh0K2gvbGR3cU9FSXIzbXNuK0lRMkQxV3RlWXpZTE5UVXR0b0h6NDE4cTl5bko2OXcwY3pFVlZkYXVVRDM1CmtwQThXWmVxRWZxcWpwWHloU3g1b0J0M1MwV2ZLTGM3SHVvTURzVis5Mm9ETmIyVlR4cEM4WkF3NW90OStFQ0oKUlJYR09mczVtWGs9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRQ3VRQ1JldGdqcmNEWGsKdG5JTS8zdFZ6NXMzbGFMbkxwL1l5UjBmQlZGandhbzJxbERTSHdvblFCT0FpdFVVMnJqY2RFeUhLVGdTa28vcwpoN2dHSmlPNlI4d0NVMnBWek9DTmplNVBQdjdLd3JmbDF4dkJmNU1Lc3NzeHRRT0krcm41UFBVcWVPWEQ4dUFxClJFektRODNVaU5UWTFTcU9xVkZ1dW4yUGpiMUJtQ1p6aG10TFUxbHlBVUZ3b1l6OC9sZ1lQRmcwZUdoZ1M3cGgKRE9vcGRvclY4bXMwMkM3OFVnNm1FRGtKdVVWNUl3c0MreXIrTXo1a3ZXTDZldVpyNWFWUFVWRjdDYjB3Q3QzdwpOSk5laVpPWjk0d1g4UkNpL2ptSHpCMFNIV1BqdlJ4RW1wQlBYajBYMkV4V3c4VzhDa0dqNTM3UFduZnlFRklMCi8zUUhYOUY3QWdNQkFBRUNnZ0VBZldHd0NlcG9McWsyVGxVdGFjYm53MDQ0UE4zU014RXNlYnYwMVY1cE95T2UKUytsdmNGSmZadkRIVjZZT1B3eEhHbklnb3R6NCtQdzJ6WmEyeHMzb3hXQm1Ib0pSTUYzVWNtYmZSR3hxd0JFdQpiQmJGWlExY0M4V3RTaDRhNWhTcmZ2anEzRjNUenBSVDBuWUUzMEc4dUtLZ3JVbHRidXZNcWFWTk5kOWlmL0JBCk8ySWYrOFZORWw2TmZvQng1N3VHanFkVGVKak5lRGFuKzhZU0phRGdqZ1hOdGNtOCtEZHB4T042ZURFYldqZE4KWE5XS0FFSm0xaG9qNjZwVUNrYUlEcVFEY0ZLSTBJYXhUcVZPbXhkT1Bybk9Jb2VmVzU3U3NHUE91Vzl6NXBHVAo4MjZ6Tk9pQTZtN1E2S29ETHJxbENDUHNMSVZ5OEhTN0pEL3MybCtrR1FLQmdRRFJGb3NacVUrb3E4aE9ySTBrCmZPSFN4dHJCd1BSSkJscDZoN0M1bTVlZmZRbkM2Vk1TVTBMQnRIUzZ3UWJnczNMOFIvUlU3ejlWZ01HWmN3QjIKV0YzdlJYeU1PaU1nQ0hzVWxSbU5laWw5cG9jeGNQYmxpRFhsYnNveGVieVh2eCt1RTI3bVV6VXhuSkJEVGtkeQpJZ09BUUFhUUUxV3llNndTT1hxajRqTkpYd0tCZ1FEVldLQkFPVUxjQS9iOW0xRHVKMGVZZ2QyR0RwcytLaGFDCndWRHo1cmRobkl4VDlST21CeDdPRUN0anBFN2JIdm1hSWZ6TFJHMnZhMzBpMlNhOWR0VnhSYjg5Ym9OQWlvQisKc0NSMDZXaC9sUGdFZHYweXZHdWE1YldTSDdtUXR4Z2pLdkM2RW9HZXZCVytBRFo0b2M1K2Mwa1VlT0Q3cHVvMQpuemtQajdXQlpRS0JnQXh2cE5KZjZhY0VvS05kUy8vUmxiVHRzdkUzUXRCZEdtQ1RWWVdVcFk0TTU5bTUrd0RxCkJ0eHltVWJLV0ZoaEZBUEJXOXo1WmZEMStZM2c4elFXeVcrRDJJYVdwcVF2SFBMNmMweWc2WHJadnN6SUJVZGQKdEtieTBmL2pWNzVHMWVHS3NsdnNzd3RDWHFwQ0s2bTBNRFVlbWNWVUFSTGVuRHR4UThRZm5pRk5Bb0dBSUdxMAovczAwa1lXd3M5d3pzZHdhRHR3OHNxL3Blc3FlWFFQT3J5Q3hZSTJPN1ByaUgyb1pqaW42emNzYmlFUHVuVExvCjNHSHJZS291ZTJzUGJkNXVsQ1dLNTJTeFlNOHFzeFZFbE5jYVg3aGM3eUM5WEVZdyszcEgyb29qZ2crd0JUZnoKRi9MVDZ6Q2RCUiszSnlFKzVRdlRZTjcxSUllK01xT2M0Zlp1RjlrQ2dZQmVVckIwTWlCSHRYTWllTS9uZXVmYwpqYjl5OGRiSUhDTmtuVVRRalZFZDJvSmJvM0FzRklLY1pxc1crSENQN0xuem5aNGpDM2JWakZqQ0laOG1jTUx1Cm9PNnVDV3piUmdYK05XRXhaYW9pRTFUZUlTdU40QkdiczBORzQ4VjFHSVo0V21mN3ZGbUVNU3F6WTJ6YWgweHAKWnBwTGdweldmK0pwdDEwZW9BeUNjQT09Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5EtLheQAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGogKOqbvH8v+lhm8jipCdQ4N7IngA ---- -apiVersion: v1 -kind: Secret -metadata: - name: kafka-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRFV6Q0NBanNDQVFBd1JERUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhEakFNQmdOVkJBTVRCV3RoWm10aE1JSUJJakFOQmdrcWhraUc5dzBCCkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWxnaUVnQUszSDY4MXBuaGtmaTV6YURGSC9jTVdOODd1TVowQ3dBQ1YKOEsxcnl2YTQ1cG9heWlyeDBrSTFxKyt5VWk0dkRvemQwY2NsdXJ6aVNyU2c0SHFTSUxsSW9UZ0p6aHBkdkVMOQpnMkpRVkxUeGZGSTNneTZyMG9uQlU4TTRTSlI5R3JONUhzUDNxYVYzRzdHOEJnS0FDbzNuK283QThtRnpLUzhICjJubExMbHNzalRuY0tCZHlWNzF3NFpwa2I4V0h6VnJyWUhMd1VMSzhwekVOWjYwdnhMalorQnp1R2I5MDNYVkoKdmVpQkw4M2JVRUp1VjZNSzc1S1hHTUkyKzJEajYrQTVUaEpGdSt6M3FDbGZLOFJpWUhsSjdQV1g3d0pwOVp4Twp5TmlPUThYTzM1RmZ3N09IQklETmNWWWNkNHVIN3pTcUxDdnczeHBtekVJU1RRSURBUUFCb0lISk1JSEdCZ2txCmhraUc5dzBCQ1E0eGdiZ3dnYlV3Z2JJR0ExVWRFUVNCcWpDQnA0SUZhMkZtYTJHQ0QydGhabXRoTG1OdmJtWnMKZFdWdWRJSVRhMkZtYTJFdVkyOXVabXgxWlc1MExuTjJZNEloYTJGbWEyRXVZMjl1Wm14MVpXNTBMbk4yWXk1agpiSFZ6ZEdWeUxteHZZMkZzZ2hFcUxtdGhabXRoTG1OdmJtWnNkV1Z1ZElJaktpNXJZV1pyWVM1amIyNW1iSFZsCmJuUXVjM1pqTG1Oc2RYTjBaWEl1Ykc5allXeUNIU291WTI5dVpteDFaVzUwTG5OMll5NWpiSFZ6ZEdWeUxteHYKWTJGc01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQjJ2UEhDY3RrRFVORlpiUi8wcTRGM055QXc5WEVOaThBMApwQWNjamtmc2k1bnRWY3VBVGwvWmoyMlhIc3RxdjB5Nm1MMC9TdjZmK0dRdFUzOEdCVnhXS25tOVhlb0FVSjJQCllhRFdHc3Z5aDQ5a3NYZkhVbnhxTDJOZEdKRWpqdlJTNG5xMHVwQTNtUU4remdpd0VHQ3FEanhZK1BxUUZ5YkwKWHJGbVJBUUR2SzNLcFlmZENOOFZ3bzhwbUo0a3JiOUJXRTFNNmNiQUZUUFRMT2E0VTBaOUdvcVRMdlBiT2dqcwpBUHhwejZSeHJXR3VnKzQwb1VLL2IrK3N6Rjk5Vm9ZM0s1SDcwTEhVOTVSaFBVbTRFakR0eTVDVkxEVnAydTZJClk1SERReDZzVmhlQ0xpcUdydUtka1lGQkU2NUJKOTRFdERnTHhHNi82bk52SVpBa1NidGcKLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg== - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDekNDQXZPZ0F3SUJBZ0lSQU1ORklLZzRZU29iVmhFVGZKWklmNWt3RFFZSktvWklodmNOQVFFTEJRQXcKUmpFTE1Ba0dBMVVFQmhNQ1EwZ3hEakFNQmdOVkJBb01CVVIxWm5KNU1SVXdFd1lEVlFRTERBeEpibk5wWjJoMApjeUJRVDBNeEVEQU9CZ05WQkFNTUIxSnZiM1FnUTBFd0hoY05NakV3TkRJM01Ea3pOekkzV2hjTk1qSXdOREl5Ck1Ea3pOekkzV2pCRU1Rc3dDUVlEVlFRR0V3SkRTREVPTUF3R0ExVUVDaE1GUkhWbWNua3hGVEFUQmdOVkJBc1QKREVsdWMybG5hSFJ6SUZCUFF6RU9NQXdHQTFVRUF4TUZhMkZtYTJFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQpBNElCRHdBd2dnRUtBb0lCQVFDV0NJU0FBcmNmcnpXbWVHUitMbk5vTVVmOXd4WTN6dTR4blFMQUFKWHdyV3ZLCjlyam1taHJLS3ZIU1FqV3I3N0pTTGk4T2pOM1J4eVc2dk9KS3RLRGdlcElndVVpaE9Bbk9HbDI4UXYyRFlsQlUKdFBGOFVqZURMcXZTaWNGVHd6aElsSDBhczNrZXcvZXBwWGNic2J3R0FvQUtqZWY2anNEeVlYTXBMd2ZhZVVzdQpXeXlOT2R3b0YzSlh2WERobW1SdnhZZk5XdXRnY3ZCUXNyeW5NUTFuclMvRXVObjRITzRadjNUZGRVbTk2SUV2CnpkdFFRbTVYb3dydmtwY1l3amI3WU9QcjREbE9Fa1c3N1Blb0tWOHJ4R0pnZVVuczlaZnZBbW4xbkU3STJJNUQKeGM3ZmtWL0RzNGNFZ00xeFZoeDNpNGZ2Tktvc0svRGZHbWJNUWhKTkFnTUJBQUdqZ2ZVd2dmSXdEZ1lEVlIwUApBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBTUJnTlZIUk1CCkFmOEVBakFBTUlHeUJnTlZIUkVFZ2Fvd2dhZUNCV3RoWm10aGdnOXJZV1pyWVM1amIyNW1iSFZsYm5TQ0UydGgKWm10aExtTnZibVpzZFdWdWRDNXpkbU9DSVd0aFptdGhMbU52Ym1ac2RXVnVkQzV6ZG1NdVkyeDFjM1JsY2k1cwpiMk5oYklJUktpNXJZV1pyWVM1amIyNW1iSFZsYm5TQ0l5b3VhMkZtYTJFdVkyOXVabXgxWlc1MExuTjJZeTVqCmJIVnpkR1Z5TG14dlkyRnNnaDBxTG1OdmJtWnNkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYkRBTkJna3EKaGtpRzl3MEJBUXNGQUFPQ0FnRUFZdjNDQk9QRVlsZzlRNUhaN0pBUlNLN3F6a2FscCtsckZFWTlSaEhiamxweQpXa3pacG5ZV1V6U3ZVWGNOemZLZm0wY1BUdkQvcW9XV2JpWWxESjdkcGd1MGJ5aWtYa0JIMWlFQVBlZnh2WThZCnMvalk2UDg5ejhhTk1acGd2RU50L2Q0NmF1SEo5dXBzaEU3YTY1YjdxM3FtbWdTelhqc0QvOFh5TlAwM0hGMnUKTWtCNUM1bXZSUTRZTXl1WHhRMTZPZ1JvVG80ZTV2bUtlSGE3cGVkOHlVQS91MHJ0bHNYY1JxWFlReDllVSs1TgorRVFpYWlSQjZlSDVicEVwSmlYNkY4Q0MrbHF0VDFqUXlYRlVUcDJkMG5LQzB2MVdxRmRoOG8zV0pLcTcvSFoyCk9sWUw4bkxBQm9XOTRvbFhDZ2F5S0pqR01Nd2VFcGhocWkrNHRjOWJ5Y1ZWSDdGYzI4M3dPQ0JyaS9CMk9rREcKdmVrSHNZOWlNY0Q4SmwzNDZRZ01PTXV0NU8wNVh4R2JYK0QxM1BoWHkxRXFVZmw3MzZXUlhlVGpmRmJibkIvKwpBRmc5Zy9sOFJxeEVyblh5MzgyL0xrMUJPaXBWUVlGZHQ2N0FTV2psMS8waGQrT1ZNUWtVK3Y3WW1hZDFtZTJNCmliSXNkNy9LaVNNcWtZKzluZ0c5U2J1U0l2QU9qRmRSMStGTEp3Q3dnRzYvcjl1SmRpSjJVczJidU95dVVRL0IKSThobkFWYTExdzMvVm9hekJuNVYvb2JlZE9SRlJRZzJzMkJDcUwxRXlMYkxJZTAydnNmRE1uK3p0N0xZU1NXRwpPcXoxSUtDVVlDbHBCRG9td2hjK1Y0aXR5dXRnWU5UZmVVNThaS2RjazZ5Q01GQW9lZWJCbTZHK1dmSXJLU0k9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ1dDSVNBQXJjZnJ6V20KZUdSK0xuTm9NVWY5d3hZM3p1NHhuUUxBQUpYd3JXdks5cmptbWhyS0t2SFNRaldyNzdKU0xpOE9qTjNSeHlXNgp2T0pLdEtEZ2VwSWd1VWloT0FuT0dsMjhRdjJEWWxCVXRQRjhVamVETHF2U2ljRlR3emhJbEgwYXMza2V3L2VwCnBYY2JzYndHQW9BS2plZjZqc0R5WVhNcEx3ZmFlVXN1V3l5Tk9kd29GM0pYdlhEaG1tUnZ4WWZOV3V0Z2N2QlEKc3J5bk1RMW5yUy9FdU5uNEhPNFp2M1RkZFVtOTZJRXZ6ZHRRUW01WG93cnZrcGNZd2piN1lPUHI0RGxPRWtXNwo3UGVvS1Y4cnhHSmdlVW5zOVpmdkFtbjFuRTdJMkk1RHhjN2ZrVi9EczRjRWdNMXhWaHgzaTRmdk5Lb3NLL0RmCkdtYk1RaEpOQWdNQkFBRUNnZ0VBQ3BsemN1KytMRGplbTNJcDkxZ2t3eG1vTWw5VDlJRmtCcEZISG5Wc0ltSysKR01xeGFXazl0MGF0YXVOT2syVU52Z3lST24vdE0rTFQ0WXR5bVVDRmxSWlR1SWdlZjNWTURBbUUwY1lSenZSbApKSGJjRUtKbVZaZzRmMWxJRlRqWGd4a3FkWFowZWgzeUkwUVRWQnVNWXdoT0wzQ3pFTnFBK3g2eldoZCtnSXF4CmVUTHJYV3ZHME51RXV4UGpUZWRMbmZ1M01Ock9CV0p1bVFiaWtNUGROUGRweHZyQzFHNzdHdWFCMlJjMDJ1M3oKSFF5bUJ0RnhGdkhOUVJVU0ZGRWd4aGY5WmorVXhCMVUwbjZKcy9iNlZMSmQrSjI1ZDIwYUNLOGlETG1SMmRQYQpvRndHT1RMRUFkcThUd0hjZ0hDMkNIQkNDT2pYT1ozYXRXZUxwWHdxZ1FLQmdRREJBTGdOdDE5TWk1a1lqYndKCjZJNTNPd0lkLy96S1RlckRTenZhSFltU2FkTEdrTWY3b2JWSFRnbkY0dTE2b1B0cFN1ellxbDJpMTdjY0taU04Kd2FINUpXS1pOZUt4NklDMDZqNDZScmZhZTV4RkY5TFM4YWpEV3ZOaWlyZ3hPMVU1TGZjSmc5ZUIrWTNwcmNyRgpkOElyS0RhOUxxaHVnczlZUmxGMWM5eGlmUUtCZ1FESEFVV0pNcEhsRHBqTmlXUUZjelV6V3cvZk5jSW9sT0pwCnBweldaSlhKNXUyY2ZlUXBkOCs4WGJOdU12cnQyUHZNYTgyMW1kNmJmRGtiMTZyc24yRnM0SFRkY1FyMnhWUUgKbUZOR3pzWEVMa3NoMzdsQ1pCbjk4c09TR0wrenBiOCtTeEtqQW9xVXFPNVFZeFpFQVVCdEdYWU5KZWQwNnhsWAo4bGZlWU93b0VRS0JnR3JteHd0eDRpczN0MWpPU0xVRVJzVHJ2a1Izb2NFOFh5aEU1NlhzYm1MV2twVEJaTU9QCjBpVG9xS2tmQklMRDMvMTJMckhqeTNHRElqMUxHcWxaOHlsWTk3LzlCTStlQkl3d29yOE1wSkV6bmw3Mnp5TmcKRHlZRm5vR2FiR040aGIvaUljNzNZOHJ1T3hpUDFweUJ0TjdLcTJjbURNMEpUMmVKcTF6dkM4YlJBb0dCQUtMRQpYSDZKMlNDVFh0R0YxVVJMNWJDYWc1SGFvM0tUeTlnRUNYV2xrWW94RWhtVU1tRGtlUW1sVGhRTktJWVBtbXVwCnBQZ3E0Uk1sZUlSWVVwbjFCamVLSXF2WVFOSnp0WFg4MWVndFNUNWJhdUpLM1hqNjdQTnpjeGgwbTU4eEt3bWwKVjVueWd5eHlPM0dPaWZDWFlYMmFmSjdtYUxpTmJnNHJ6a2k1MTQ0eEFvR0JBSXprRDB6blpjbVdMdTkwenpLLwpZdVRLdmExQnNyQWZhaTM5Q0d5MXpwaTlVbDN0M2dDdE92ZFVBYk16ejkxdzdLc1pINkdvZWFROWJWWU9DNlBUCkFJbDMwZmhkWENGSDUvQmg4K1RialJBcjhTeE9INmtST0pSSUVRamt2ZXdWZ29OUndBYXFPK0V3M2pmZVZ0NUkKV2l5d3ArMDFzTkJJWlQrT0h2eVVRbklMCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5ErDMNQAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGorfYhYy08EA34Sz0atRhctmkVr8A ---- -apiVersion: v1 -kind: Secret -metadata: - name: ksqldb-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRFdqQ0NBa0lDQVFBd1JURUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhEekFOQmdOVkJBTVRCbXR6Y1d4a1lqQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOVXVDZ0NiNmQ1U1BHTUNGWXZ6cytaUFJma1FZY2xIRFRPOTYrejgKaTUvOEJ0TGVHMlVMQzczaXJZdWtSdi9CZ0R6dmdkZURzdmJsRGMvZStQcUcvTllMejg0M1ZiNlJsc2xESTRRQwo0U0h4TEsrUUlUZ2VMZkg1Q0tDVFQyVDlNWVpzTlMzelpLQW94Wk1ORnlJWTdwNDhsTDdUV2RUK0NOYSs4K09jCmFSZnRHc3NIUU9KZW5pbFhzdC9CTWR4MC92ajhsYk0zNmJJekVXMzRFNHIxdTJwYS81bUpveVVIeTFwVjk0REIKZmc1aVVvSitSYWxCclFrUVp4MkdEekdsbkFHYzZ6R1JrdFA4Ujk5c1hFU2pGL2xrWlRFOEI0aXdtL3o0RmRpdAp3Vlo1WFRlYWY0TFNHZVV4TXU1ZlhyUm9yRUUrR2F5ZVdqaHdnNVlRTTZSdnhLc0NBd0VBQWFDQnp6Q0J6QVlKCktvWklodmNOQVFrT01ZRytNSUc3TUlHNEJnTlZIUkVFZ2JBd2dhMkNCbXR6Y1d4a1lvSVFhM054YkdSaUxtTnYKYm1ac2RXVnVkSUlVYTNOeGJHUmlMbU52Ym1ac2RXVnVkQzV6ZG1PQ0ltdHpjV3hrWWk1amIyNW1iSFZsYm5RdQpjM1pqTG1Oc2RYTjBaWEl1Ykc5allXeUNFaW91YTNOeGJHUmlMbU52Ym1ac2RXVnVkSUlrS2k1cmMzRnNaR0l1ClkyOXVabXgxWlc1MExuTjJZeTVqYkhWemRHVnlMbXh2WTJGc2doMHFMbU52Ym1ac2RXVnVkQzV6ZG1NdVkyeDEKYzNSbGNpNXNiMk5oYkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVR3MVhQR3B3ejVDR2pXZmYraXMyUXMrbwp3eFl5Z2FMN1k2Q3BnTTc2eCtidjZySVFxNE9odWVtK1VRMTJueGdsTW04a2xFczY5dnk2alNja3pNekhweFkvCkljREdDNVZQQTQrNWVoVmpybzgrU2F3dzY4aWdXL3lEellMU2h0N2RmYVRZbHpWUFEwVVlMNGFOSEJ4U0wyVi8KV2dpa0daL2R3RzVqR3B5NmM4UEtTVGpQcWxwOVErQnRwcnVpbnlySWlwYmhYRGtVbnZkaitMM0QyVElDVGZlYgpldm5xQllWRURvWnJTbTlWU1l0RTQrMEM0WndZMFdWT0YwV09Sb2RoeldGdWtOeTJEYTMySFJwSGo3T2U2bmVjCnBVK01UbytpcERmbjF5ZnQ4S1p4SDh3cTI2aGZYZWFNWDZ3VE9RVEVDT3R1SERhd1YxNXd3SEoyeWpjV0VRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg== - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZFVENDQXZtZ0F3SUJBZ0lRWkpJNlo2NnVlcE5yZVVpT3VwbFl3ekFOQmdrcWhraUc5dzBCQVFzRkFEQkcKTVFzd0NRWURWUVFHRXdKRFNERU9NQXdHQTFVRUNnd0ZSSFZtY25reEZUQVRCZ05WQkFzTURFbHVjMmxuYUhSegpJRkJQUXpFUU1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRBZUZ3MHlNVEEwTWpjeE1ERTBOREJhRncweU1qQTBNakl4Ck1ERTBOREJhTUVVeEN6QUpCZ05WQkFZVEFrTklNUTR3REFZRFZRUUtFd1ZFZFdaeWVURVZNQk1HQTFVRUN4TU0KU1c1emFXZG9kSE1nVUU5RE1ROHdEUVlEVlFRREV3WnJjM0ZzWkdJd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQpBNElCRHdBd2dnRUtBb0lCQVFEVkxnb0FtK25lVWp4akFoV0w4N1BtVDBYNUVHSEpSdzB6dmV2cy9JdWYvQWJTCjNodGxDd3U5NHEyTHBFYi93WUE4NzRIWGc3TDI1UTNQM3ZqNmh2eldDOC9PTjFXK2taYkpReU9FQXVFaDhTeXYKa0NFNEhpM3grUWlnazA5ay9UR0diRFV0ODJTZ0tNV1REUmNpR082ZVBKUyswMW5VL2dqV3Z2UGpuR2tYN1JyTApCMERpWHA0cFY3TGZ3VEhjZFA3NC9KV3pOK215TXhGdCtCT0s5YnRxV3YrWmlhTWxCOHRhVmZlQXdYNE9ZbEtDCmZrV3BRYTBKRUdjZGhnOHhwWndCbk9zeGtaTFQvRWZmYkZ4RW94ZjVaR1V4UEFlSXNKdjgrQlhZcmNGV2VWMDMKbW4rQzBobmxNVEx1WDE2MGFLeEJQaG1zbmxvNGNJT1dFRE9rYjhTckFnTUJBQUdqZ2Zzd2dmZ3dEZ1lEVlIwUApBUUgvQkFRREFnS2tNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBTUJnTlZIUk1CCkFmOEVBakFBTUlHNEJnTlZIUkVFZ2JBd2dhMkNCbXR6Y1d4a1lvSVFhM054YkdSaUxtTnZibVpzZFdWdWRJSVUKYTNOeGJHUmlMbU52Ym1ac2RXVnVkQzV6ZG1PQ0ltdHpjV3hrWWk1amIyNW1iSFZsYm5RdWMzWmpMbU5zZFhOMApaWEl1Ykc5allXeUNFaW91YTNOeGJHUmlMbU52Ym1ac2RXVnVkSUlrS2k1cmMzRnNaR0l1WTI5dVpteDFaVzUwCkxuTjJZeTVqYkhWemRHVnlMbXh2WTJGc2doMHFMbU52Ym1ac2RXVnVkQzV6ZG1NdVkyeDFjM1JsY2k1c2IyTmgKYkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUtyWVVnUWRGRXhwOGgxamRqaHZLZFFySitNRWo3VDNMTEUyNQp1N1ZISFFNc2J1TVN4UndhcWxzVVQvTU00WkRSSm5QQnRVWVFXRUJ2Smg0YW1wbG5MaUFuUTNmcHZXV2w3d2NNCnZsRUUyNFFid0t4S0phNUNMWjJhTHVtQXRzbTdYb0k4Vnk0WWtSQW95Y1lmdUU4NEs1V3B6SFQrT1JPb1drUnMKbG9heVhnZFV0RXhJZ0Zqajk1WGMrUWRtSG0vZSsxa0xtYjhpUXlOcE1XSVg1Zzdsa2Y4TDEwVWhtZkhCRVA2Nwo5UWJXZ1h2V1dxKzZHU1lTUnlaSlpZZkFFeEx2VTdnSVF5STRiQkQyUm9FQXkrRHJXQUJMaVlZRW1QRGxTa1pWCnFVOFd2NW5EOUY5eFhZNGp3WllYdms3dnVleW5hUTVSeE9vRWZ3K3Q1ak85aDhFWlZyTUVLOXo1RVdkR2V0bmoKV3RCT2Y5RDl0ZTQyczZhU0s3WWJYRFNsQWd2WVhocmNJVnBFbXNIMGtIbjEzTWZCQVpvYUE0eUlHUUsyVEs1VwpncUhYZnhZd285dU1qWFk4d0J5bGYxQkNVYm5MeVRxbE1qaThsQUx6NjlDa3FZZUMxTm83andEbUVMbjRpaUovCko3U2hBbWpEb3pDbUpsYTk3dThRcHo0bUNLcFhsWGtjUDRjRTR1SlRDWU56WW1DRGtwdkVsYW1aaC9HTzFwRTcKWEhhV1JQM05BT2RVVVBjbkpPdnBtMGlXMkE4c3pCOU5NVlZIZXhBVVRJd3BwWi9mcUNoVkZYdkFqZGdiSVliTgpROWNUYVRrVmFvdnhPSTRmL0RxblR2MmVIUXA1QkVONW85KzYvN2M0VDdTbjlDVy9HVHIxS3cyU2NBUWszVXU4CmlmMUV4dkk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRFZMZ29BbStuZVVqeGoKQWhXTDg3UG1UMFg1RUdISlJ3MHp2ZXZzL0l1Zi9BYlMzaHRsQ3d1OTRxMkxwRWIvd1lBODc0SFhnN0wyNVEzUAozdmo2aHZ6V0M4L09OMVcra1piSlF5T0VBdUVoOFN5dmtDRTRIaTN4K1FpZ2swOWsvVEdHYkRVdDgyU2dLTVdUCkRSY2lHTzZlUEpTKzAxblUvZ2pXdnZQam5Ha1g3UnJMQjBEaVhwNHBWN0xmd1RIY2RQNzQvSld6TitteU14RnQKK0JPSzlidHFXditaaWFNbEI4dGFWZmVBd1g0T1lsS0Nma1dwUWEwSkVHY2RoZzh4cFp3Qm5Pc3hrWkxUL0VmZgpiRnhFb3hmNVpHVXhQQWVJc0p2OCtCWFlyY0ZXZVYwM21uK0MwaG5sTVRMdVgxNjBhS3hCUGhtc25sbzRjSU9XCkVET2tiOFNyQWdNQkFBRUNnZ0VBTFRYOVl4R3Q4THVLR1FsWkhueEoyLzlWL0xOdnVhczY3bzFKMnRIWW5zNXAKZUJFb3lDNG1pRmZwckdManQ5d0c0V1YrS1FIQ1U4QlNSSktxUlIrWndaOXhxKzlxWE9jdGpuT1J0YTZTcG9zcQppZlZNUmtXSVF2Z296ejFPcWtGVVhvaldZbTlyR05oc3hub1JQT2NDdkVabTJXMmpjSnVMcmxlREMvT2hDalNZCmtJMGdSWWl6M3YycGJESTYxTEk0T0VnMjlVQ0ZzV216cU01V1RwTDRQZTVvTExiRDhObGNSdWxvK1N1bGxEVHMKVG5RNVhkaStzc3JJMkV2Rk51ajYweEJSWXVuL0l1MEdEZ3cxb3dzcHdnNnRSUnJpeWJTUEdXeDBLSSs4a0phNwpWclJuQmNPLzBHcVF2MWs1Q3FWb0RCWHN0L1pUZ1dFUWhzdzQ0T0dXK1FLQmdRRFpaUThWSkY4dzdYcDlKNlRJCjVvdTdvYWNYT1NVTkt6dW41VE1GMUJYUDJqa2xsRHlpcCtZKzJ3K1UzL1poMUVXSFA5V1pSVGxnSEJxSEU0YWMKUWNNanJ5RmdkSEFZaCt1U2w1MkNmbkxkc0swUHkvc2QxVWcwcVpmWFV0Qk0vU2VaSzMweWlKZXlNN0d1VlZTZgpVSmVITzBraDk3QkdCQUlpQVFIb2lncVNSd0tCZ1FEN0NWM08wNThsTDVzZHh4TENGdXFYT29Udm1HRy8wRmErCjI3VnV1Z21malNMdnR6QkxMdXVQeFVvdWZpZXZ6S2p6TkEvRCs5Rm5MajdXZnlwa1NCL2g2a2syelE1STNQRmwKbWJFejJ0YmRSQjgxV2VlajFBVlFzSWJwbk9pZEk5ejVrRTg0V0hZOGhHSk5sVVJIdFZSVDFaSmdZYmJIRjNLLwpoUVNUQnByb2ZRS0JnUURKZDBWZUE0SVFOdFNnTGVBaHFyNXVXV1lmT0g4azBCOE4vbk9sZ0NIaXFVcnlqNGtOCitHbUJjTVBrNVJWUkhrWjlDK1Jva1dXVnN4WEdmb3J1UG1lWXAxRllNVEE5RzZGdURnSVRrQm5sWnpsSy9XK3YKK3h0YWFwemtHTVFmeFRBd1c4US8wNlE1cW55TW9sbTA5eHdtWUFQcmJiNjNkRG1CeDhzNzlNbk5Pd0tCZ0RrbQpnTHk5WU5YT2FMbjJ3RVovZ1JpOHNkYjZFZ2JoSDE2RUZtSUc2SG55WDZuRFFyTmJFelcvN0l0NUhQL2d6L1hPClBHaVp3NnFCMUx4d1p1NDluVVNKV2ZHbjdVQ1pURHVkS2NKc1o4NG4zQk1CVE1MM1dkNXMwY29OZHNlUGlwY20KUzJMQWdPcDJHUXNnbUZMYTdUL0l0M0pKekpxMnMrRDJIM3g1WEhyaEFvR0FOS3hrSm8xT0VMWGdlZmRKbVltdwpZNVlEK0x5ZmNMKzdGUlNHbTVqdjdMQ1FYbTZqTjRqTHFDNUc3WTEwZjg0UGE3a3NrSkJsNCt6NHh3Q0NHZlk4CkNFdDNYNFhNMVhGMDRNSDB0U1ZYN21IY3ZLbVgwRW1vVVFTMXVsaXJUYjNTSXVQMjQrdlArYkJKSC9aZzYzN0QKdWRYTTFFN3NFSHAxc2NpUG1ZMTJaY0k9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5EtLiRAAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGoqypfVz1zt0phuvrz37eH0Xveps6 ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRGFEQ0NBbEFDQVFBd1J6RUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhFVEFQQmdOVkJBTVRDSEpsWjJsemRISjVNSUlCSWpBTkJna3Foa2lHCjl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF5YytJcXFLaXZrWk96a1BIeXBtdTd3ajZndHB1QUE1K2J4UlUKSkJ6WjFlNHFtcUFEbVpIOE1PTzJrSDlUV2FvZTFDWXFBN0xnT01tSTlWR1N0UC9EK0RranlhZFlUUDJuSmk2QwpXUFNtRFlzck1KNHlPbWRZcDdMdHB1NWdhQ1BPN0toV255eTdGbnA1SDY4RzVySnRqQm5HS2lJZ3dTbHNmOUxnCkZIS0psYTlIWGlyeEJBM3g3Wk4vYjl5Z0NLdndMWDU3M2lpNW5QVHdIcldxNDFLT1dGYkFKZG9qWGRiYlBYMUcKZFUzNmdINDdJR3pvaFlRdHBldTh5VXVsV21QNFZRVnR4eVBOaW5TVFYvY0g1NzFONlNZbDRzb3JaUDdXTko3YwpzUi95UWJWZDZUVDhHZ0NzNDk1UTk1SzN0UUxpNlBWZ2xnQ0hFbEVJVWdwU1h4MCtKUUlEQVFBQm9JSGJNSUhZCkJna3Foa2lHOXcwQkNRNHhnY293Z2Njd2djUUdBMVVkRVFTQnZEQ0J1WUlJY21WbmFYTjBjbm1DRW5KbFoybHoKZEhKNUxtTnZibVpzZFdWdWRJSVdjbVZuYVhOMGNua3VZMjl1Wm14MVpXNTBMbk4yWTRJa2NtVm5hWE4wY25rdQpZMjl1Wm14MVpXNTBMbk4yWXk1amJIVnpkR1Z5TG14dlkyRnNnaFFxTG5KbFoybHpkSEo1TG1OdmJtWnNkV1Z1CmRJSW1LaTV5WldkcGMzUnllUzVqYjI1bWJIVmxiblF1YzNaakxtTnNkWE4wWlhJdWJHOWpZV3lDSFNvdVkyOXUKWm14MVpXNTBMbk4yWXk1amJIVnpkR1Z5TG14dlkyRnNNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUJQSE9xZwpZNUhUSDVIamx5SFhxa2I5UEVWUEllVHFOSWdLYkZOdWVQcVpKKzcvUEFkNmUyUS9ERlRHQ3Zmb3BUcWNoYVBtCmo2YzY0V0pqQlAySVM2U1B3MVRnQ0hqVmVmU2UrUzdFUUhaS3ZwS1NucWVFaEhkcGRQdVJ2RDc5aEVqbDFQNFEKQTJyVk1pTzkzdmVWS2JYWVpOUENlNDFsRmVWaHdveFNuQWNHYmdJeXVPOW1KZEZLVjV3czR3eEdKOHhrTE1waAp2bUNkcG9BNllVbjE4aVMrd2o2aTA1enBVbXh5aFhXS3IzMjhOdjBGQUozQUlqaVo2TlJucEpUU2piVkFuNHVDCkRJeGxDa2F4V3NwSXhwUk9HWWFiV0JZblJOTzNFTDdKcGg4R3U5alE1SHF3ZStFYUV6K2gvYWtqZ0w5UHJzNGMKa1AraGV0R1c1VjVXSnVxdgotLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0K - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: /u3+7QAAAAIAAAACAAAAAQALY2VydGlmaWNhdGUAAAF5ErpCCgAABQIwggT+MA4GCisGAQQBKgIRAQEFAASCBOrWJqMF9Cux5JN17Z5f866XfWbVPU7Ii1Px81GcL1CBiF/tW/AO7mWHLBSrXNy1+c0husWdd058SGkcFY153mUluN1X+rJ6djc659fyN+gjLG0nf1nrjyf8abG/mvLg4s4cd5Z6i+RHTNlGAa7YiBJghaGdENrjvOdSwc5IoJt4kX5S24msdq/C9Po+ROvyP+lMETpd58yVLBl681FAn+0KvbjDTO1xLcVgn3tYWryt6bCFO1U4AwrzxGyXkQDldAmTQj4EvuBk7sJoErhr7nvwxFDfjA1aynw8hsvLVDYVscrVjRpLFU+Db90A+eVKdU5a/Bb97wb7u3kEdL4wi69LVYOzr+bNJJ7Yb7zb5mjJy12cHg+ZghImIGdCABbpbKrIjpfKKJYoNJFMkGGNLaFeUy+VB7t/gqSrFIu+4BlgBALnFN037ijw7RKEt3SKneqTEPg/41hriV9UjQsdpLMXv3uLPP8uzHXr71U0JuN6neGClaUUViEzpEw1Zwwfbw0+lrObyEKB4INPQgmi7UlL+wNdGrW/wHGpqmgO2AUt9Rxly1r9A736edEM8857VRU3Md9WAANimptiuNfHsjhoLh9i2fqu51AHcQev2MYAYI5G8nFA0EHOJB1uSErn8SoTcRmv819gTNRrkzNTQuBNY5iLmb+z7s+5lqInQjRQNqZ3bwC9Lqa9PYEOrS6H82LVQZoWSBnEkHnXyjWWuQEdEIUCTSv3XbcQ7VkNFMYl88jFiZApI1rZNzO5GlmX0BM8eDJHhF6SdG2EoxntwpIvFi7SR66nWGxpt1MtxH2t+A1v0rX0LRhLbvt3OzFTCZY/EW0HMHD7wzesmzNXgLDHi5fzX+dHLrGNg5C1q1zQy7phdI1omW5HSxAxuqWyypqAql2y/DBLwFozEm/ftzr+ERKd9qF92Z8YggKRUsRu8qqMHBkp80Yzzx2jakg+0Cy+f+We7c23jxyVR4CvinBHepatm3Y1mjLzx2UM+FgLxzavqV0BvZiOrlyKru3TO7O3a7dOlHyci1+R86y16yeukn88V4ayAhwqrbLqa2oOhgHGvobUt8wngU7VCNQg0kNn7QuTfyyFOTOxuCswRLyNjp0uPTmbgEYKnckXZ2bo7G0A6U1HwE/h9wnOiOKcVeMA2tevUFayqlyC15caMv666z4+4EkfnzN/ANWDGYAheOXqfDynUgLACTgvDlUPIAl2g7bSA9dGoCvJAqyxAJ8FSd27QhqCxiWuV/LEPDiOI1R9Qos6AMtzCFK7XIOqeUCEpXdvxHgB1VjsPxgk0nd8FemizX0LXFLyBatEh53CyMRJGovdHztwKr12/6T3ClYh7DbjGLw8WnqqGN6m4LBmWJ92haDUnVpDb9WeeGHopZxk8iVXofdVcXEiVRaJWOYV/h/oTjDrXX39/UZZ6MlrirGe3lkxbgtqMa3atlTL2wg+r3C9rDLsS5sq247xU3y6Sv+XtTbJ91WVBPJVbcMioImJ68zBDC6AJehY40ytl3fOiuqzE0lbbsmnuX6yD+Yjwvlp1Vpf/0pv4b3zSEohU2kBlA8LW3HwFscNdbs5BKaOABxRbJ7NX3PNl416XG/rtBHevMuRm2+wWaNY5RrU+vP2SO/OYKS2cKUOEfhfgfgPmkoNDSHG9HnAUnD4mg/ze5MzWkw3DJTNAAAAAQAEWDUwOQAABSUwggUhMIIDCaADAgECAhBwLrRcWC1rU7wsX52RZHicMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQyNzA5NDc0N1oXDTIyMDQyMjA5NDc0N1owRzELMAkGA1UEBhMCQ0gxDjAMBgNVBAoTBUR1ZnJ5MRUwEwYDVQQLEwxJbnNpZ2h0cyBQT0MxETAPBgNVBAMTCHJlZ2lzdHJ5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyc+IqqKivkZOzkPHypmu7wj6gtpuAA5+bxRUJBzZ1e4qmqADmZH8MOO2kH9TWaoe1CYqA7LgOMmI9VGStP/D+DkjyadYTP2nJi6CWPSmDYsrMJ4yOmdYp7Ltpu5gaCPO7KhWnyy7Fnp5H68G5rJtjBnGKiIgwSlsf9LgFHKJla9HXirxBA3x7ZN/b9ygCKvwLX573ii5nPTwHrWq41KOWFbAJdojXdbbPX1GdU36gH47IGzohYQtpeu8yUulWmP4VQVtxyPNinSTV/cH571N6SYl4sorZP7WNJ7csR/yQbVd6TT8GgCs495Q95K3tQLi6PVglgCHElEIUgpSXx0+JQIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgKkMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMIHEBgNVHREEgbwwgbmCCHJlZ2lzdHJ5ghJyZWdpc3RyeS5jb25mbHVlbnSCFnJlZ2lzdHJ5LmNvbmZsdWVudC5zdmOCJHJlZ2lzdHJ5LmNvbmZsdWVudC5zdmMuY2x1c3Rlci5sb2NhbIIUKi5yZWdpc3RyeS5jb25mbHVlbnSCJioucmVnaXN0cnkuY29uZmx1ZW50LnN2Yy5jbHVzdGVyLmxvY2Fsgh0qLmNvbmZsdWVudC5zdmMuY2x1c3Rlci5sb2NhbDANBgkqhkiG9w0BAQsFAAOCAgEAJADP27b6KzRx4mHtqp14fJMMe66xZZGrUc3uOEGnG9f7uxsr+mN/8kPUqwIUkXYCSBoql2l4kcqSJPDyOAn9g5N87i/6JyYXogCypQhMkGjUZh3Oej6nJ9/lsKwnke3t8qimRBm6wQrMwLQIH8AZQGnTzIhbNj4xRVNEeFVTEIDYum/DZY6NA/sRFzyDbs8rHvOdbJxoVHGvuK/nu/7AGjnGneqN1iRYv8rxvBcly8jxMtYD0wu41VijyD0cA8fnFOeiyTIOjQ0QuCPq7tE2hKi53U/GE1/mSgk2FX6QlqIuVFnAwFlNxxOamm2Sqd+S0vpFj8KJ2YMDHBLHepq3P0va8l+STeKVbghBZD0w7xv2ypq4oViRZUYV8nXm5uUf+3xZe5nVbhmUdOrFDTi8dE0ywZNoNyY7fiwcA/8b8sJZ8NyHuocIWsY1OD6PkDKjWPQsmZ061abiCVzyzZfscRdP29jRO4EZy9XBeSLC3cUP9tIpMmVy9St94tQTuYzQtPVpGStJ5QO9mUKUHzAM8ZZ/F8gDE1yHxql004YGSGqe1TuX/5oX0U+9k9ReCLhT0R13uvdOmCqOeYfqcr7RPtYocPRfauogKkj3U3kKlGS9zMBIkr7gh4SuraerNUzpAaYQ4LgQx188ZvTkpK07ufxcWE4hZignCUKJjW765hMAAAACAAJjYQAAAXkSukIKAARYNTA5AAAFDDCCBQgwggLwAgkAwCk1qRAIiMUwDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwHhcNMjEwNDE5MjExNTUyWhcNMjQwMjA3MjExNTUyWjBGMQswCQYDVQQGEwJDSDEOMAwGA1UECgwFRHVmcnkxFTATBgNVBAsMDEluc2lnaHRzIFBPQzEQMA4GA1UEAwwHUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALrJQmV40plWUHCZwtWRl0mRqY8RifLa6YrhemNh4GlpLT7D97hNxlc477QCZ8+9HKW+KTmRCt7t1vjbkC8Pl5Q4uVx8g7knCyMhr9SdWJnkkVQEOIwl4QYqjUKsvtWGgCaZdiJ7CtRcJVoguGaB8H8gbFeuTx/L4gNh3KzwWoS0rHAYGCeJDKQRY13OnhMmVhTunmDf9xm/Cpk91YYAXQ8X65V66ScA4wLlllmmdYMbDW3uHdgTF0XIwBsE8zm7QahAq6myjbcylSzZAqOVTtknSFpovcfaA/nqabjzrzKK5zXd9m/ClsTy7nD9WXIYa3MBjlkmBJITayw4aV/rSlBTOHehBnRL+MgOICMeCTeDLwWuqJzOR1Jlxpr69DpAZ27Iv2ZO+3P45g5C+d5/4xtVeQUd5C57dOIeMYcoiuiEzZjUeRzUnZc4Sk/6nZ3qiGKAFSELxwv8FANwfgd7rq4ba/WunC2L8mvVgQDSYEAy3Elw2uswZb2j8+17UTmjCpGOFOhQp9K+2tdq9eeAmFsI8ZGDeK+3m8cPcIFWtBpERbDBlRGf7wogeKtyx77QLuJkWAW9bKzGdeX1E59A0J+US+uRcE6bdQUX4lB4V7jVkQ83asqEXIoT9uWE1j3MluAGRhbLUwmR6Cv7EkuvvxO81Zb7d2Sq6cl4TTSN0Bt7AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAHjqFcAFwJKPlw3UXj6LrzXR0RhTRKuux/9BfcggprOXe4jFtV+XWt+7pGHt0wljGBT+idhxgXWy/CGaZ66OLNiDx9hM9FYGmPeTeogZGRHQpT7IRinK5RJIHggOYAPiCtvKZfTlybX9lOAxi9CwBg7p/O/sDy7g0VZKeEnRM1WBkccuWNCIrqGIqc6Y9QCexPYN7pcBpFp7djaf+6WjcAJhA94PyByHcsN38lWxyYD47BbEZ7iyYIcCrPeVj/dn2oCWJ7qI+kU6OG6Os+s9cGL0M8s8U9ZqYE4ZtBcqkjnsrifn/rXLSW53OmnzLXpaAyiQXwDzQze3LkPGoGo+0XKpCip3TjzqsWfxuk8qkdTA0IOZgZW1le3o6AQEMIZ6Oq/HzUXo1VZpBGexfgSxklidsTxsBnBB7qA77QI0qFZaxC0kVYzilDBcIk/YO1gK5XZF1mGcO5834n76NyoS42JjlmSoc5OPvDZ8mrJSOYwk3r9MARASeV8I/JnvP8StzLv1UI8yBjuWx03E31zgmXHUE0COuXwPMg4nVu2T9g5+MjJOJqyIxsbt6o/XWsSob7wgDoW8ck2Xwm3ItW1hFOaHIU7u3LAV+DJWJYWKc4rbH8p3chWi/Vo1/LqeMvdD8Tjt0gpbdJZbX8vzVxwmWY+enJiqehXLXJT6IqbUyEainAPfsldpFZUDJvjAsK9p1TsHj8g= - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZJVENDQXdtZ0F3SUJBZ0lRY0M2MFhGZ3RhMU84TEYrZGtXUjRuREFOQmdrcWhraUc5dzBCQVFzRkFEQkcKTVFzd0NRWURWUVFHRXdKRFNERU9NQXdHQTFVRUNnd0ZSSFZtY25reEZUQVRCZ05WQkFzTURFbHVjMmxuYUhSegpJRkJQUXpFUU1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRBZUZ3MHlNVEEwTWpjd09UUTNORGRhRncweU1qQTBNakl3Ck9UUTNORGRhTUVjeEN6QUpCZ05WQkFZVEFrTklNUTR3REFZRFZRUUtFd1ZFZFdaeWVURVZNQk1HQTFVRUN4TU0KU1c1emFXZG9kSE1nVUU5RE1SRXdEd1lEVlFRREV3aHlaV2RwYzNSeWVUQ0NBU0l3RFFZSktvWklodmNOQVFFQgpCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNblBpS3Fpb3I1R1RzNUR4OHFacnU4SStvTGFiZ0FPZm04VVZDUWMyZFh1CktwcWdBNW1SL0REanRwQi9VMW1xSHRRbUtnT3k0RGpKaVBWUmtyVC93L2c1SThtbldFejlweVl1Z2xqMHBnMkwKS3pDZU1qcG5XS2V5N2FidVlHZ2p6dXlvVnA4c3V4WjZlUit2QnVheWJZd1p4aW9pSU1FcGJIL1M0QlJ5aVpXdgpSMTRxOFFRTjhlMlRmMi9jb0FpcjhDMStlOTRvdVp6MDhCNjFxdU5TamxoV3dDWGFJMTNXMnoxOVJuVk4rb0IrCk95QnM2SVdFTGFYcnZNbExwVnBqK0ZVRmJjY2p6WXAwazFmM0IrZTlUZWttSmVMS0syVCsxalNlM0xFZjhrRzEKWGVrMC9Cb0FyT1BlVVBlU3Q3VUM0dWoxWUpZQWh4SlJDRklLVWw4ZFBpVUNBd0VBQWFPQ0FRZ3dnZ0VFTUE0RwpBMVVkRHdFQi93UUVBd0lDcERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEQVlEClZSMFRBUUgvQkFJd0FEQ0J4QVlEVlIwUkJJRzhNSUc1Z2doeVpXZHBjM1J5ZVlJU2NtVm5hWE4wY25rdVkyOXUKWm14MVpXNTBnaFp5WldkcGMzUnllUzVqYjI1bWJIVmxiblF1YzNaamdpUnlaV2RwYzNSeWVTNWpiMjVtYkhWbApiblF1YzNaakxtTnNkWE4wWlhJdWJHOWpZV3lDRkNvdWNtVm5hWE4wY25rdVkyOXVabXgxWlc1MGdpWXFMbkpsCloybHpkSEo1TG1OdmJtWnNkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYklJZEtpNWpiMjVtYkhWbGJuUXUKYzNaakxtTnNkWE4wWlhJdWJHOWpZV3d3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUNRQXo5dTIraXMwY2VKaAo3YXFkZUh5VERIdXVzV1dScTFITjdqaEJweHZYKzdzYksvcGpmL0pEMUtzQ0ZKRjJBa2dhS3BkcGVKSEtraVR3CjhqZ0ovWU9UZk80ditpY21GNklBc3FVSVRKQm8xR1lkem5vK3B5ZmY1YkNzSjVIdDdmS29wa1FadXNFS3pNQzAKQ0IvQUdVQnAwOHlJV3pZK01VVlRSSGhWVXhDQTJMcHZ3MldPalFQN0VSYzhnMjdQS3g3em5XeWNhRlJ4cjdpdgo1N3Yrd0JvNXhwM3FqZFlrV0wvSzhid1hKY3ZJOFRMV0E5TUx1TlZZbzhnOUhBUEg1eFRub3NreURvME5FTGdqCjZ1N1JOb1NvdWQxUHhoTmY1a29KTmhWK2tKYWlMbFJad01CWlRjY1RtcHB0a3FuZmt0TDZSWS9DaWRtREF4d1MKeDNxYXR6OUwydkpma2szaWxXNElRV1E5TU84YjlzcWF1S0ZZa1dWR0ZmSjE1dWJsSC90OFdYdVoxVzRabEhUcQp4UTA0dkhSTk1zR1RhRGNtTzM0c0hBUC9HL0xDV2ZEY2g3cUhDRnJHTlRnK2o1QXlvMWowTEptZE90V200Z2xjCjhzMlg3SEVYVDl2WTBUdUJHY3ZWd1hraXd0M0ZEL2JTS1RKbGN2VXJmZUxVRTdtTTBMVDFhUmtyU2VVRHZabEMKbEI4d0RQR1dmeGZJQXhOY2g4YXBkTk9HQmtocW50VTdsLythRjlGUHZaUFVYZ2k0VTlFZGQ3cjNUcGdxam5tSAo2bksrMFQ3V0tIRDBYMnJxSUNwSTkxTjVDcFJrdmN6QVNKSys0SWVFcnEybnF6Vk02UUdtRU9DNEVNZGZQR2IwCjVLU3RPN244WEZoT0lXWW9Kd2xDaVkxdSt1WVQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREp6NGlxb3FLK1JrN08KUThmS21hN3ZDUHFDMm00QURuNXZGRlFrSE5uVjdpcWFvQU9aa2Z3dzQ3YVFmMU5acWg3VUppb0RzdUE0eVlqMQpVWkswLzhQNE9TUEpwMWhNL2FjbUxvSlk5S1lOaXlzd25qSTZaMWluc3UybTdtQm9JODdzcUZhZkxMc1dlbmtmCnJ3Ym1zbTJNR2NZcUlpREJLV3gvMHVBVWNvbVZyMGRlS3ZFRURmSHRrMzl2M0tBSXEvQXRmbnZlS0xtYzlQQWUKdGFyalVvNVlWc0FsMmlOZDF0czlmVVoxVGZxQWZqc2diT2lGaEMybDY3ekpTNlZhWS9oVkJXM0hJODJLZEpOWAo5d2ZudlUzcEppWGl5aXRrL3RZMG50eXhIL0pCdFYzcE5Qd2FBS3pqM2xEM2tyZTFBdUxvOVdDV0FJY1NVUWhTCkNsSmZIVDRsQWdNQkFBRUNnZ0VCQUx5aVdmSjFObjE0Sm0weWVldHNIMUdiS04xcTRtcjNJVU1lMDA4MkVIK2cKc1AzN0Y2SlNERkorWnNWRjNsanZaUVdUN3EycVkxOXhNYTFzWkI3Kyt1Um9OSVZuQUdobXAvaE9mTlE5U1lGYgpWakdKalJWK1NDWG9YNjhySGIzNXlvNzNBcENpTlBYYjRKKzI4Rkp1OFdxRkpPOTVHdml5aVpJcFAvNmMyUEdwClRMVUx2OWdTOFNwd0I2aUtkQ0lZUnNBdHI1TUhRNjFDcGM4MUxsMGYrUzRlVmw0QXlMbUI3eC9oMVBoWTNScTgKU2E0N0w0VEpEclJCbmdZMzh5YjE0VHFvdWZERkpaK3lDMjJlOWx1VXArMWxMVjE2MXR2YWNxdElZV0dlTzNZNgpFNm9uZmZUcTFRdXZvbzhzdklEcFdmSzQ4TjNtYm5xN09lMk1BNzdoajRFQ2dZRUExQ29icFptSTdwczV5cVl5Ck1LL2JtSXhBUU5yQnVjVWtzSXExcE5PV2JCa28yVFZ6dG1PTWcrSTMxUlJEZXZ3WlZBa1ZoZmpXV1ZWR3NDbnMKWjI4eG1Pd2I3TXNYSi9ycFJyOHZyQWdpQURvbHNjK2dwbnRYVGpaZy9OWk5rOEVRbGFEMTJHb0lqZEdXc05pcAptWEJOU05TcTU4d2c1d1o1N2l3eDVqNGN6UEVDZ1lFQTg0SEp3R1dOTlFOY2grVGhGZkFwRTU0L3d0Wnd6eEFoCkFoUnprM3FtYzV6SW1abW5yc0V4aWtaWTBsMlpJWmxWYmgwdUZyTXcwY3N5dFoyUkdidVZzeEJPNUxMZXFLcVoKeFU1RjZLbkxBM1NHSVNzT254WmRZRVNydzR2QmZWbXVJSTBTR09Edm5Pem1TVDVNVnFkUGRsK0krOVRpVXNFTgpvc3lsNkxYODFIVUNnWUJDVzlFOTRHRzF6NU1wMFFXTnVOTkVTVW1uZjBSc2FEN3JnTmNEY0xKeHFRVGZ1eG93CkI3N2hXUllCYlU4VjNsZkZzdm1xWjRRVGVOcWRLdCtvRWwwKzZVcHFxN0xZYkdBZUlwbzBnbTZ3QjMvV3Q0d1YKeGlvdWFrKzNoUWZLbU80by9xa21RVFBmdDVnY1JBZjMxK28wUjJBVkZBR09nTFlPU29CbzlUQm80UUtCZ0NlZQplMXZ4YWVzeE05SHNmRzdjVjJLWXdka0ttT29udnFjZStyc0pIcUg2NVd5UVlvYjlhZmtNZnhFakozSWZCNVpWCjZ4VEliTzRGZUtleURsUzRmNS9WekhCTFpnemRUUTJjTWFXc1VwcXFUOVIvcys1UWJqcm1rV2ZNaWx2QnhxSUgKTWVXWVc0UVZ5MVlwYTdSQm5wMHM2QlhKU2xXYWtZUm1kYXdLU0N1dEFvR0JBTXM0SkFUTlNOTFJhU3JmaENwRgpIRVZxNGNUL2dBUWNiNTRHaG10STBxa1Rzek1NL1UwTElRaWZBWk9ZM3djM2VYUUc4YkRGUmR4VXpPL2RyM3A3CnhqNVlQZWpGSUxlRG9wekx2Y0o5RldBQlVBMXVXUFk0eVE2elZVNVNZVkd1eVh5OWJNcGNIeUdHNysyRHhlaWcKVEh3L2prblRGZkRybUNydjNJc0hrZmoxCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5ErpCCgAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGop0nmg8QgU4VXD1zTfkq5kZ392GD ---- -apiVersion: v1 -kind: Secret -metadata: - name: rest-sslcerts - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ2lEQ0NBWEFDQVFBd1F6RUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9NQlVSMVpuSjVNUlV3RXdZRApWUVFMREF4SmJuTnBaMmgwY3lCUVQwTXhEVEFMQmdOVkJBTU1CSEpsYzNRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDdWpiK1drYjlNTGxtQnpRbTVTZ1hBeTVrNmRPNjM5bHlZSUl3K1c1TUgKTEZUQ2diN3lSQUhOY2N3a0RsaG9oVFJpY0tYc0Q3cHBzNEJtK2hsNlVta0FuZDR4NzJ6OC82dXNkMENnT1hlTwowZG04SmFxdWQrVW11cnk3Y0U1VEtTaElGL2tacmEzMFlEemRVSjhFNTFPR29NYk9lZlZRMlMwQlVTeHRRTmFLCm1aYnRoNWRQbUJEckcwamFycDhDZDRZY1BpdHRjSTNiNFdXRXZ1WHpCa2hmN21TRUpSdnBRUkI3YTgvdldMTVoKL0FoblpFRnh0UDEvSHZpckJYa0ZUNXd6MEhuY3NXcGtwd2JWbDJhYVRST0JzMTJUUGJJOXRpMnU2MnJGRHJlYgppRkZERlVVWFVjRitrYXAwRUtSYVNHRHZpai9CZkdkVHZUMFd0N1lGekE5cEFnTUJBQUdnQURBTkJna3Foa2lHCjl3MEJBUXNGQUFPQ0FRRUFrOHRIQXpXY3ZTaFFJRGN3b3pzSHNpYThkNlZnNlJrbG5hbEt0SFgzY0FqRitvOWkKMnU5aWczbVFDRGVGUEpmdDlmSnlLM1gwUDUzSU9TM3VWWDRnRmpkTnU2aVNRY3ZKOXVnbWZ6cUZybWNheEg1ZgozVlZQZm9WdUpEaVpxc0FlZTJJNWhhMzEwMUNsTWdiU3A2YmZBSVNMQ0xoUiswaHVaNnYzQ0FFN2dsUHNZMnhFCjFOSE9ka1dDYm5NcU5Ib3ZWOCt6WlhEYUt3RXQxanVUeW0zMEp2VjluL1hTWGVMQVF4ZkpyMTBkWEkvc00rbzQKTWJNOW5WZzh4cVkwdit0b3NwbEwvbjdNWkNENTRIaXpsbW1KbHpRZDVSUElGaGc4UWZVd0ZHejZydzJKSWE4dQpYeGcwVURDaS8ybHlMUkR0S0QzMUVqWWhud0EzQVMyM0JMbkJ4dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo= - jksPassword.txt: amtzUGFzc3dvcmQ9Y2hhbmdlaXQKCg== - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ4RENDQXRpZ0F3SUJBZ0lKQU9oYnJadFR6S0FYTUEwR0NTcUdTSWIzRFFFQkN3VUFNRVV4Q3pBSkJnTlYKQkFZVEFrTklNUTR3REFZRFZRUUtEQVZFZFdaeWVURVZNQk1HQTFVRUN3d01TVzV6YVdkb2RITWdVRTlETVE4dwpEUVlEVlFRRERBWlRVMHdnUTBFd0hoY05NakV3TkRJeE1UTXpNVEExV2hjTk1qSXdOREl4TVRNek1UQTFXakJECk1Rc3dDUVlEVlFRR0V3SkRTREVPTUF3R0ExVUVDZ3dGUkhWbWNua3hGVEFUQmdOVkJBc01ERWx1YzJsbmFIUnoKSUZCUFF6RU5NQXNHQTFVRUF3d0VjbVZ6ZERDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQwpnZ0VCQUs2TnY1YVJ2MHd1V1lITkNibEtCY0RMbVRwMDdyZjJYSmdnakQ1Ymt3Y3NWTUtCdnZKRUFjMXh6Q1FPCldHaUZOR0p3cGV3UHVtbXpnR2I2R1hwU2FRQ2Qzakh2YlB6L3E2eDNRS0E1ZDQ3UjJid2xxcTUzNVNhNnZMdHcKVGxNcEtFZ1grUm10cmZSZ1BOMVFud1RuVTRhZ3hzNTU5VkRaTFFGUkxHMUExb3FabHUySGwwK1lFT3NiU05xdQpud0ozaGh3K0syMXdqZHZoWllTKzVmTUdTRi91WklRbEcrbEJFSHRyeis5WXN4bjhDR2RrUVhHMC9YOGUrS3NGCmVRVlBuRFBRZWR5eGFtU25CdFdYWnBwTkU0R3pYWk05c2oyMkxhN3Jhc1VPdDV1SVVVTVZSUmRSd1g2UnFuUVEKcEZwSVlPK0tQOEY4WjFPOVBSYTN0Z1hNRDJrQ0F3RUFBYU9CNURDQjRUQ0Jwd1lEVlIwUkJJR2ZNSUdjZ2dSeQpaWE4wZ2c1eVpYTjBMbU52Ym1ac2RXVnVkSUlTY21WemRDNWpiMjVtYkhWbGJuUXVjM1pqZ2lCeVpYTjBMbU52CmJtWnNkV1Z1ZEM1emRtTXVZMngxYzNSbGNpNXNiMk5oYklJUUtpNXlaWE4wTG1OdmJtWnNkV1Z1ZElJaUtpNXkKWlhOMExtTnZibVpzZFdWdWRDNXpkbU11WTJ4MWMzUmxjaTVzYjJOaGJJSVlLaTV5WlhOMExuTjJZeTVqYkhWegpkR1Z5TG14dlkyRnNNQWtHQTFVZEV3UUNNQUF3Q3dZRFZSMFBCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHCkFRVUZCd01CQmdnckJnRUZCUWNEQWpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWNZcEh2TVFpQVV1aXpwRUEKaGQvQTc0UmlkN2REeWtjSHozUmhKeUZ6N0piU3VBTTQwODhaeVgrVHBlYXd2MzVtem9BZ2h3N2xWVUdRV3E2eQp0TCtIVm0zbks5ajZ2ZDZXdGRybi9FMXJkSVV0VU5HcFVQT2pDbUp0THRHUUp6ZHVSMWkyczVudVFwZ3laWFoxCjZBRjNpeUtIZVZNdDN0QnZqTG1NckFXUTdLOXdxSlluUjFWU0ZFMTRJdmdObHhIODg0RG9tMnNidHJwTmh6UDkKTTFUSzUwdDg3NUVVcGU0TGtheVo1REZWYnFvc0p3UHRBdFFHNUZDeUVsYnFjc096Q2RoU0EwVXovemdqTHpCdwpBTGo5YmlDNUdxUFMrY2lYeFlMZFdzVjBaSnNjdkIrK1VtcDd2ZVh2dERwN2lmUEdnUHZkVEJrOHpKeWVqZ29BClhZeGtGUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcm8yL2xwRy9UQzVaZ2MwSnVVb0Z3TXVaT25UdXQvWmNtQ0NNUGx1VEJ5eFV3b0crCjhrUUJ6WEhNSkE1WWFJVTBZbkNsN0ErNmFiT0Fadm9aZWxKcEFKM2VNZTlzL1ArcnJIZEFvRGwzanRIWnZDV3EKcm5mbEpycTh1M0JPVXlrb1NCZjVHYTJ0OUdBODNWQ2ZCT2RUaHFER3pubjFVTmt0QVZFc2JVRFdpcG1XN1llWApUNWdRNnh0STJxNmZBbmVHSEQ0cmJYQ04yK0ZsaEw3bDh3WklYKzVraENVYjZVRVFlMnZQNzFpekdmd0laMlJCCmNiVDlmeDc0cXdWNUJVK2NNOUI1M0xGcVpLY0cxWmRtbWswVGdiTmRrejJ5UGJZdHJ1dHF4UTYzbTRoUlF4VkYKRjFIQmZwR3FkQkNrV2toZzc0by93WHhuVTcwOUZyZTJCY3dQYVFJREFRQUJBb0lCQVFDTmFaejdlTnhIOVl6aQpFYUI5RWpFUy9sOEc4dENyRE5YN0VQTk5XWmNGeXE1b1hnQzUrTXFWREVwY001c0FJbHBNSGdMdCtkZ0Y1anh5Ck1OQVBQMUIrQldlTGdQTUZESVNpVm9KdXk5L0dQdEJ0RXY3eUZZUDZHbkxvVDVYRTNhVWFzd0ZHQW1UWmhGWUsKM2xQVi95cTErTzdYUEFxNEV4blk1VkJldXBhVTlYNlFpUG0xYlNNSnloT0RGMVdxL2c2U3FJWW5MOVVYYUw2MgpUalRpdDFRN043VTUveFBtTW9zWDYxUDdzUm5rdE9PQTZPSVIxYWJIUnJLY083UWlPTkJaTXpIU1VKRlc1STJvCjNJbVdTYnl1dEFuVGZYdFo0dm9aRDlsMmc3V2VpZTQ1VENsSmJyN01UVVF1Zzc4MjhUckdXRVd5ZmVRR3dCbkkKSThFb2dsTjVBb0dCQU5xckdFcEhuaFhSaVB2UVF6VS9kYVorZVVnRzlxa1FqMDhtcVFYZjJTWllSdVpVeVBuUwpMOWlNUlFYNWQ1Zmt6dWEzdis2aWFaWEtsM2hYT2gyNWdqa2x5OGxaY2tKcUJjZU5EZjhoSDNmWnYxUk9ScVFuCmVRQncwYVJkL0p6MFY1aUZ2ZkZTeGdTaVo2cG9kZXVoTnFKT1VFZERXRTdoWTF0dVMwRTlIZVFuQW9HQkFNeGEKbjFCSGJOYnowb1RVd0N5QmowdFJqWklQaUU4ZjV4RFR4SDF0N1prMVg1SThHMW1qakdCTWQ2cmlpaEZ1TElYbQpaUUJDaGZ3ckoxdSs4dXZVY1dNcEtCMHM2eEdJTm9ORmNMY2FnUFcyWlRuMTV6ZDZsZFpKKzBCalpvOHI3Q24zCkMyd1VsYm9nUEZIdjQ5UWJRNzhUVDV3bm1xK2NqeUVLdjZ2ZjZkbnZBb0dBY1pZc3NQRVF5aTZrNUlGalYvYVYKNjUySTdJUkpmcnJPWm9RamlweWoxUXBJRWY5NndtS1BYZ0pISEhwZ3lETWYwck1pYlJoS2xuZTlSTkt5cXB3aApiQVFaSG9kckZkcXpFOXhPcC9lUnZCVU5FUUwwS1BNa0pMbDEvTmFoa1BwUHdqZSsyZXR3VnhueGxaQmJxTUYrCmVzTUphbXN1SlJOcEpDWmZ5d3l2U1VNQ2dZQkVMTmVKaU1xZXk2a245M0pGWnRQUFpOMitKTUJzNVUvSkpWMGcKRzFSeEVJVlozQU9qM0JRdzdGSGdDTVBYSE5KdHVYZG9wc2pjWCtrNWluS3dpcWRwVlltMGNnL2FRWDh1UERSbQpZY2swTUMyRk1LeDZyY0xmUXI4M3MvRzdRZ1AvM0JOTGMzS2dMYkR5QlA0VS9TT1UwM1J6dkNLM0E1d2NnZUdBCkRhdU9zUUtCZ0g1WEtuYzU0bWRaMzBnN0hhUlF4T1BvZWRKK21zVjlCQnpYR2hpVUFtcWhva2dpc2dVRmQ5Y24KczNCcVYxektSY1V1UEVhc3RsRTdtaVpUSFhESklOeGp5cDdLd0xtK2M0YVJzemhXTUF1NzRsbDZ5QWMwak91WAo0cnVBdVBrY0pIbzhhRSsvY3I5NXo1MlZRRDVVdTgwWDU5R21HMnFsZ015ZFRLKys5RGlkCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF47AJ+MgAFWC41MDkAAAUMMIIFCDCCAvACCQDAKTWpEAiIxTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJDSDEOMAwGA1UECgwFRHVmcnkxFTATBgNVBAsMDEluc2lnaHRzIFBPQzEQMA4GA1UEAwwHUm9vdCBDQTAeFw0yMTA0MTkyMTE1NTJaFw0yNDAyMDcyMTE1NTJaMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuslCZXjSmVZQcJnC1ZGXSZGpjxGJ8trpiuF6Y2HgaWktPsP3uE3GVzjvtAJnz70cpb4pOZEK3u3W+NuQLw+XlDi5XHyDuScLIyGv1J1YmeSRVAQ4jCXhBiqNQqy+1YaAJpl2InsK1FwlWiC4ZoHwfyBsV65PH8viA2HcrPBahLSscBgYJ4kMpBFjXc6eEyZWFO6eYN/3Gb8KmT3VhgBdDxfrlXrpJwDjAuWWWaZ1gxsNbe4d2BMXRcjAGwTzObtBqECrqbKNtzKVLNkCo5VO2SdIWmi9x9oD+eppuPOvMornNd32b8KWxPLucP1ZchhrcwGOWSYEkhNrLDhpX+tKUFM4d6EGdEv4yA4gIx4JN4MvBa6onM5HUmXGmvr0OkBnbsi/Zk77c/jmDkL53n/jG1V5BR3kLnt04h4xhyiK6ITNmNR5HNSdlzhKT/qdneqIYoAVIQvHC/wUA3B+B3uurhtr9a6cLYvya9WBANJgQDLcSXDa6zBlvaPz7XtROaMKkY4U6FCn0r7a12r154CYWwjxkYN4r7ebxw9wgVa0GkRFsMGVEZ/vCiB4q3LHvtAu4mRYBb1srMZ15fUTn0DQn5RL65FwTpt1BRfiUHhXuNWRDzdqyoRcihP25YTWPcyW4AZGFstTCZHoK/sSS6+/E7zVlvt3ZKrpyXhNNI3QG3sCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAeOoVwAXAko+XDdRePouvNdHRGFNEq67H/0F9yCCms5d7iMW1X5da37ukYe3TCWMYFP6J2HGBdbL8IZpnro4s2IPH2Ez0VgaY95N6iBkZEdClPshGKcrlEkgeCA5gA+IK28pl9OXJtf2U4DGL0LAGDun87+wPLuDRVkp4SdEzVYGRxy5Y0IiuoYipzpj1AJ7E9g3ulwGkWnt2Np/7paNwAmED3g/IHIdyw3fyVbHJgPjsFsRnuLJghwKs95WP92fagJYnuoj6RTo4bo6z6z1wYvQzyzxT1mpgThm0FyqSOeyuJ+f+tctJbnc6afMteloDKJBfAPNDN7cuQ8agaj7RcqkKKndOPOqxZ/G6TyqR1MDQg5mBlbWV7ejoBAQwhno6r8fNRejVVmkEZ7F+BLGSWJ2xPGwGcEHuoDvtAjSoVlrELSRVjOKUMFwiT9g7WArldkXWYZw7nzfifvo3KhLjYmOWZKhzk4+8NnyaslI5jCTev0wBEBJ5Xwj8me8/xK3Mu/VQjzIGO5bHTcTfXOCZcdQTQI65fA8yDidW7ZP2Dn4yMk4mrIjGxu3qj9daxKhvvCAOhbxyTZfCbci1bWEU5ochTu7csBX4MlYlhYpzitsfyndyFaL9WjX8up4y90PxOO3SClt0lltfy/NXHCZZj56cmKp6FctclPoiptTIRqJdoke9keGfFxrWEUmg0Pk60kFs3A== ---- -apiVersion: v1 -kind: Secret -metadata: - name: zookeeper-generated-jks - namespace: confluent -type: kubernetes.io/tls -data: - ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDRENDQXZBQ0NRREFLVFdwRUFpSXhUQU5CZ2txaGtpRzl3MEJBUXNGQURCR01Rc3dDUVlEVlFRR0V3SkQKU0RFT01Bd0dBMVVFQ2d3RlJIVm1jbmt4RlRBVEJnTlZCQXNNREVsdWMybG5hSFJ6SUZCUFF6RVFNQTRHQTFVRQpBd3dIVW05dmRDQkRRVEFlRncweU1UQTBNVGt5TVRFMU5USmFGdzB5TkRBeU1EY3lNVEUxTlRKYU1FWXhDekFKCkJnTlZCQVlUQWtOSU1RNHdEQVlEVlFRS0RBVkVkV1p5ZVRFVk1CTUdBMVVFQ3d3TVNXNXphV2RvZEhNZ1VFOUQKTVJBd0RnWURWUVFEREFkU2IyOTBJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQwpBZ0VBdXNsQ1pYalNtVlpRY0puQzFaR1hTWkdwanhHSjh0cnBpdUY2WTJIZ2FXa3RQc1AzdUUzR1Z6anZ0QUpuCno3MGNwYjRwT1pFSzN1M1crTnVRTHcrWGxEaTVYSHlEdVNjTEl5R3YxSjFZbWVTUlZBUTRqQ1hoQmlxTlFxeSsKMVlhQUpwbDJJbnNLMUZ3bFdpQzRab0h3ZnlCc1Y2NVBIOHZpQTJIY3JQQmFoTFNzY0JnWUo0a01wQkZqWGM2ZQpFeVpXRk82ZVlOLzNHYjhLbVQzVmhnQmREeGZybFhycEp3RGpBdVdXV2FaMWd4c05iZTRkMkJNWFJjakFHd1R6Ck9idEJxRUNycWJLTnR6S1ZMTmtDbzVWTzJTZElXbWk5eDlvRCtlcHB1UE92TW9ybk5kMzJiOEtXeFBMdWNQMVoKY2hocmN3R09XU1lFa2hOckxEaHBYK3RLVUZNNGQ2RUdkRXY0eUE0Z0l4NEpONE12QmE2b25NNUhVbVhHbXZyMApPa0JuYnNpL1prNzdjL2ptRGtMNTNuL2pHMVY1QlIza0xudDA0aDR4aHlpSzZJVE5tTlI1SE5TZGx6aEtUL3FkCm5lcUlZb0FWSVF2SEMvd1VBM0IrQjN1dXJodHI5YTZjTFl2eWE5V0JBTkpnUURMY1NYRGE2ekJsdmFQejdYdFIKT2FNS2tZNFU2RkNuMHI3YTEycjE1NENZV3dqeGtZTjRyN2VieHc5d2dWYTBHa1JGc01HVkVaL3ZDaUI0cTNMSAp2dEF1NG1SWUJiMXNyTVoxNWZVVG4wRFFuNVJMNjVGd1RwdDFCUmZpVUhoWHVOV1JEemRxeW9SY2loUDI1WVRXClBjeVc0QVpHRnN0VENaSG9LL3NTUzYrL0U3elZsdnQzWktycHlYaE5OSTNRRzNzQ0F3RUFBVEFOQmdrcWhraUcKOXcwQkFRc0ZBQU9DQWdFQWVPb1Z3QVhBa28rWERkUmVQb3V2TmRIUkdGTkVxNjdILzBGOXlDQ21zNWQ3aU1XMQpYNWRhMzd1a1llM1RDV01ZRlA2SjJIR0JkYkw4SVpwbnJvNHMySVBIMkV6MFZnYVk5NU42aUJrWkVkQ2xQc2hHCktjcmxFa2dlQ0E1Z0ErSUsyOHBsOU9YSnRmMlU0REdMMExBR0R1bjg3K3dQTHVEUlZrcDRTZEV6VllHUnh5NVkKMElpdW9ZaXB6cGoxQUo3RTlnM3Vsd0drV250Mk5wLzdwYU53QW1FRDNnL0lISWR5dzNmeVZiSEpnUGpzRnNSbgp1TEpnaHdLczk1V1A5MmZhZ0pZbnVvajZSVG80Ym82ejZ6MXdZdlF6eXp4VDFtcGdUaG0wRnlxU09leXVKK2YrCnRjdEpibmM2YWZNdGVsb0RLSkJmQVBORE43Y3VROGFnYWo3UmNxa0tLbmRPUE9xeFovRzZUeXFSMU1EUWc1bUIKbGJXVjdlam9CQVF3aG5vNnI4Zk5SZWpWVm1rRVo3RitCTEdTV0oyeFBHd0djRUh1b0R2dEFqU29WbHJFTFNSVgpqT0tVTUZ3aVQ5ZzdXQXJsZGtYV1ladzduemZpZnZvM0toTGpZbU9XWktoems0KzhObnlhc2xJNWpDVGV2MHdCCkVCSjVYd2o4bWU4L3hLM011L1ZRanpJR081YkhUY1RmWE9DWmNkUVRRSTY1ZkE4eURpZFc3WlAyRG40eU1rNG0KcklqR3h1M3FqOWRheEtodnZDQU9oYnh5VFpmQ2JjaTFiV0VVNW9jaFR1N2NzQlg0TWxZbGhZcHppdHNmeW5keQpGYUw5V2pYOHVwNHk5MFB4T08zU0NsdDBsbHRmeS9OWEhDWlpqNTZjbUtwNkZjdGNsUG9pcHRUSVJxST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - csr.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJRGJ6Q0NBbGNDQVFBd1NERUxNQWtHQTFVRUJoTUNRMGd4RGpBTUJnTlZCQW9UQlVSMVpuSjVNUlV3RXdZRApWUVFMRXd4SmJuTnBaMmgwY3lCUVQwTXhFakFRQmdOVkJBTVRDWHB2YjJ0bFpYQmxjakNDQVNJd0RRWUpLb1pJCmh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTWp2RlhTSDQ1YmRRb1NsUjNxekhkSjliWjJZZU5PZXhYYjcKSmdiOXpIKzlJT1BIaTFFOEJrbFZHRVFJOS82RUlNckVDaSsrWmRqS01Kc01jS25KazBBc2VjU3BlRVdhS0dhMQo0TEwyVTg2YzNqRHB3bG45SUxFWmd3OTNEWXBpYmNOcEFsbW5BUmVOZDdoaFczdStpKzVsS0JGT2dXbVR3WHhsCktNOUZhL1BlbGFZc1ZXTVlpa1ZGbmNRNjg3WnpWejZqenlsb2p1QjJwK3JudHZ0Vkg2RFpGQ2xUekdsY2xJSnIKRXRFNHVNMm1DbW9BSmVRUHhDVWxWZmJGbS9GYUlSbFJ5cUE4WUZQT1gxUmlYdlJ0dXBxblh0eHhaTWhIWkRyTQpmOXBpaTRKL2lmQUx0RTIvZFB2ekViclQ5UzM2dkVKekphRVFML2lhVjQ0RFR5YTlycFVDQXdFQUFhQ0I0VENCCjNnWUpLb1pJaHZjTkFRa09NWUhRTUlITk1JSEtCZ05WSFJFRWdjSXdnYitDQ1hwdmIydGxaWEJsY29JVGVtOXYKYTJWbGNHVnlMbU52Ym1ac2RXVnVkSUlYZW05dmEyVmxjR1Z5TG1OdmJtWnNkV1Z1ZEM1emRtT0NKWHB2YjJ0bApaWEJsY2k1amIyNW1iSFZsYm5RdWMzWmpMbU5zZFhOMFpYSXViRzlqWVd5Q0ZTb3VlbTl2YTJWbGNHVnlMbU52CmJtWnNkV1Z1ZElJbktpNTZiMjlyWldWd1pYSXVZMjl1Wm14MVpXNTBMbk4yWXk1amJIVnpkR1Z5TG14dlkyRnMKZ2gwcUxtTnZibVpzZFdWdWRDNXpkbU11WTJ4MWMzUmxjaTVzYjJOaGJEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQwpBUUVBSEJqN2x0Uk9Nc1FVTWlVOUZZUFRQSTJ5NW1iQlk3WGNZNk9tVUE0ampLZ1hZVFlrSU5Cc1htcFBZTGw1CmtRTVR0VTNFSUZrdklwUEVLUE0vTFFLSjNlcHkwUTMybmh6TWFTaTdUdWg2WmpyUzRaMGxvVmpRZU9TTzJ6QVcKaGgvdU15TFBrWUlTbndZbVpqeSsrMDBYeDhRYnlNMjZtVE5FNUt4d2dNaU9HbG1ON2tvU1JGWTdob3BmcWJWeApGUVBGMUpyNm5DTFV0bTRFMVZvN0tMQVJpbGo3QXVmSGNoYVpmZ3RiS2U5Q25mQTc5cTJpYkdtbDNncDEycTZVClZkUWVLUzU1eGJvUDdBc0VycmtwR3UzQm9xMjk0RGJtTW1lV3ovYW9IdDl4N29vRFBGNW9TYlF4eVRkcUNmWXcKSnpNY3Q1Z2l0cjluRGRwNFc5WkxSbEdMWlE9PQotLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0K - jksPassword.txt: amtzUGFzc3dvcmQ9bXlzdG9yZXBhc3N3b3Jk - keystore.jks: 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 - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZLRENDQXhDZ0F3SUJBZ0lRWjJrbnV1REhVdkJ6aUprN0tLQnlmakFOQmdrcWhraUc5dzBCQVFzRkFEQkcKTVFzd0NRWURWUVFHRXdKRFNERU9NQXdHQTFVRUNnd0ZSSFZtY25reEZUQVRCZ05WQkFzTURFbHVjMmxuYUhSegpJRkJQUXpFUU1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRBZUZ3MHlNVEEwTWpjd09USTNNVGxhRncweU1qQTBNakl3Ck9USTNNVGxhTUVneEN6QUpCZ05WQkFZVEFrTklNUTR3REFZRFZRUUtFd1ZFZFdaeWVURVZNQk1HQTFVRUN4TU0KU1c1emFXZG9kSE1nVUU5RE1SSXdFQVlEVlFRREV3bDZiMjlyWldWd1pYSXdnZ0VpTUEwR0NTcUdTSWIzRFFFQgpBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREk3eFYwaCtPVzNVS0VwVWQ2c3gzU2ZXMmRtSGpUbnNWMit5WUcvY3gvCnZTRGp4NHRSUEFaSlZSaEVDUGYraENES3hBb3Z2bVhZeWpDYkRIQ3B5Wk5BTEhuRXFYaEZtaWhtdGVDeTlsUE8Kbk40dzZjSlovU0N4R1lNUGR3MktZbTNEYVFKWnB3RVhqWGU0WVZ0N3ZvdnVaU2dSVG9GcGs4RjhaU2pQUld2egozcFdtTEZWakdJcEZSWjNFT3ZPMmMxYytvODhwYUk3Z2RxZnE1N2I3VlIrZzJSUXBVOHhwWEpTQ2F4TFJPTGpOCnBncHFBQ1hrRDhRbEpWWDJ4WnZ4V2lFWlVjcWdQR0JUemw5VVlsNzBiYnFhcDE3Y2NXVElSMlE2ekgvYVlvdUMKZjRud0M3Uk52M1Q3OHhHNjAvVXQrcnhDY3lXaEVDLzRtbGVPQTA4bXZhNlZBZ01CQUFHamdnRU9NSUlCQ2pBTwpCZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3RUdDQ3NHQVFVRkJ3TUNNQXdHCkExVWRFd0VCL3dRQ01BQXdnY29HQTFVZEVRU0J3akNCdjRJSmVtOXZhMlZsY0dWeWdoTjZiMjlyWldWd1pYSXUKWTI5dVpteDFaVzUwZ2hkNmIyOXJaV1Z3WlhJdVkyOXVabXgxWlc1MExuTjJZNElsZW05dmEyVmxjR1Z5TG1OdgpibVpzZFdWdWRDNXpkbU11WTJ4MWMzUmxjaTVzYjJOaGJJSVZLaTU2YjI5clpXVndaWEl1WTI5dVpteDFaVzUwCmdpY3FMbnB2YjJ0bFpYQmxjaTVqYjI1bWJIVmxiblF1YzNaakxtTnNkWE4wWlhJdWJHOWpZV3lDSFNvdVkyOXUKWm14MVpXNTBMbk4yWXk1amJIVnpkR1Z5TG14dlkyRnNNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJ6K1loYwozeWEwNTg1ajcvSVJVcFFTTFRWa0xTcklTRFIrdWwwZEFtTjVwNmZLY3JLOVVSdEJRZERoUlBvNS9naExoRFVXCjZld3NLK3BZd3Q3U0dRV2E2UG4yd3I0SzNBcCtybHh6YU5PV3JVRUFMSk1rSCtsNU93a2RRdjhKQXA2Y3lWRWsKd2xMcmkxRVBOZ2gyZDFCSWJnelF0R3QrZTZMRHFlUThnRTJGdlJSM2lHL2NXN2hiWk1vQU1ZWVoxL0YzbUFZTApBSHFqaUV5blQvUmRxUDB5U3psK3BDclVaendCNHNOT2ZEd2FCbVpUTUc0ZlR2V3NuRXptY1EwQ1hNL2FadjhXCnB0dkNaaVJrQ3NDeVZNV0g2ZUI5aHIrbnRqTmpHd3F0TG9DWGJZaWR4akNUYnB1engvUjh5ZXVVS1dQL2dFbkQKbytLeUU5amFuc2U0S0cwc1NSNVFiN3doTUZndFI0UzhlV3BuY1B0eGhodTF2QmlTcE0xSEhYcXcxN2R4Z1lGSwprTzF0UC83ejBKUThaMVlRcHlSb29JcGZINHRoTEx5Y211WW5qSVNlNkxGRm1CMnEveCttMFZwdG1vSXFOQU1ZCmtYV0N2L0dDaHZLRFhhVHZtc1RxaElpdG1sOGI5OEJxQkZjQU5GREJaVCtTdTBveStIcVFtSGNjcnduR3k1Z0cKeUd3cmpkOTBHQ2JkajVvSzE1THpSSjJKa2FSaDZVemNzc3pGdHJ1MERZbVUrSXhNeEVyWjRXRE9PSEwxbTdpeApLMFV0NmUxczBCUlFtMVA3RkUvNWpXRFI3V3FDNzNPbXNmM1dGMWZwdlpLM0pYY3dpS1Z1YXRuYmRjMWdVUmtmCmR3ZUtveGU0TElVZ0tIc2lXV3BndkZWMyt2a1dWUkVVZEs2cGdRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRREk3eFYwaCtPVzNVS0UKcFVkNnN4M1NmVzJkbUhqVG5zVjIreVlHL2N4L3ZTRGp4NHRSUEFaSlZSaEVDUGYraENES3hBb3Z2bVhZeWpDYgpESENweVpOQUxIbkVxWGhGbWlobXRlQ3k5bFBPbk40dzZjSlovU0N4R1lNUGR3MktZbTNEYVFKWnB3RVhqWGU0CllWdDd2b3Z1WlNnUlRvRnBrOEY4WlNqUFJXdnozcFdtTEZWakdJcEZSWjNFT3ZPMmMxYytvODhwYUk3Z2RxZnEKNTdiN1ZSK2cyUlFwVTh4cFhKU0NheExST0xqTnBncHFBQ1hrRDhRbEpWWDJ4WnZ4V2lFWlVjcWdQR0JUemw5VQpZbDcwYmJxYXAxN2NjV1RJUjJRNnpIL2FZb3VDZjRud0M3Uk52M1Q3OHhHNjAvVXQrcnhDY3lXaEVDLzRtbGVPCkEwOG12YTZWQWdNQkFBRUNnZ0VBYWh3ZjkyNy9tQjcyVHJnOW5DVlUzV0NSYjRVaVlaYlo3ckJJYjY2OXZNTnkKeC9jTHNuV0JXRjZRdHZVSmlhWGE3MWxCaTk3L1I5SFdnenE1a0dBNzI4cmc3eU1UdWFYa0tnRm9UUG5hWGlUbgpEV3VVMEJMbG5jQzhQb0YvYkJINHB4WWdRSm41OEtjcmp2b1M1ckZFa2p0blFtUno0UDQvVW1MVmYwZkk3M292ClkrUll3UCtXVjhXcHBlbjdETk00VE41T2dsVTZQUVNpcDhhRXdHWUxjZS9BTVV4TnhrWjZsVmtFZ2NLaStWdXYKTTI4YUZiV1A0bk5zWjEwQnIvZTVYSHluakV6MkxtZ1J3RGdYMTloUy9VYWc3KzFqTGwrNjMzZGhNTkR1U0lQZApOdm9rNlVSWGZPbVh2dnpBd1dvWnU1b3krSUtGL3pJSVNQNVdCT0xGb1FLQmdRRGNFT3JMUWw5UUIyZkxJYldCCjRhUU90Y0w3U3hRRGpPRGxPeHFCbjJIUzlFbFV2T1NjNklPVmp3WUlscmRBemh2VFM3d2FERExpbFQ5QzhKSngKRUdxV3IxNCt2bkZSbGdZYkgrU09kOGxOczFETklTMHFyZ1FPNlo2NjcvUW5JMjUwLzhsWitNVGFNMEk5YThhaQp5T2JtSjBRZzQwUDVpT3RCYjlVaFlRMVUyUUtCZ1FEcHZtb1hrNXBDOEJLelJJUTlQWm1RNUFUQ1VYai8yeE5ICi81VmZZYmJQQSt6U2ZoS0NUcnRNWGtMTStlMzMvcHBmbWNiL1c4M2wzOW1Kb01Vd2tTdnk2bjZ5YjJHYWdOL0wKZkRTc1ZxNFlLdUhiN1FmVWp6ZGtqNHBVVTJabkZTMkVmaDFhc3VHR0F2TEN0dklMUGh5UVNmS1BLMlRyRmY3OQo1STNFNDhCaUhRS0JnUUNmS2YwbmxaR3FLREVCMGhlZElMMnZoZmJJR2IwWDlFU1VodkxjM1pHN0tjUC83YjdMClhjQU40NnZSZW5DQUJwSkplSFZMd1pic0dsWHU3R0IrTmdsaGd1VC9MRzU1TzdDZTNhcEpBSW93RUlsWVU2NS8KTit6bmZFQzVvK05LaTIzUVlWQVlLcnoxdEMwc2owN1RYY3JpbTNQQzlaeXNWa01ReVBtMWNxUlp3UUtCZ0VWUgpGWTgyVTNua1RmZGhxMEdxQWQ5bzcweGM4dUFWTEt1ZVRNTERiSDRKc1BKZk5zZno1ekZuaHJIWXNFeHA4WWZHClI3QTBubU84Tlh2TjlJeEprTm54MW02OS94amRmUUNRTGVLcHRla3UxbG5zK2ZSOElEWXZKeHVJdkFaM3prN0wKUTVOQkZ3WXgyNklJdE5ER3M1dktnaWNZL0UyRzhWNkRwOU1xbzBPMUFvR0FKUEU1M0t0NnFDazhJT1BhYkN2ZwpHVHJXbGMvOVN4b3prb1NyMzZIc3JaZHcva2wvRHhMc0tnL0JsK0swb3NVMy9oZTl0N2tRUWFxTVNqWUp5WG1oCndvOUFjMnpWcHR4SzZtWStaNklmQ3ord21kVW1VVSt3cnNIbFoyWlNxaVdUMHZ4Ujl0a1d0eHVUWTZTZHk3NGsKMlJ5UmdNVHo0UC9FV2pzRkVubnJDMDg9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K - truststore.jks: /u3+7QAAAAIAAAABAAAAAgACY2EAAAF5EqeFjwAEWDUwOQAABQwwggUIMIIC8AIJAMApNakQCIjFMA0GCSqGSIb3DQEBCwUAMEYxCzAJBgNVBAYTAkNIMQ4wDAYDVQQKDAVEdWZyeTEVMBMGA1UECwwMSW5zaWdodHMgUE9DMRAwDgYDVQQDDAdSb290IENBMB4XDTIxMDQxOTIxMTU1MloXDTI0MDIwNzIxMTU1MlowRjELMAkGA1UEBhMCQ0gxDjAMBgNVBAoMBUR1ZnJ5MRUwEwYDVQQLDAxJbnNpZ2h0cyBQT0MxEDAOBgNVBAMMB1Jvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6yUJleNKZVlBwmcLVkZdJkamPEYny2umK4XpjYeBpaS0+w/e4TcZXOO+0AmfPvRylvik5kQre7db425AvD5eUOLlcfIO5JwsjIa/UnViZ5JFUBDiMJeEGKo1CrL7VhoAmmXYiewrUXCVaILhmgfB/IGxXrk8fy+IDYdys8FqEtKxwGBgniQykEWNdzp4TJlYU7p5g3/cZvwqZPdWGAF0PF+uVeuknAOMC5ZZZpnWDGw1t7h3YExdFyMAbBPM5u0GoQKupso23MpUs2QKjlU7ZJ0haaL3H2gP56mm4868yiuc13fZvwpbE8u5w/VlyGGtzAY5ZJgSSE2ssOGlf60pQUzh3oQZ0S/jIDiAjHgk3gy8FrqiczkdSZcaa+vQ6QGduyL9mTvtz+OYOQvnef+MbVXkFHeQue3TiHjGHKIrohM2Y1Hkc1J2XOEpP+p2d6ohigBUhC8cL/BQDcH4He66uG2v1rpwti/Jr1YEA0mBAMtxJcNrrMGW9o/Pte1E5owqRjhToUKfSvtrXavXngJhbCPGRg3ivt5vHD3CBVrQaREWwwZURn+8KIHircse+0C7iZFgFvWysxnXl9ROfQNCflEvrkXBOm3UFF+JQeFe41ZEPN2rKhFyKE/blhNY9zJbgBkYWy1MJkegr+xJLr78TvNWW+3dkqunJeE00jdAbewIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB46hXABcCSj5cN1F4+i6810dEYU0Srrsf/QX3IIKazl3uIxbVfl1rfu6Rh7dMJYxgU/onYcYF1svwhmmeujizYg8fYTPRWBpj3k3qIGRkR0KU+yEYpyuUSSB4IDmAD4grbymX05cm1/ZTgMYvQsAYO6fzv7A8u4NFWSnhJ0TNVgZHHLljQiK6hiKnOmPUAnsT2De6XAaRae3Y2n/ulo3ACYQPeD8gch3LDd/JVscmA+OwWxGe4smCHAqz3lY/3Z9qAlie6iPpFOjhujrPrPXBi9DPLPFPWamBOGbQXKpI57K4n5/61y0ludzpp8y16WgMokF8A80M3ty5DxqBqPtFyqQoqd0486rFn8bpPKpHUwNCDmYGVtZXt6OgEBDCGejqvx81F6NVWaQRnsX4EsZJYnbE8bAZwQe6gO+0CNKhWWsQtJFWM4pQwXCJP2DtYCuV2RdZhnDufN+J++jcqEuNiY5ZkqHOTj7w2fJqyUjmMJN6/TAEQEnlfCPyZ7z/Ercy79VCPMgY7lsdNxN9c4Jlx1BNAjrl8DzIOJ1btk/YOfjIyTiasiMbG7eqP11rEqG+8IA6FvHJNl8JtyLVtYRTmhyFO7tywFfgyViWFinOK2x/Kd3IVov1aNfy6njL3Q/E47dIKW3SWW1/L81ccJlmPnpyYqnoVy1yU+iKm1MhGonq6PS2Q0EZUlgvokUMUzxA3ONO3 ---- \ No newline at end of file diff --git a/apps/base/kafka/control-centre.yaml b/apps/base/kafka/control-centre.yaml deleted file mode 100644 index 6c5e561..0000000 --- a/apps/base/kafka/control-centre.yaml +++ /dev/null @@ -1,46 +0,0 @@ ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ControlCenter -metadata: - name: controlcenter - namespace: confluent -spec: - replicas: 1 - podTemplate: - probe: - liveness: - periodSeconds: 10 - failureThreshold: 60 - timeoutSeconds: 5 - readiness: - periodSeconds: 10 - failureThreshold: 60 - timeoutSeconds: 5 - image: - application: confluentinc/cp-enterprise-control-center-operator:6.1.1.0 - init: confluentinc/cp-init-container-operator:6.1.1.0 - dataVolumeCapacity: 20Gi - authorization: - type: rbac - tls: - autoGeneratedCerts: true - dependencies: - kafka: - bootstrapEndpoint: kafka.confluent.svc.cluster.local:9071 - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - mds: - endpoint: https://kafka.confluent.svc.cluster.local:8090 - tokenKeyPair: - secretRef: mds-token - authentication: - type: bearer - bearer: - secretRef: c3-mds-client - tls: - enabled: true ---- diff --git a/apps/base/kafka/kafka-connect.yaml b/apps/base/kafka/kafka-connect.yaml deleted file mode 100644 index e43236b..0000000 --- a/apps/base/kafka/kafka-connect.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -apiVersion: platform.confluent.io/v1beta1 -kind: Connect -metadata: - name: connect - namespace: confluent -spec: - replicas: 1 - image: - application: confluentinc/cp-server-connect-operator:6.1.1.0 - init: confluentinc/cp-init-container-operator:6.1.1.0 - tls: - autoGeneratedCerts: true - authorization: - type: rbac - dependencies: - kafka: - bootstrapEndpoint: kafka.confluent.svc.cluster.local:9071 - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - mds: - authentication: - type: bearer - bearer: - secretRef: connect-mds-client - endpoint: https://kafka.confluent.svc.cluster.local:8090 - tls: - enabled: true - tokenKeyPair: - secretRef: mds-token - configOverrides: - server: - - group.id=connect-cluster - - config.storage.topic=_confluent-connect-configs - - offset.storage.topic=_confluent-connect-offsets - - status.storage.topic=_confluent-connect-status - # - rest.extension.classes=io.confluent.connect.security.ConnectSecurityExtension,io.confluent.connect.secretregistry.ConnectSecretRegistryExtension ---- \ No newline at end of file diff --git a/apps/base/kafka/kafka.yaml b/apps/base/kafka/kafka.yaml deleted file mode 100644 index 0eb6c0e..0000000 --- a/apps/base/kafka/kafka.yaml +++ /dev/null @@ -1,124 +0,0 @@ ---- -apiVersion: platform.confluent.io/v1beta1 -kind: Kafka -metadata: - name: kafka - namespace: confluent -spec: - replicas: 3 - image: - application: confluentinc/cp-server-operator:6.1.1.0 - init: confluentinc/cp-init-container-operator:6.1.1.0 - dataVolumeCapacity: 40Gi - tls: - autoGeneratedCerts: true - listeners: - # internal listener is used to access the Kafka cluster from the same Kubernetes cluster, - # i.e. in the svc.cluster.local - internal: - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - # external listener exposes the Kafka bootstrap and brokers as LB endpoints - external: - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - authorization: - type: rbac - superUsers: - - User:kafka - services: - mds: - tls: - enabled: true - tokenKeyPair: - secretRef: mds-token - provider: - type: ldap - ldap: - address: ldap://ldap.tools.svc.cluster.local:389 - authentication: - type: simple - simple: - secretRef: credential - configurations: - groupNameAttribute: cn - groupObjectClass: group - groupMemberAttribute: member - groupMemberAttributePattern: CN=(.*),DC=test,DC=com - groupSearchBase: dc=test,dc=com - userNameAttribute: cn - userMemberOfAttributePattern: CN=(.*),DC=test,DC=com - userObjectClass: organizationalRole - userSearchBase: dc=test,dc=com - configOverrides: - server: - # the LDAP lookup is set by default to ONE_LEVEL - - ldap.user.search.scope=2 - - ldap.search.mode=GROUPS - - # Overwrite the default settings on the INTERNAL listener - - listener.name.internal.sasl.enabled.mechanisms=PLAIN,OAUTHBEARER - - listener.name.internal.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required; - - listener.name.internal.plain.sasl.server.callback.handler.class=io.confluent.security.auth.provider.ldap.LdapAuthenticateCallbackHandler - - listener.name.internal.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required publicKeyPath="/mnt/secrets/mds-token/mdsPublicKey.pem"; - - listener.name.internal.oauthbearer.sasl.login.callback.handler.class=io.confluent.kafka.server.plugins.auth.token.TokenBearerServerLoginCallbackHandler - - listener.name.internal.oauthbearer.sasl.server.callback.handler.class=io.confluent.kafka.server.plugins.auth.token.TokenBearerValidatorCallbackHandler - - # Overwrite the default settings on the EXTERNAL listener - - listener.name.external.sasl.enabled.mechanisms=PLAIN,OAUTHBEARER - - listener.name.external.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required; - - listener.name.external.plain.sasl.server.callback.handler.class=io.confluent.security.auth.provider.ldap.LdapAuthenticateCallbackHandler - - listener.name.external.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required publicKeyPath="/mnt/secrets/mds-token/mdsPublicKey.pem"; - - listener.name.external.oauthbearer.sasl.login.callback.handler.class=io.confluent.kafka.server.plugins.auth.token.TokenBearerServerLoginCallbackHandler - - listener.name.external.oauthbearer.sasl.server.callback.handler.class=io.confluent.kafka.server.plugins.auth.token.TokenBearerValidatorCallbackHandler - - # Overwrite the default settings on the REPLICATION listener - - listener.name.replication.sasl.enabled.mechanisms=PLAIN - - listener.name.replication.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="${file:/mnt/secrets/credential/plain.txt:username}" password="${file:/mnt/secrets/credential/plain.txt:password}"; - - listener.name.replication.plain.sasl.server.callback.handler.class=io.confluent.security.auth.provider.ldap.LdapAuthenticateCallbackHandler - - # log4j: - # - log4j.logger.io.confluent.security.auth.provider.ldap.LdapGroupManager=DEBUG - dependencies: - kafkaRest: - authentication: - type: bearer - bearer: - secretRef: mds-client - zookeeper: - endpoint: zookeeper.confluent.svc.cluster.local:2182 - authentication: - type: digest - jaasConfig: - secretRef: credential - tls: - enabled: true - metricReporter: - enabled: true - bootstrapEndpoint: kafka.confluent.svc.cluster.local:9071 - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true ---- -apiVersion: platform.confluent.io/v1beta1 -kind: KafkaRestClass -metadata: - name: default - namespace: confluent -spec: - kafkaRest: - authentication: - type: bearer - bearer: - secretRef: rest-credential \ No newline at end of file diff --git a/apps/base/kafka/ksqldb.yaml b/apps/base/kafka/ksqldb.yaml deleted file mode 100644 index 3d7708e..0000000 --- a/apps/base/kafka/ksqldb.yaml +++ /dev/null @@ -1,39 +0,0 @@ ---- -apiVersion: platform.confluent.io/v1beta1 -kind: KsqlDB -metadata: - name: ksqldb - namespace: confluent -spec: - replicas: 1 - image: - application: confluentinc/cp-ksqldb-server-operator:6.1.1.0 - init: confluentinc/cp-init-container-operator:6.1.1.0 - dataVolumeCapacity: 10Gi - tls: - autoGeneratedCerts: true - authorization: - type: rbac - dependencies: - kafka: - bootstrapEndpoint: kafka.confluent.svc.cluster.local:9071 - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - mds: - authentication: - type: bearer - bearer: - secretRef: ksqldb-mds-client - endpoint: https://kafka.confluent.svc.cluster.local:8090 - tls: - enabled: true - tokenKeyPair: - secretRef: mds-token - configOverrides: - server: - - ksql.service.id=ksqldb-cluster ---- \ No newline at end of file diff --git a/apps/base/kafka/rest-proxy.yaml b/apps/base/kafka/rest-proxy.yaml deleted file mode 100644 index 03132f5..0000000 --- a/apps/base/kafka/rest-proxy.yaml +++ /dev/null @@ -1,216 +0,0 @@ ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - annotations: - prometheus.io/port: "7778" - prometheus.io/scrape: "true" - labels: - type: rest - name: rest - namespace: confluent -spec: - podManagementPolicy: Parallel - replicas: 1 - selector: - matchLabels: - app: rest - clusterId: confluent - type: rest - serviceName: rest - template: - metadata: - labels: - app: rest - clusterId: confluent - type: rest - name: rest - spec: - containers: - - name: rest - image: confluentinc/cp-kafka-rest:6.1.1-1-ubi8 - imagePullPolicy: IfNotPresent - - env: - - name: HOST_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - - name: KAFKA_REST_CONFIG_PROVIDERS - value: file - - name: KAFKA_REST_CONFIG_PROVIDERS_FILE_CLASS - value: org.apache.kafka.common.config.provider.FileConfigProvider - - # duplicated for the proper generation of /etc/kafka-rest/admin.properties - - name: KAFKA_REST_CLIENT_CONFIG_PROVIDERS - value: file - - name: KAFKA_REST_CLIENT_CONFIG_PROVIDERS_FILE_CLASS - value: org.apache.kafka.common.config.provider.FileConfigProvider - - - name: KAFKA_REST_BOOTSTRAP_SERVERS - value: kafka.confluent.svc.cluster.local:9071 - - name: KAFKA_REST_CLIENT_SECURITY_PROTOCOL - value: SASL_SSL - # - name: KAFKA_REST_CLIENT_SASL_MECHANISM - # value: OAUTHBEARER - # - name: KAFKA_REST_CLIENT_SASL_JAAS_CONFIG - # value: org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required metadataServerUrls="https://kafka.confluent.svc.cluster.local:8090" username="${file:/mnt/secrets/rest/bearer.txt:username}" password="${file:/mnt/secrets/rest/bearer.txt:password}"; - # - name: KAFKA_REST_CLIENT_SASL_LOGIN_CALLBACK_HANDLER_CLASS - # value: io.confluent.kafka.clients.plugins.auth.token.TokenUserLoginCallbackHandler - - name: KAFKA_REST_CLIENT_SASL_MECHANISM - value: PLAIN - - name: KAFKA_REST_CLIENT_SASL_JAAS_CONFIG - value: org.apache.kafka.common.security.plain.PlainLoginModule required username="${file:/mnt/secrets/rest/plain.txt:username}" password="${file:/mnt/secrets/rest/plain.txt:password}"; - - name: KAFKA_REST_CLIENT_SSL_KEY_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_CLIENT_SSL_KEYSTORE_LOCATION - value: /mnt/sslcerts/keystore.jks - - name: KAFKA_REST_CLIENT_SSL_KEYSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_CLIENT_SSL_TRUSTSTORE_LOCATION - value: /mnt/sslcerts/truststore.jks - - name: KAFKA_REST_CLIENT_SSL_TRUSTSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - - name: KAFKA_REST_LISTENERS - value: https://0.0.0.0:8080,http://localhost:9080 - - name: KAFKA_REST_SSL_ENABLED_PROTOCOLS - value: TLSv1.2 - - name: KAFKA_REST_SSL_KEY_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_SSL_KEYSTORE_LOCATION - value: /mnt/sslcerts/keystore.jks - - name: KAFKA_REST_SSL_KEYSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_SSL_TRUSTSTORE_LOCATION - value: /mnt/sslcerts/truststore.jks - - name: KAFKA_REST_SSL_TRUSTSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - - name: KAFKA_REST_SCHEMA_REGISTRY_URL - value: https://registry.confluent.svc.cluster.local:8081 - - name: KAFKA_REST_SCHEMA_REGISTRY_HTTPS_SSL_KEY_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_SCHEMA_REGISTRY_HTTPS_SSL_KEYSTORE_LOCATION - value: /mnt/sslcerts/keystore.jks - - name: KAFKA_REST_SCHEMA_REGISTRY_HTTPS_SSL_KEYSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - name: KAFKA_REST_SCHEMA_REGISTRY_HTTPS_SSL_TRUSTSTORE_LOCATION - value: /mnt/sslcerts/truststore.jks - - name: KAFKA_REST_SCHEMA_REGISTRY_HTTPS_SSL_TRUSTSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - - name: KAFKA_REST_CONFLUENT_REST_AUTH_PROPAGATE_METHOD - value: JETTY_AUTH - - - name: KAFKA_REST_KAFKA_REST_RESOURCE_EXTENSION_CLASS - value: io.confluent.kafkarest.security.KafkaRestSecurityResourceExtension - - name: KAFKA_REST_REST_SERVLET_INITIALIZOR_CLASSES - value: io.confluent.common.security.jetty.initializer.InstallBearerOrBasicSecurityHandler - - - name: KAFKA_REST_PUBLIC_KEY_PATH - value: /mnt/secrets/rest/mdsPublicKey.pem - - - name: KAFKA_REST_CONFLUENT_METADATA_BOOTSTRAP_SERVER_URLS - value: https://kafka.confluent.svc.cluster.local:8090 - - name: KAFKA_REST_CONFLUENT_METADATA_HTTP_AUTH_CREDENTIALS_PROVIDER - value: BASIC - - name: KAFKA_REST_CONFLUENT_METADATA_BASIC_AUTH_USER_INFO - value: ${file:/mnt/secrets/rest/basic.txt:username}:${file:/mnt/secrets/rest/basic.txt:password} - - name: KAFKA_REST_CONFLUENT_METADATA_SSL_TRUSTSTORE_LOCATION - value: /mnt/sslcerts/truststore.jks - - name: KAFKA_REST_CONFLUENT_METADATA_SSL_TRUSTSTORE_PASSWORD - value: ${file:/mnt/sslcerts/jksPassword.txt:jksPassword} - - startupProbe: - exec: - command: - - curl - - http://localhost:9080/ - failureThreshold: 60 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - - livenessProbe: - exec: - command: - - curl - - http://localhost:9080/ - failureThreshold: 5 - initialDelaySeconds: 10 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 5 - - ports: - - containerPort: 8080 - name: external - protocol: TCP - - containerPort: 9080 - name: internal - protocol: TCP - - containerPort: 7203 - name: jmx - protocol: TCP - - containerPort: 7777 - name: jolokia - protocol: TCP - - containerPort: 7778 - name: prometheus - protocol: TCP - - volumeMounts: - - mountPath: /mnt/sslcerts - name: sslcerts - - mountPath: /mnt/secrets/rest - name: credentials - - dnsPolicy: ClusterFirst - restartPolicy: Always - - volumes: - - name: sslcerts - secret: - defaultMode: 420 - secretName: rest-sslcerts - - name: credentials - secret: - defaultMode: 420 - secretName: rest - - updateStrategy: - type: RollingUpdate ---- -apiVersion: v1 -kind: Service -metadata: - labels: - type: rest - name: rest - namespace: confluent -spec: - clusterIP: None - ports: - - name: external - port: 8080 - protocol: TCP - targetPort: 8080 - publishNotReadyAddresses: false - selector: - app: rest - clusterId: confluent - type: rest - sessionAffinity: ClientIP - type: ClusterIP ---- diff --git a/apps/base/kafka/schema-registry.yaml b/apps/base/kafka/schema-registry.yaml deleted file mode 100644 index 3047bbf..0000000 --- a/apps/base/kafka/schema-registry.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -apiVersion: platform.confluent.io/v1beta1 -kind: SchemaRegistry -metadata: - name: registry - namespace: confluent -spec: - replicas: 1 - image: - application: confluentinc/cp-schema-registry-operator:6.1.1.0 - init: confluentinc/cp-init-container-operator:6.1.1.0 - tls: - autoGeneratedCerts: true - authorization: - type: rbac - dependencies: - kafka: - bootstrapEndpoint: kafka.confluent.svc.cluster.local:9071 - authentication: - type: plain - jaasConfig: - secretRef: credential - tls: - enabled: true - mds: - authentication: - type: bearer - bearer: - secretRef: sr-mds-client - endpoint: https://kafka.confluent.svc.cluster.local:8090 - tls: - enabled: true - tokenKeyPair: - secretRef: mds-token - configOverrides: - server: - - leader.eligibility=true - - inter.instance.protocol=https - # operator changes the defaults - - schema.registry.group.id=schema-registry - - kafkastore.topic=_schemas ---- \ No newline at end of file diff --git a/apps/base/rolebindings/connect/connect-base.yaml b/apps/base/rolebindings/connect/connect-base.yaml deleted file mode 100644 index 9416914..0000000 --- a/apps/base/rolebindings/connect/connect-base.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: connect-cluster-base - namespace: confluent -spec: - clustersScopeByIds: - connectClusterId: confluent.connect - principal: - name: connect - type: user - role: SecurityAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: connect-resources-base - namespace: confluent -spec: - principal: - name: connect - type: user - resourcePatterns: - - name: confluent.connect - patternType: LITERAL - resourceType: Group - - name: confluent.connect- - patternType: PREFIXED - resourceType: Topic - role: ResourceOwner ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: connect-monitoring-base - namespace: confluent -spec: - principal: - name: connect - type: user - resourcePatterns: - - name: _confluent-monitoring - patternType: PREFIXED - resourceType: Topic - role: DeveloperWrite - - diff --git a/apps/base/rolebindings/connect/connect-groups.yaml b/apps/base/rolebindings/connect/connect-groups.yaml deleted file mode 100644 index 5a3b584..0000000 --- a/apps/base/rolebindings/connect/connect-groups.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: connect-groups - namespace: confluent -spec: - principal: - name: connect - type: user - resourcePatterns: - - name: connect-cluster - patternType: LITERAL - resourceType: Group - - name: connect-secrets - patternType: LITERAL - resourceType: Group - role: ResourceOwner diff --git a/apps/base/rolebindings/connect/connect-topics.yaml b/apps/base/rolebindings/connect/connect-topics.yaml deleted file mode 100644 index 8f5c361..0000000 --- a/apps/base/rolebindings/connect/connect-topics.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: connect-topics - namespace: confluent -spec: - principal: - name: connect - type: user - resourcePatterns: - - name: _confluent-connect-secrets - patternType: LITERAL - resourceType: Topic - - name: _confluent-connect-status - patternType: LITERAL - resourceType: Topic - - name: _confluent-connect-offsets - patternType: LITERAL - resourceType: Topic - - name: _confluent-connect-configs - patternType: LITERAL - resourceType: Topic - - name: confluent.connect- - patternType: PREFIXED - resourceType: Topic - role: ResourceOwner diff --git a/apps/base/rolebindings/connect/kustomization.yaml b/apps/base/rolebindings/connect/kustomization.yaml deleted file mode 100644 index 6275c8d..0000000 --- a/apps/base/rolebindings/connect/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - connect-base.yaml - - connect-groups.yaml - - connect-topics.yaml diff --git a/apps/base/rolebindings/controlcenter/controlcentre-base.yaml b/apps/base/rolebindings/controlcenter/controlcentre-base.yaml deleted file mode 100644 index 9c25674..0000000 --- a/apps/base/rolebindings/controlcenter/controlcentre-base.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: control-centre-base - namespace: confluent -spec: - principal: - name: ccc - type: user - role: SystemAdmin diff --git a/apps/base/rolebindings/controlcenter/controlcentre-clusters.yaml b/apps/base/rolebindings/controlcenter/controlcentre-clusters.yaml deleted file mode 100644 index e15f003..0000000 --- a/apps/base/rolebindings/controlcenter/controlcentre-clusters.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: control-centre-cluster-registry - namespace: confluent -spec: - clustersScopeByIds: - schemaRegistryClusterId: schema-registry - principal: - name: ccc - type: user - role: SystemAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: control-centre-cluster-connect - namespace: confluent -spec: - clustersScopeByIds: - connectClusterId: confluent.connect - principal: - name: ccc - type: user - role: SystemAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: control-centre-cluster-ksqldb - namespace: confluent -spec: - clustersScopeByIds: - ksqlClusterId: ksqldb-cluster - principal: - name: ccc - type: user - role: SystemAdmin diff --git a/apps/base/rolebindings/controlcenter/kustomization.yaml b/apps/base/rolebindings/controlcenter/kustomization.yaml deleted file mode 100644 index 5b6c76f..0000000 --- a/apps/base/rolebindings/controlcenter/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - controlcentre-base.yaml - - controlcentre-clusters.yaml \ No newline at end of file diff --git a/apps/base/rolebindings/ksqldb/ksqldb-base.yaml b/apps/base/rolebindings/ksqldb/ksqldb-base.yaml deleted file mode 100644 index b760ec5..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-base.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-base - namespace: confluent -spec: - clustersScopeByIds: - ksqlClusterId: confluent.ksqldb_ - principal: - name: ksql - type: user - resourcePatterns: - - name: ksql-cluster - patternType: LITERAL - resourceType: KsqlCluster - role: ResourceOwner ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-resources-base - namespace: confluent -spec: - principal: - name: ksql - type: user - resourcePatterns: - - name: _confluent-ksql-confluent.ksqldb_ - patternType: PREFIXED - resourceType: Topic - role: ResourceOwner diff --git a/apps/base/rolebindings/ksqldb/ksqldb-cluster.yaml b/apps/base/rolebindings/ksqldb/ksqldb-cluster.yaml deleted file mode 100644 index e33328a..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-cluster.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster - namespace: confluent -spec: - clustersScopeByIds: - kafkaClusterId: qrGPK1LPTaa1s9d5D4V1rw - principal: - name: ksql - type: user - resourcePatterns: - - name: kafka-cluster - resourceType: Cluster - role: DeveloperWrite \ No newline at end of file diff --git a/apps/base/rolebindings/ksqldb/ksqldb-groups.yaml b/apps/base/rolebindings/ksqldb/ksqldb-groups.yaml deleted file mode 100644 index fc8313f..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-groups.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-groups - namespace: confluent -spec: - principal: - name: ksql - type: user - resourcePatterns: - - name: _confluent-ksql-ksqldb-cluster - patternType: PREFIXED - resourceType: Group - role: ResourceOwner diff --git a/apps/base/rolebindings/ksqldb/ksqldb-ksqlcluster.yaml b/apps/base/rolebindings/ksqldb/ksqldb-ksqlcluster.yaml deleted file mode 100644 index 06555b4..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-ksqlcluster.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-ksqlcluster - namespace: confluent -spec: - clustersScopeByIds: - ksqlClusterId: confluent.ksqldb_ - principal: - name: ksql - type: user - resourcePatterns: - - name: ksql-cluster - patternType: LITERAL - resourceType: KsqlCluster - role: ResourceOwner ---- diff --git a/apps/base/rolebindings/ksqldb/ksqldb-topics.yaml b/apps/base/rolebindings/ksqldb/ksqldb-topics.yaml deleted file mode 100644 index 7fa9b97..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-topics.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-topics - namespace: confluent -spec: - principal: - name: ksql - type: user - resourcePatterns: - - name: _confluent-ksql-confluent.ksqldb_ - patternType: PREFIXED - resourceType: Topic - - name: _confluent-ksql-ksqldb-cluster_command_topic - patternType: PREFIXED - resourceType: Topic - - name: ksqldb-clusterksql_processing_log - patternType: PREFIXED - resourceType: Topic - role: ResourceOwner diff --git a/apps/base/rolebindings/ksqldb/ksqldb-transaction.yaml b/apps/base/rolebindings/ksqldb/ksqldb-transaction.yaml deleted file mode 100644 index 7bea69a..0000000 --- a/apps/base/rolebindings/ksqldb/ksqldb-transaction.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: ksqldb-cluster-transaction - namespace: confluent -spec: - principal: - name: ksql - type: user - resourcePatterns: - - name: ksqldb-cluster - patternType: PREFIXED - resourceType: TransactionalId - role: ResourceOwner diff --git a/apps/base/rolebindings/ksqldb/kustomization.yaml b/apps/base/rolebindings/ksqldb/kustomization.yaml deleted file mode 100644 index 3d026df..0000000 --- a/apps/base/rolebindings/ksqldb/kustomization.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - ksqldb-base.yaml - - ksqldb-cluster.yaml - - ksqldb-groups.yaml - - ksqldb-ksqlcluster.yaml - - ksqldb-topics.yaml - - ksqldb-transaction.yaml \ No newline at end of file diff --git a/apps/base/rolebindings/kustomization.yaml b/apps/base/rolebindings/kustomization.yaml deleted file mode 100644 index c00c807..0000000 --- a/apps/base/rolebindings/kustomization.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - ldap - - controlcenter - - connect - - ksqldb - - schemaregistry \ No newline at end of file diff --git a/apps/base/rolebindings/ldap/groups/kustomization.yaml b/apps/base/rolebindings/ldap/groups/kustomization.yaml deleted file mode 100644 index 3ced4b9..0000000 --- a/apps/base/rolebindings/ldap/groups/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - ldap-groups.yaml \ No newline at end of file diff --git a/apps/base/rolebindings/ldap/groups/ldap-groups.yaml b/apps/base/rolebindings/ldap/groups/ldap-groups.yaml deleted file mode 100644 index cc56ae0..0000000 --- a/apps/base/rolebindings/ldap/groups/ldap-groups.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-groups-kafka-cluster-connect - namespace: confluent -spec: - clustersScopeByIds: - connectClusterId: confluent.connect - principal: - name: admins - type: group - resourcePatterns: - - name: "*" - resourceType: Connector - role: ResourceOwner ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-groups-kafka-cluster-sr - namespace: confluent -spec: - clustersScopeByIds: - schemaRegistryClusterId: schema-registry - principal: - name: admins - type: group - role: SystemAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-groups-kafka-cluster-ksql - namespace: confluent -spec: - clustersScopeByIds: - ksqlClusterId: ksqldb-cluster - principal: - name: admins - type: group - role: SystemAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-group-topics - namespace: confluent -spec: - principal: - name: admins - type: group - resourcePatterns: - - name: "*" - resourceType: Topic - role: ResourceOwner ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-group-groups - namespace: confluent -spec: - principal: - name: admins - type: group - resourcePatterns: - - name: "*" - resourceType: Group - role: ResourceOwner ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: admin-group-transactionalid - namespace: confluent -spec: - principal: - name: admins - type: group - resourcePatterns: - - name: "*" - resourceType: TransactionalId - role: ResourceOwner \ No newline at end of file diff --git a/apps/base/rolebindings/ldap/users/kustomization.yaml b/apps/base/rolebindings/ldap/users/kustomization.yaml deleted file mode 100644 index 63f5568..0000000 --- a/apps/base/rolebindings/ldap/users/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - ldap-users.yaml \ No newline at end of file diff --git a/apps/base/rolebindings/ldap/users/ldap-users.yaml b/apps/base/rolebindings/ldap/users/ldap-users.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/apps/base/rolebindings/schemaregistry/kustomization.yaml b/apps/base/rolebindings/schemaregistry/kustomization.yaml deleted file mode 100644 index 9e63810..0000000 --- a/apps/base/rolebindings/schemaregistry/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - schemaregistry-base.yaml - - schemaregistry-groups.yaml - - schemaregistry-topics.yaml \ No newline at end of file diff --git a/apps/base/rolebindings/schemaregistry/schemaregistry-base.yaml b/apps/base/rolebindings/schemaregistry/schemaregistry-base.yaml deleted file mode 100644 index 66db945..0000000 --- a/apps/base/rolebindings/schemaregistry/schemaregistry-base.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: registry-base - namespace: confluent -spec: - clustersScopeByIds: - schemaRegistryClusterId: id_schemaregistry_confluent - principal: - name: registry - type: user - role: SecurityAdmin ---- -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: registry-mds-client-resources-base - namespace: confluent -spec: - principal: - name: registry - type: user - resourcePatterns: - - name: _confluent-license - patternType: LITERAL - resourceType: Topic - - name: _schemas_schemaregistry_confluent - patternType: LITERAL - resourceType: Topic - - name: id_schemaregistry_confluent - patternType: LITERAL - resourceType: Group - role: ResourceOwner \ No newline at end of file diff --git a/apps/base/rolebindings/schemaregistry/schemaregistry-groups.yaml b/apps/base/rolebindings/schemaregistry/schemaregistry-groups.yaml deleted file mode 100644 index 1696c23..0000000 --- a/apps/base/rolebindings/schemaregistry/schemaregistry-groups.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: registry-groups - namespace: confluent -spec: - principal: - name: registry - type: user - resourcePatterns: - - name: id_schemaregistry_confluent - patternType: LITERAL - resourceType: Group - - name: schema-registry - patternType: LITERAL - resourceType: Group - role: ResourceOwner \ No newline at end of file diff --git a/apps/base/rolebindings/schemaregistry/schemaregistry-topics.yaml b/apps/base/rolebindings/schemaregistry/schemaregistry-topics.yaml deleted file mode 100644 index ab7d24b..0000000 --- a/apps/base/rolebindings/schemaregistry/schemaregistry-topics.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: platform.confluent.io/v1beta1 -kind: ConfluentRolebinding -metadata: - name: registry-topics - namespace: confluent -spec: - principal: - name: registry - type: user - resourcePatterns: - - name: _schemas - patternType: LITERAL - resourceType: Topic - role: ResourceOwner \ No newline at end of file diff --git a/clusters/production/apps.yaml b/clusters/production/apps.yaml deleted file mode 100644 index 638de80..0000000 --- a/clusters/production/apps.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: dev - namespace: flux-system -spec: - interval: 1m -# dependsOn: -# - name: infrastucture - sourceRef: - kind: GitRepository - name: flux-system - prune: true - path: ./apps/base - validation: client diff --git a/clusters/production/infrastucture.yaml b/clusters/production/infrastucture.yaml deleted file mode 100644 index ad290f3..0000000 --- a/clusters/production/infrastucture.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: infrastructure - namespace: flux-system -spec: - interval: 1m - sourceRef: - kind: GitRepository - name: flux-system - namespace: flux-system - healthChecks: - - kind: Pod - name: ldap - namespace: tools - path: ./infrastructure - prune: true diff --git a/flux-system/gotk-components.yaml b/flux-system/gotk-components.yaml new file mode 100644 index 0000000..376dba2 --- /dev/null +++ b/flux-system/gotk-components.yaml @@ -0,0 +1,2831 @@ +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: flux-system +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: alerts.notification.toolkit.fluxcd.io +spec: + group: notification.toolkit.fluxcd.io + names: + kind: Alert + listKind: AlertList + plural: alerts + singular: alert + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Alert is the Schema for the alerts 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: AlertSpec defines an alerting rule for events involving a list of objects + properties: + eventSeverity: + default: info + description: Filter events based on severity, defaults to ('info'). If set to 'info' no events will be filtered. + enum: + - info + - error + type: string + eventSources: + description: Filter events based on the involved objects. + items: + description: CrossNamespaceObjectReference contains enough information to let you locate the typed referenced object at cluster level + properties: + apiVersion: + description: API version of the referent + type: string + kind: + description: Kind of the referent + enum: + - Bucket + - GitRepository + - Kustomization + - HelmRelease + - HelmChart + - HelmRepository + - ImageRepository + - ImagePolicy + - ImageUpdateAutomation + type: string + name: + description: Name of the referent + maxLength: 53 + minLength: 1 + type: string + namespace: + description: Namespace of the referent + maxLength: 53 + minLength: 1 + type: string + required: + - name + type: object + type: array + exclusionList: + description: A list of Golang regular expressions to be used for excluding messages. + items: + type: string + type: array + providerRef: + description: Send events using this provider. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + summary: + description: Short description of the impact and affected cluster. + type: string + suspend: + description: This flag tells the controller to suspend subsequent events dispatching. Defaults to false. + type: boolean + required: + - eventSources + - providerRef + type: object + status: + description: AlertStatus defines the observed state of Alert + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: buckets.source.toolkit.fluxcd.io +spec: + group: source.toolkit.fluxcd.io + names: + kind: Bucket + listKind: BucketList + plural: buckets + singular: bucket + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.url + name: URL + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Bucket is the Schema for the buckets 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: BucketSpec defines the desired state of an S3 compatible bucket + properties: + bucketName: + description: The bucket name. + type: string + endpoint: + description: The bucket endpoint address. + type: string + ignore: + description: Ignore overrides the set of excluded patterns in the .sourceignore format (which is the same as .gitignore). If not provided, a default will be used, consult the documentation for your version to find out what those are. + type: string + insecure: + description: Insecure allows connecting to a non-TLS S3 HTTP endpoint. + type: boolean + interval: + description: The interval at which to check for bucket updates. + type: string + provider: + default: generic + description: The S3 compatible storage provider name, default ('generic'). + enum: + - generic + - aws + type: string + region: + description: The bucket region. + type: string + secretRef: + description: The name of the secret containing authentication credentials for the Bucket. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + suspend: + description: This flag tells the controller to suspend the reconciliation of this source. + type: boolean + timeout: + default: 20s + description: The timeout for download operations, defaults to 20s. + type: string + required: + - bucketName + - endpoint + - interval + type: object + status: + description: BucketStatus defines the observed state of a bucket + properties: + artifact: + description: Artifact represents the output of the last successful Bucket sync. + properties: + checksum: + description: Checksum is the SHA1 checksum of the artifact. + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to the last update of this artifact. + format: date-time + type: string + path: + description: Path is the relative file path of this artifact. + type: string + revision: + description: Revision is a human readable identifier traceable in the origin source system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm chart version, etc. + type: string + url: + description: URL is the HTTP address of this artifact. + type: string + required: + - path + - url + type: object + conditions: + description: Conditions holds the conditions for the Bucket. + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + url: + description: URL is the download link for the artifact output of the last Bucket sync. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: gitrepositories.source.toolkit.fluxcd.io +spec: + group: source.toolkit.fluxcd.io + names: + kind: GitRepository + listKind: GitRepositoryList + plural: gitrepositories + shortNames: + - gitrepo + singular: gitrepository + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.url + name: URL + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: GitRepository is the Schema for the gitrepositories 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: GitRepositorySpec defines the desired state of a Git repository. + properties: + gitImplementation: + default: go-git + description: Determines which git client library to use. Defaults to go-git, valid values are ('go-git', 'libgit2'). + enum: + - go-git + - libgit2 + type: string + ignore: + description: Ignore overrides the set of excluded patterns in the .sourceignore format (which is the same as .gitignore). If not provided, a default will be used, consult the documentation for your version to find out what those are. + type: string + interval: + description: The interval at which to check for repository updates. + type: string + recurseSubmodules: + description: When enabled, after the clone is created, initializes all submodules within, using their default settings. This option is available only when using the 'go-git' GitImplementation. + type: boolean + ref: + description: The Git reference to checkout and monitor for changes, defaults to master branch. + properties: + branch: + default: master + description: The Git branch to checkout, defaults to master. + type: string + commit: + description: The Git commit SHA to checkout, if specified Tag filters will be ignored. + type: string + semver: + description: The Git tag semver expression, takes precedence over Tag. + type: string + tag: + description: The Git tag to checkout, takes precedence over Branch. + type: string + type: object + secretRef: + description: The secret name containing the Git credentials. For HTTPS repositories the secret must contain username and password fields. For SSH repositories the secret must contain identity, identity.pub and known_hosts fields. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + suspend: + description: This flag tells the controller to suspend the reconciliation of this source. + type: boolean + timeout: + default: 20s + description: The timeout for remote Git operations like cloning, defaults to 20s. + type: string + url: + description: The repository URL, can be a HTTP/S or SSH address. + pattern: ^(http|https|ssh):// + type: string + verify: + description: Verify OpenPGP signature for the Git commit HEAD points to. + properties: + mode: + description: Mode describes what git object should be verified, currently ('head'). + enum: + - head + type: string + secretRef: + description: The secret name containing the public keys of all trusted Git authors. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + required: + - mode + type: object + required: + - interval + - url + type: object + status: + description: GitRepositoryStatus defines the observed state of a Git repository. + properties: + artifact: + description: Artifact represents the output of the last successful repository sync. + properties: + checksum: + description: Checksum is the SHA1 checksum of the artifact. + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to the last update of this artifact. + format: date-time + type: string + path: + description: Path is the relative file path of this artifact. + type: string + revision: + description: Revision is a human readable identifier traceable in the origin source system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm chart version, etc. + type: string + url: + description: URL is the HTTP address of this artifact. + type: string + required: + - path + - url + type: object + conditions: + description: Conditions holds the conditions for the GitRepository. + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + url: + description: URL is the download link for the artifact output of the last repository sync. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: helmcharts.source.toolkit.fluxcd.io +spec: + group: source.toolkit.fluxcd.io + names: + kind: HelmChart + listKind: HelmChartList + plural: helmcharts + shortNames: + - hc + singular: helmchart + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.chart + name: Chart + type: string + - jsonPath: .spec.version + name: Version + type: string + - jsonPath: .spec.sourceRef.kind + name: Source Kind + type: string + - jsonPath: .spec.sourceRef.name + name: Source Name + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: HelmChart is the Schema for the helmcharts 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: HelmChartSpec defines the desired state of a Helm chart. + properties: + chart: + description: The name or path the Helm chart is available at in the SourceRef. + type: string + interval: + description: The interval at which to check the Source for updates. + type: string + sourceRef: + description: The reference to the Source the chart is available at. + properties: + apiVersion: + description: APIVersion of the referent. + type: string + kind: + description: Kind of the referent, valid values are ('HelmRepository', 'GitRepository', 'Bucket'). + enum: + - HelmRepository + - GitRepository + - Bucket + type: string + name: + description: Name of the referent. + type: string + required: + - kind + - name + type: object + suspend: + description: This flag tells the controller to suspend the reconciliation of this source. + type: boolean + valuesFile: + description: Alternative values file to use as the default chart values, expected to be a relative path in the SourceRef. Deprecated in favor of ValuesFiles, for backwards compatibility the file defined here is merged before the ValuesFiles items. Ignored when omitted. + type: string + valuesFiles: + description: Alternative list of values files to use as the chart values (values.yaml is not included by default), expected to be a relative path in the SourceRef. Values files are merged in the order of this list with the last file overriding the first. Ignored when omitted. + items: + type: string + type: array + version: + default: '*' + description: The chart version semver expression, ignored for charts from GitRepository and Bucket sources. Defaults to latest when omitted. + type: string + required: + - chart + - interval + - sourceRef + type: object + status: + description: HelmChartStatus defines the observed state of the HelmChart. + properties: + artifact: + description: Artifact represents the output of the last successful chart sync. + properties: + checksum: + description: Checksum is the SHA1 checksum of the artifact. + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to the last update of this artifact. + format: date-time + type: string + path: + description: Path is the relative file path of this artifact. + type: string + revision: + description: Revision is a human readable identifier traceable in the origin source system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm chart version, etc. + type: string + url: + description: URL is the HTTP address of this artifact. + type: string + required: + - path + - url + type: object + conditions: + description: Conditions holds the conditions for the HelmChart. + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + url: + description: URL is the download link for the last chart pulled. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: helmreleases.helm.toolkit.fluxcd.io +spec: + group: helm.toolkit.fluxcd.io + names: + kind: HelmRelease + listKind: HelmReleaseList + plural: helmreleases + shortNames: + - hr + singular: helmrelease + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2beta1 + schema: + openAPIV3Schema: + description: HelmRelease is the Schema for the helmreleases 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: HelmReleaseSpec defines the desired state of a Helm release. + properties: + chart: + description: Chart defines the template of the v1beta1.HelmChart that should be created for this HelmRelease. + properties: + spec: + description: Spec holds the template for the v1beta1.HelmChartSpec for this HelmRelease. + properties: + chart: + description: The name or path the Helm chart is available at in the SourceRef. + type: string + interval: + description: Interval at which to check the v1beta1.Source for updates. Defaults to 'HelmReleaseSpec.Interval'. + type: string + sourceRef: + description: The name and namespace of the v1beta1.Source the chart is available at. + properties: + apiVersion: + description: APIVersion of the referent. + type: string + kind: + description: Kind of the referent. + enum: + - HelmRepository + - GitRepository + - Bucket + type: string + name: + description: Name of the referent. + maxLength: 253 + minLength: 1 + type: string + namespace: + description: Namespace of the referent. + maxLength: 63 + minLength: 1 + type: string + required: + - name + type: object + valuesFile: + description: Alternative values file to use as the default chart values, expected to be a relative path in the SourceRef. Deprecated in favor of ValuesFiles, for backwards compatibility the file defined here is merged before the ValuesFiles items. Ignored when omitted. + type: string + valuesFiles: + description: Alternative list of values files to use as the chart values (values.yaml is not included by default), expected to be a relative path in the SourceRef. Values files are merged in the order of this list with the last file overriding the first. Ignored when omitted. + items: + type: string + type: array + version: + default: '*' + description: Version semver expression, ignored for charts from v1beta1.GitRepository and v1beta1.Bucket sources. Defaults to latest when omitted. + type: string + required: + - chart + - sourceRef + type: object + required: + - spec + type: object + dependsOn: + description: DependsOn may contain a dependency.CrossNamespaceDependencyReference slice with references to HelmRelease resources that must be ready before this HelmRelease can be reconciled. + items: + description: CrossNamespaceDependencyReference holds the reference to a dependency. + properties: + name: + description: Name holds the name reference of a dependency. + type: string + namespace: + description: Namespace holds the namespace reference of a dependency. + type: string + required: + - name + type: object + type: array + install: + description: Install holds the configuration for Helm install actions for this HelmRelease. + properties: + crds: + description: "CRDs upgrade CRDs from the Helm Chart's crds directory according to the CRD upgrade policy provided here. Valid values are `Skip`, `Create` or `CreateReplace`. Default is `Create` and if omitted CRDs are installed but not updated. \n Skip: do neither install nor replace (update) any CRDs. \n Create: new CRDs are created, existing CRDs are neither updated nor deleted. \n CreateReplace: new CRDs are created, existing CRDs are updated (replaced) but not deleted. \n By default, CRDs are applied (installed) during Helm install action. With this option users can opt-in to CRD replace existing CRDs on Helm install actions, which is not (yet) natively supported by Helm. https://helm.sh/docs/chart_best_practices/custom_resource_definitions." + enum: + - Skip + - Create + - CreateReplace + type: string + createNamespace: + description: CreateNamespace tells the Helm install action to create the HelmReleaseSpec.TargetNamespace if it does not exist yet. On uninstall, the namespace will not be garbage collected. + type: boolean + disableHooks: + description: DisableHooks prevents hooks from running during the Helm install action. + type: boolean + disableOpenAPIValidation: + description: DisableOpenAPIValidation prevents the Helm install action from validating rendered templates against the Kubernetes OpenAPI Schema. + type: boolean + disableWait: + description: DisableWait disables the waiting for resources to be ready after a Helm install has been performed. + type: boolean + remediation: + description: Remediation holds the remediation configuration for when the Helm install action for the HelmRelease fails. The default is to not perform any action. + properties: + ignoreTestFailures: + description: IgnoreTestFailures tells the controller to skip remediation when the Helm tests are run after an install action but fail. Defaults to 'Test.IgnoreFailures'. + type: boolean + remediateLastFailure: + description: RemediateLastFailure tells the controller to remediate the last failure, when no retries remain. Defaults to 'false'. + type: boolean + retries: + description: Retries is the number of retries that should be attempted on failures before bailing. Remediation, using an uninstall, is performed between each attempt. Defaults to '0', a negative integer equals to unlimited retries. + type: integer + type: object + replace: + description: Replace tells the Helm install action to re-use the 'ReleaseName', but only if that name is a deleted release which remains in the history. + type: boolean + skipCRDs: + description: "SkipCRDs tells the Helm install action to not install any CRDs. By default, CRDs are installed if not already present. \n Deprecated use CRD policy (`crds`) attribute with value `Skip` instead." + type: boolean + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during the performance of a Helm install action. Defaults to 'HelmReleaseSpec.Timeout'. + type: string + type: object + interval: + description: Interval at which to reconcile the Helm release. + type: string + kubeConfig: + description: KubeConfig for reconciling the HelmRelease on a remote cluster. When specified, KubeConfig takes precedence over ServiceAccountName. + properties: + secretRef: + description: SecretRef holds the name to a secret that contains a 'value' key with the kubeconfig file as the value. It must be in the same namespace as the HelmRelease. It is recommended that the kubeconfig is self-contained, and the secret is regularly updated if credentials such as a cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and credentials to the Pod that is responsible for reconciling the HelmRelease. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + type: object + maxHistory: + description: MaxHistory is the number of revisions saved by Helm for this HelmRelease. Use '0' for an unlimited number of revisions; defaults to '10'. + type: integer + postRenderers: + description: PostRenderers holds an array of Helm PostRenderers, which will be applied in order of their definition. + items: + description: PostRenderer contains a Helm PostRenderer specification. + properties: + kustomize: + description: Kustomization to apply as PostRenderer. + properties: + images: + description: Images is a list of (image name, new name, new tag or digest) for changing image names, tags or digests. This can also be achieved with a patch, but this operator is simpler to specify. + items: + description: Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag. + properties: + digest: + description: Digest is the value used to replace the original image tag. If digest is present NewTag value is ignored. + type: string + name: + description: Name is a tag-less image name. + type: string + newName: + description: NewName is the value used to replace the original name. + type: string + newTag: + description: NewTag is the value used to replace the original tag. + type: string + required: + - name + type: object + type: array + patchesJson6902: + description: JSON 6902 patches, defined as inline YAML objects. + items: + description: JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to. + properties: + patch: + description: Patch contains the JSON6902 patch document with an array of operation objects. + items: + description: JSON6902 is a JSON6902 operation object. https://tools.ietf.org/html/rfc6902#section-4 + properties: + from: + type: string + op: + enum: + - test + - remove + - add + - replace + - move + - copy + type: string + path: + type: string + value: + x-kubernetes-preserve-unknown-fields: true + required: + - op + - path + type: object + type: array + target: + description: Target points to the resources that the patch document should be applied to. + properties: + annotationSelector: + description: AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations. + type: string + group: + description: Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + kind: + description: Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + labelSelector: + description: LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels. + type: string + name: + description: Name to match resources with. + type: string + namespace: + description: Namespace to select resources from. + type: string + version: + description: Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + type: object + required: + - patch + - target + type: object + type: array + patchesStrategicMerge: + description: Strategic merge patches, defined as inline YAML objects. + items: + x-kubernetes-preserve-unknown-fields: true + type: array + type: object + type: object + type: array + releaseName: + description: ReleaseName used for the Helm release. Defaults to a composition of '[TargetNamespace-]Name'. + maxLength: 53 + minLength: 1 + type: string + rollback: + description: Rollback holds the configuration for Helm rollback actions for this HelmRelease. + properties: + cleanupOnFail: + description: CleanupOnFail allows deletion of new resources created during the Helm rollback action when it fails. + type: boolean + disableHooks: + description: DisableHooks prevents hooks from running during the Helm rollback action. + type: boolean + disableWait: + description: DisableWait disables the waiting for resources to be ready after a Helm rollback has been performed. + type: boolean + force: + description: Force forces resource updates through a replacement strategy. + type: boolean + recreate: + description: Recreate performs pod restarts for the resource if applicable. + type: boolean + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during the performance of a Helm rollback action. Defaults to 'HelmReleaseSpec.Timeout'. + type: string + type: object + serviceAccountName: + description: The name of the Kubernetes service account to impersonate when reconciling this HelmRelease. + type: string + storageNamespace: + description: StorageNamespace used for the Helm storage. Defaults to the namespace of the HelmRelease. + maxLength: 63 + minLength: 1 + type: string + suspend: + description: Suspend tells the controller to suspend reconciliation for this HelmRelease, it does not apply to already started reconciliations. Defaults to false. + type: boolean + targetNamespace: + description: TargetNamespace to target when performing operations for the HelmRelease. Defaults to the namespace of the HelmRelease. + maxLength: 63 + minLength: 1 + type: string + test: + description: Test holds the configuration for Helm test actions for this HelmRelease. + properties: + enable: + description: Enable enables Helm test actions for this HelmRelease after an Helm install or upgrade action has been performed. + type: boolean + ignoreFailures: + description: IgnoreFailures tells the controller to skip remediation when the Helm tests are run but fail. Can be overwritten for tests run after install or upgrade actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'. + type: boolean + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation during the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'. + type: string + type: object + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during the performance of a Helm action. Defaults to '5m0s'. + type: string + uninstall: + description: Uninstall holds the configuration for Helm uninstall actions for this HelmRelease. + properties: + disableHooks: + description: DisableHooks prevents hooks from running during the Helm rollback action. + type: boolean + keepHistory: + description: KeepHistory tells Helm to remove all associated resources and mark the release as deleted, but retain the release history. + type: boolean + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during the performance of a Helm uninstall action. Defaults to 'HelmReleaseSpec.Timeout'. + type: string + type: object + upgrade: + description: Upgrade holds the configuration for Helm upgrade actions for this HelmRelease. + properties: + cleanupOnFail: + description: CleanupOnFail allows deletion of new resources created during the Helm upgrade action when it fails. + type: boolean + crds: + description: "CRDs upgrade CRDs from the Helm Chart's crds directory according to the CRD upgrade policy provided here. Valid values are `Skip`, `Create` or `CreateReplace`. Default is `Skip` and if omitted CRDs are neither installed nor upgraded. \n Skip: do neither install nor replace (update) any CRDs. \n Create: new CRDs are created, existing CRDs are neither updated nor deleted. \n CreateReplace: new CRDs are created, existing CRDs are updated (replaced) but not deleted. \n By default, CRDs are not applied during Helm upgrade action. With this option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm. https://helm.sh/docs/chart_best_practices/custom_resource_definitions." + enum: + - Skip + - Create + - CreateReplace + type: string + disableHooks: + description: DisableHooks prevents hooks from running during the Helm upgrade action. + type: boolean + disableOpenAPIValidation: + description: DisableOpenAPIValidation prevents the Helm upgrade action from validating rendered templates against the Kubernetes OpenAPI Schema. + type: boolean + disableWait: + description: DisableWait disables the waiting for resources to be ready after a Helm upgrade has been performed. + type: boolean + force: + description: Force forces resource updates through a replacement strategy. + type: boolean + preserveValues: + description: PreserveValues will make Helm reuse the last release's values and merge in overrides from 'Values'. Setting this flag makes the HelmRelease non-declarative. + type: boolean + remediation: + description: Remediation holds the remediation configuration for when the Helm upgrade action for the HelmRelease fails. The default is to not perform any action. + properties: + ignoreTestFailures: + description: IgnoreTestFailures tells the controller to skip remediation when the Helm tests are run after an upgrade action but fail. Defaults to 'Test.IgnoreFailures'. + type: boolean + remediateLastFailure: + description: RemediateLastFailure tells the controller to remediate the last failure, when no retries remain. Defaults to 'false' unless 'Retries' is greater than 0. + type: boolean + retries: + description: Retries is the number of retries that should be attempted on failures before bailing. Remediation, using 'Strategy', is performed between each attempt. Defaults to '0', a negative integer equals to unlimited retries. + type: integer + strategy: + description: Strategy to use for failure remediation. Defaults to 'rollback'. + enum: + - rollback + - uninstall + type: string + type: object + timeout: + description: Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during the performance of a Helm upgrade action. Defaults to 'HelmReleaseSpec.Timeout'. + type: string + type: object + values: + description: Values holds the values for this Helm release. + x-kubernetes-preserve-unknown-fields: true + valuesFrom: + description: ValuesFrom holds references to resources containing Helm values for this HelmRelease, and information about how they should be merged. + items: + description: ValuesReference contains a reference to a resource containing Helm values, and optionally the key they can be found at. + properties: + kind: + description: Kind of the values referent, valid values are ('Secret', 'ConfigMap'). + enum: + - Secret + - ConfigMap + type: string + name: + description: Name of the values referent. Should reside in the same namespace as the referring resource. + maxLength: 253 + minLength: 1 + type: string + optional: + description: Optional marks this ValuesReference as optional. When set, a not found error for the values reference is ignored, but any ValuesKey, TargetPath or transient error will still result in a reconciliation failure. + type: boolean + targetPath: + description: TargetPath is the YAML dot notation path the value should be merged at. When set, the ValuesKey is expected to be a single flat value. Defaults to 'None', which results in the values getting merged at the root. + type: string + valuesKey: + description: ValuesKey is the data key where the values.yaml or a specific value can be found at. Defaults to 'values.yaml'. + type: string + required: + - kind + - name + type: object + type: array + required: + - chart + - interval + type: object + status: + description: HelmReleaseStatus defines the observed state of a HelmRelease. + properties: + conditions: + description: Conditions holds the conditions for the HelmRelease. + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + failures: + description: Failures is the reconciliation failure count against the latest desired state. It is reset after a successful reconciliation. + format: int64 + type: integer + helmChart: + description: HelmChart is the namespaced name of the HelmChart resource created by the controller for the HelmRelease. + type: string + installFailures: + description: InstallFailures is the install failure count against the latest desired state. It is reset after a successful reconciliation. + format: int64 + type: integer + lastAppliedRevision: + description: LastAppliedRevision is the revision of the last successfully applied source. + type: string + lastAttemptedRevision: + description: LastAttemptedRevision is the revision of the last reconciliation attempt. + type: string + lastAttemptedValuesChecksum: + description: LastAttemptedValuesChecksum is the SHA1 checksum of the values of the last reconciliation attempt. + type: string + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + lastReleaseRevision: + description: LastReleaseRevision is the revision of the last successful Helm release. + type: integer + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + upgradeFailures: + description: UpgradeFailures is the upgrade failure count against the latest desired state. It is reset after a successful reconciliation. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: helmrepositories.source.toolkit.fluxcd.io +spec: + group: source.toolkit.fluxcd.io + names: + kind: HelmRepository + listKind: HelmRepositoryList + plural: helmrepositories + shortNames: + - helmrepo + singular: helmrepository + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.url + name: URL + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: HelmRepository is the Schema for the helmrepositories 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: HelmRepositorySpec defines the reference to a Helm repository. + properties: + interval: + description: The interval at which to check the upstream for updates. + type: string + secretRef: + description: The name of the secret containing authentication credentials for the Helm repository. For HTTP/S basic auth the secret must contain username and password fields. For TLS the secret must contain a certFile and keyFile, and/or caCert fields. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + suspend: + description: This flag tells the controller to suspend the reconciliation of this source. + type: boolean + timeout: + default: 60s + description: The timeout of index downloading, defaults to 60s. + type: string + url: + description: The Helm repository URL, a valid URL contains at least a protocol and host. + type: string + required: + - interval + - url + type: object + status: + description: HelmRepositoryStatus defines the observed state of the HelmRepository. + properties: + artifact: + description: Artifact represents the output of the last successful repository sync. + properties: + checksum: + description: Checksum is the SHA1 checksum of the artifact. + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to the last update of this artifact. + format: date-time + type: string + path: + description: Path is the relative file path of this artifact. + type: string + revision: + description: Revision is a human readable identifier traceable in the origin source system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm chart version, etc. + type: string + url: + description: URL is the HTTP address of this artifact. + type: string + required: + - path + - url + type: object + conditions: + description: Conditions holds the conditions for the HelmRepository. + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + url: + description: URL is the download link for the last index fetched. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: kustomizations.kustomize.toolkit.fluxcd.io +spec: + group: kustomize.toolkit.fluxcd.io + names: + kind: Kustomization + listKind: KustomizationList + plural: kustomizations + shortNames: + - ks + singular: kustomization + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Kustomization is the Schema for the kustomizations 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: KustomizationSpec defines the desired state of a kustomization. + properties: + decryption: + description: Decrypt Kubernetes secrets before applying them on the cluster. + properties: + provider: + description: Provider is the name of the decryption engine. + enum: + - sops + type: string + secretRef: + description: The secret name containing the private OpenPGP keys used for decryption. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + required: + - provider + type: object + dependsOn: + description: DependsOn may contain a dependency.CrossNamespaceDependencyReference slice with references to Kustomization resources that must be ready before this Kustomization can be reconciled. + items: + description: CrossNamespaceDependencyReference holds the reference to a dependency. + properties: + name: + description: Name holds the name reference of a dependency. + type: string + namespace: + description: Namespace holds the namespace reference of a dependency. + type: string + required: + - name + type: object + type: array + force: + default: false + description: Force instructs the controller to recreate resources when patching fails due to an immutable field change. + type: boolean + healthChecks: + description: A list of resources to be included in the health assessment. + items: + description: NamespacedObjectKindReference contains enough information to let you locate the typed referenced object in any namespace + properties: + apiVersion: + description: API version of the referent, if not specified the Kubernetes preferred version will be used + type: string + kind: + description: Kind of the referent + type: string + name: + description: Name of the referent + type: string + namespace: + description: Namespace of the referent, when not specified it acts as LocalObjectReference + type: string + required: + - kind + - name + type: object + type: array + images: + description: Images is a list of (image name, new name, new tag or digest) for changing image names, tags or digests. This can also be achieved with a patch, but this operator is simpler to specify. + items: + description: Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag. + properties: + digest: + description: Digest is the value used to replace the original image tag. If digest is present NewTag value is ignored. + type: string + name: + description: Name is a tag-less image name. + type: string + newName: + description: NewName is the value used to replace the original name. + type: string + newTag: + description: NewTag is the value used to replace the original tag. + type: string + required: + - name + type: object + type: array + interval: + description: The interval at which to reconcile the Kustomization. + type: string + kubeConfig: + description: The KubeConfig for reconciling the Kustomization on a remote cluster. When specified, KubeConfig takes precedence over ServiceAccountName. + properties: + secretRef: + description: SecretRef holds the name to a secret that contains a 'value' key with the kubeconfig file as the value. It must be in the same namespace as the Kustomization. It is recommended that the kubeconfig is self-contained, and the secret is regularly updated if credentials such as a cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and credentials to the Pod that is responsible for reconciling the Kustomization. + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + type: object + patchesJson6902: + description: JSON 6902 patches, defined as inline YAML objects. + items: + description: JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to. + properties: + patch: + description: Patch contains the JSON6902 patch document with an array of operation objects. + items: + description: JSON6902 is a JSON6902 operation object. https://tools.ietf.org/html/rfc6902#section-4 + properties: + from: + type: string + op: + enum: + - test + - remove + - add + - replace + - move + - copy + type: string + path: + type: string + value: + x-kubernetes-preserve-unknown-fields: true + required: + - op + - path + type: object + type: array + target: + description: Target points to the resources that the patch document should be applied to. + properties: + annotationSelector: + description: AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations. + type: string + group: + description: Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + kind: + description: Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + labelSelector: + description: LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels. + type: string + name: + description: Name to match resources with. + type: string + namespace: + description: Namespace to select resources from. + type: string + version: + description: Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + type: object + required: + - patch + - target + type: object + type: array + patchesStrategicMerge: + description: Strategic merge patches, defined as inline YAML objects. + items: + x-kubernetes-preserve-unknown-fields: true + type: array + path: + description: Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a kustomization.yaml should be generated for. Defaults to 'None', which translates to the root path of the SourceRef. + type: string + postBuild: + description: PostBuild describes which actions to perform on the YAML manifest generated by building the kustomize overlay. + properties: + substitute: + additionalProperties: + type: string + description: Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that match any of the keys defined in the map will be substituted with the set value. Includes support for bash string replacement functions e.g. ${var:=default}, ${var:position} and ${var/substring/replacement}. + type: object + substituteFrom: + description: SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys represent the var names and they must match the vars declared in the manifests for the substitution to happen. + items: + description: SubstituteReference contains a reference to a resource containing the variables name and value. + properties: + kind: + description: Kind of the values referent, valid values are ('Secret', 'ConfigMap'). + enum: + - Secret + - ConfigMap + type: string + name: + description: Name of the values referent. Should reside in the same namespace as the referring resource. + maxLength: 253 + minLength: 1 + type: string + required: + - kind + - name + type: object + type: array + type: object + prune: + description: Prune enables garbage collection. + type: boolean + retryInterval: + description: The interval at which to retry a previously failed reconciliation. When not specified, the controller uses the KustomizationSpec.Interval value to retry failures. + type: string + serviceAccountName: + description: The name of the Kubernetes service account to impersonate when reconciling this Kustomization. + type: string + sourceRef: + description: Reference of the source where the kustomization file is. + properties: + apiVersion: + description: API version of the referent + type: string + kind: + description: Kind of the referent + enum: + - GitRepository + - Bucket + type: string + name: + description: Name of the referent + type: string + namespace: + description: Namespace of the referent, defaults to the Kustomization namespace + type: string + required: + - kind + - name + type: object + suspend: + description: This flag tells the controller to suspend subsequent kustomize executions, it does not apply to already started executions. Defaults to false. + type: boolean + targetNamespace: + description: TargetNamespace sets or overrides the namespace in the kustomization.yaml file. + maxLength: 63 + minLength: 1 + type: string + timeout: + description: Timeout for validation, apply and health checking operations. Defaults to 'Interval' duration. + type: string + validation: + description: Validate the Kubernetes objects before applying them on the cluster. The validation strategy can be 'client' (local dry-run), 'server' (APIServer dry-run) or 'none'. When 'Force' is 'true', validation will fallback to 'client' if set to 'server' because server-side validation is not supported in this scenario. + enum: + - none + - client + - server + type: string + required: + - interval + - prune + - sourceRef + type: object + status: + description: KustomizationStatus defines the observed state of a kustomization. + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + lastAppliedRevision: + description: The last successfully applied revision. The revision format for Git sources is /. + type: string + lastAttemptedRevision: + description: LastAttemptedRevision is the revision of the last reconciliation attempt. + type: string + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change can be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last reconciled generation. + format: int64 + type: integer + snapshot: + description: The last successfully applied revision metadata. + properties: + checksum: + description: The manifests sha1 checksum. + type: string + entries: + description: A list of Kubernetes kinds grouped by namespace. + items: + description: Snapshot holds the metadata of namespaced Kubernetes objects + properties: + kinds: + additionalProperties: + type: string + description: The list of Kubernetes kinds. + type: object + namespace: + description: The namespace of this entry. + type: string + required: + - kinds + type: object + type: array + required: + - checksum + - entries + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: providers.notification.toolkit.fluxcd.io +spec: + group: notification.toolkit.fluxcd.io + names: + kind: Provider + listKind: ProviderList + plural: providers + singular: provider + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Provider is the Schema for the providers 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: ProviderSpec defines the desired state of Provider + properties: + address: + description: HTTP/S webhook address of this provider + pattern: ^(http|https):// + type: string + certSecretRef: + description: CertSecretRef can be given the name of a secret containing a PEM-encoded CA certificate (`caFile`) + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + channel: + description: Alert channel for this provider + type: string + proxy: + description: HTTP/S address of the proxy + pattern: ^(http|https):// + type: string + secretRef: + description: Secret reference containing the provider webhook URL using "address" as data key + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + type: + description: Type of provider + enum: + - slack + - discord + - msteams + - rocket + - generic + - github + - gitlab + - bitbucket + - azuredevops + - googlechat + - webex + - sentry + type: string + username: + description: Bot username for this provider + type: string + required: + - type + type: object + status: + description: ProviderStatus defines the observed state of Provider + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: receivers.notification.toolkit.fluxcd.io +spec: + group: notification.toolkit.fluxcd.io + names: + kind: Receiver + listKind: ReceiverList + plural: receivers + singular: receiver + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Receiver is the Schema for the receivers 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: ReceiverSpec defines the desired state of Receiver + properties: + events: + description: A list of events to handle, e.g. 'push' for GitHub or 'Push Hook' for GitLab. + items: + type: string + type: array + resources: + description: A list of resources to be notified about changes. + items: + description: CrossNamespaceObjectReference contains enough information to let you locate the typed referenced object at cluster level + properties: + apiVersion: + description: API version of the referent + type: string + kind: + description: Kind of the referent + enum: + - Bucket + - GitRepository + - Kustomization + - HelmRelease + - HelmChart + - HelmRepository + - ImageRepository + - ImagePolicy + - ImageUpdateAutomation + type: string + name: + description: Name of the referent + maxLength: 53 + minLength: 1 + type: string + namespace: + description: Namespace of the referent + maxLength: 53 + minLength: 1 + type: string + required: + - name + type: object + type: array + secretRef: + description: Secret reference containing the token used to validate the payload authenticity + properties: + name: + description: Name of the referent + type: string + required: + - name + type: object + suspend: + description: This flag tells the controller to suspend subsequent events handling. Defaults to false. + type: boolean + type: + description: Type of webhook sender, used to determine the validation procedure and payload deserialization. + enum: + - generic + - generic-hmac + - github + - gitlab + - bitbucket + - harbor + - dockerhub + - quay + - gcr + - nexus + - acr + type: string + required: + - resources + - type + type: object + status: + description: ReceiverStatus defines the observed state of Receiver + properties: + conditions: + items: + description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + observedGeneration: + description: ObservedGeneration is the last observed generation. + format: int64 + type: integer + url: + description: Generated webhook URL in the format of '/hook/sha256sum(token+name+namespace)'. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: helm-controller + namespace: flux-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: kustomize-controller + namespace: flux-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: notification-controller + namespace: flux-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: source-controller + namespace: flux-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: crd-controller-flux-system +rules: +- apiGroups: + - source.toolkit.fluxcd.io + resources: + - '*' + verbs: + - '*' +- apiGroups: + - kustomize.toolkit.fluxcd.io + resources: + - '*' + verbs: + - '*' +- apiGroups: + - helm.toolkit.fluxcd.io + resources: + - '*' + verbs: + - '*' +- apiGroups: + - notification.toolkit.fluxcd.io + resources: + - '*' + verbs: + - '*' +- apiGroups: + - image.toolkit.fluxcd.io + resources: + - '*' + verbs: + - '*' +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - "" + resources: + - configmaps + - configmaps/status + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: cluster-reconciler-flux-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: kustomize-controller + namespace: flux-system +- kind: ServiceAccount + name: helm-controller + namespace: flux-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: crd-controller-flux-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: crd-controller-flux-system +subjects: +- kind: ServiceAccount + name: kustomize-controller + namespace: flux-system +- kind: ServiceAccount + name: helm-controller + namespace: flux-system +- kind: ServiceAccount + name: source-controller + namespace: flux-system +- kind: ServiceAccount + name: notification-controller + namespace: flux-system +- kind: ServiceAccount + name: image-reflector-controller + namespace: flux-system +- kind: ServiceAccount + name: image-automation-controller + namespace: flux-system +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: notification-controller + namespace: flux-system +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: http + selector: + app: notification-controller + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: source-controller + namespace: flux-system +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: http + selector: + app: source-controller + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: webhook-receiver + namespace: flux-system +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: http-webhook + selector: + app: notification-controller + type: ClusterIP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: helm-controller + namespace: flux-system +spec: + replicas: 1 + selector: + matchLabels: + app: helm-controller + template: + metadata: + annotations: + prometheus.io/port: "8080" + prometheus.io/scrape: "true" + labels: + app: helm-controller + spec: + containers: + - args: + - --events-addr=http://notification-controller/ + - --watch-all-namespaces=true + - --log-level=info + - --log-encoding=json + - --enable-leader-election + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/fluxcd/helm-controller:v0.10.0 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: healthz + name: manager + ports: + - containerPort: 9440 + name: healthz + protocol: TCP + - containerPort: 8080 + name: http-prom + readinessProbe: + httpGet: + path: /readyz + port: healthz + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + volumeMounts: + - mountPath: /tmp + name: temp + nodeSelector: + kubernetes.io/os: linux + serviceAccountName: helm-controller + terminationGracePeriodSeconds: 600 + volumes: + - emptyDir: {} + name: temp +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: kustomize-controller + namespace: flux-system +spec: + replicas: 1 + selector: + matchLabels: + app: kustomize-controller + template: + metadata: + annotations: + prometheus.io/port: "8080" + prometheus.io/scrape: "true" + labels: + app: kustomize-controller + spec: + containers: + - args: + - --events-addr=http://notification-controller/ + - --watch-all-namespaces=true + - --log-level=info + - --log-encoding=json + - --enable-leader-election + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/fluxcd/kustomize-controller:v0.12.0 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: healthz + name: manager + ports: + - containerPort: 9440 + name: healthz + protocol: TCP + - containerPort: 8080 + name: http-prom + readinessProbe: + httpGet: + path: /readyz + port: healthz + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + volumeMounts: + - mountPath: /tmp + name: temp + nodeSelector: + kubernetes.io/os: linux + securityContext: + fsGroup: 1337 + serviceAccountName: kustomize-controller + terminationGracePeriodSeconds: 60 + volumes: + - emptyDir: {} + name: temp +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: notification-controller + namespace: flux-system +spec: + replicas: 1 + selector: + matchLabels: + app: notification-controller + template: + metadata: + annotations: + prometheus.io/port: "8080" + prometheus.io/scrape: "true" + labels: + app: notification-controller + spec: + containers: + - args: + - --watch-all-namespaces=true + - --log-level=info + - --log-encoding=json + - --enable-leader-election + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/fluxcd/notification-controller:v0.13.0 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: healthz + name: manager + ports: + - containerPort: 9440 + name: healthz + protocol: TCP + - containerPort: 9090 + name: http + - containerPort: 9292 + name: http-webhook + - containerPort: 8080 + name: http-prom + readinessProbe: + httpGet: + path: /readyz + port: healthz + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + volumeMounts: + - mountPath: /tmp + name: temp + nodeSelector: + kubernetes.io/os: linux + serviceAccountName: notification-controller + terminationGracePeriodSeconds: 10 + volumes: + - emptyDir: {} + name: temp +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + control-plane: controller + name: source-controller + namespace: flux-system +spec: + replicas: 1 + selector: + matchLabels: + app: source-controller + strategy: + type: Recreate + template: + metadata: + annotations: + prometheus.io/port: "8080" + prometheus.io/scrape: "true" + labels: + app: source-controller + spec: + containers: + - args: + - --events-addr=http://notification-controller/ + - --watch-all-namespaces=true + - --log-level=info + - --log-encoding=json + - --enable-leader-election + - --storage-path=/data + - --storage-adv-addr=source-controller.$(RUNTIME_NAMESPACE).svc.cluster.local. + env: + - name: RUNTIME_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/fluxcd/source-controller:v0.12.1 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: healthz + name: manager + ports: + - containerPort: 9090 + name: http + - containerPort: 8080 + name: http-prom + - containerPort: 9440 + name: healthz + readinessProbe: + httpGet: + path: / + port: http + resources: + limits: + cpu: 1000m + memory: 1Gi + requests: + cpu: 50m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + volumeMounts: + - mountPath: /data + name: data + - mountPath: /tmp + name: tmp + nodeSelector: + kubernetes.io/os: linux + securityContext: + fsGroup: 1337 + serviceAccountName: source-controller + terminationGracePeriodSeconds: 10 + volumes: + - emptyDir: {} + name: data + - emptyDir: {} + name: tmp +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: allow-egress + namespace: flux-system +spec: + egress: + - {} + ingress: + - from: + - podSelector: {} + podSelector: {} + policyTypes: + - Ingress + - Egress +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: allow-scraping + namespace: flux-system +spec: + ingress: + - from: + - namespaceSelector: {} + ports: + - port: 8080 + protocol: TCP + podSelector: {} + policyTypes: + - Ingress +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + labels: + app.kubernetes.io/instance: flux-system + app.kubernetes.io/part-of: flux + app.kubernetes.io/version: v0.13.2 + name: allow-webhooks + namespace: flux-system +spec: + ingress: + - from: + - namespaceSelector: {} + podSelector: + matchLabels: + app: notification-controller + policyTypes: + - Ingress diff --git a/flux-system/gotk-sync.yaml b/flux-system/gotk-sync.yaml new file mode 100644 index 0000000..0547bdf --- /dev/null +++ b/flux-system/gotk-sync.yaml @@ -0,0 +1,45 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: GitRepository +metadata: + name: flux-system + namespace: flux-system +spec: + interval: 1m0s + ref: + branch: main + url: https://github.com/osodevops/kafka-gitops.git +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 +kind: Kustomization +metadata: + name: confluent-infra + namespace: flux-system +spec: + interval: 10m0s + path: ./kustomize/operator + prune: true + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v1beta1 + kind: HelmRelease + name: confluent + namespace: sandbox + validation: client +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 +kind: Kustomization +metadata: + name: environments + namespace: flux-system +spec: + dependsOn: + - name: confluent-infra + interval: 5m + path: ./kustomize/environments/sandbox + prune: true + sourceRef: + kind: GitRepository + name: flux-system diff --git a/apps/base/kustomization.yaml b/flux-system/kustomization.yaml similarity index 65% rename from apps/base/kustomization.yaml rename to flux-system/kustomization.yaml index c449752..3842229 100644 --- a/apps/base/kustomization.yaml +++ b/flux-system/kustomization.yaml @@ -1,5 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - rolebindings - - kafka +- gotk-components.yaml +- gotk-sync.yaml diff --git a/infrastructure/confluent/confluent-operator.yaml b/infrastructure/confluent/confluent-operator.yaml deleted file mode 100644 index bce6a2d..0000000 --- a/infrastructure/confluent/confluent-operator.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: confluent - namespace: confluent -spec: - interval: 1m - chart: - spec: - chart: confluent-for-kubernetes - sourceRef: - kind: HelmRepository - name: confluent-private - namespace: flux-system - values: - image: - registry: confluent-docker-internal-early-access-operator-2.jfrog.io diff --git a/infrastructure/confluent/kustomization.yaml b/infrastructure/confluent/kustomization.yaml deleted file mode 100644 index 86734a3..0000000 --- a/infrastructure/confluent/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: confluent -resources: - - namespace.yaml - - confluent-operator.yaml \ No newline at end of file diff --git a/infrastructure/confluent/namespace.yaml b/infrastructure/confluent/namespace.yaml deleted file mode 100644 index 3ac163a..0000000 --- a/infrastructure/confluent/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: confluent \ No newline at end of file diff --git a/infrastructure/sources/confluent.yaml b/infrastructure/sources/confluent.yaml deleted file mode 100644 index cdff5dd..0000000 --- a/infrastructure/sources/confluent.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: confluent-private - namespace: flux-system -spec: - url: https://confluent.jfrog.io/confluent/helm-early-access-operator-2 - secretRef: - name: https-credentials - interval: 1m ---- -#apiVersion: v1 -#kind: Secret -#metadata: -# name: https-credentials -# namespace: flux-system -#type: Opaque -#data: -# username: c2lvbkBvc29kZXZvcHMuaW8= -# password: ZXlKMlpYSWlPaUl5SWl3aWRIbHdJam9pU2xkVUlpd2lZV3huSWpvaVVsTXlOVFlpTENKcmFXUWlPaUl5VVVsdE1HOURkMHBRY0dOU2FHVjZWWGh5YTA1dWFXWnZaR2xZWVRCM1JtVm5NRXRrYjB0blVYVjNJbjAuZXlKemRXSWlPaUpxWm5KMFFEQXhZemR0WjJzeU5HdDJlR2M0TUhKd1lqbDZjSFl4Ym5aNlhDOTFjMlZ5YzF3dmMybHZia0J2YzI5a1pYWnZjSE11YVc4aUxDSnpZM0FpT2lKdFpXMWlaWEl0YjJZdFozSnZkWEJ6T205d1pYSmhkRzl5TFRJdFpXRnliSGt0WVdOalpYTnpMWEpsWVdRdGIyNXNlU0JoY0drNktpSXNJbUYxWkNJNkltcG1jblJBTURGak4yMW5hekkwYTNaNFp6Z3djbkJpT1hwd2RqRnVkbm9pTENKcGMzTWlPaUpxWm5KMFFEQXhZemR0WjJzeU5HdDJlR2M0TUhKd1lqbDZjSFl4Ym5aNlhDOTFjMlZ5YzF3dmNtRnFaWE5vUUdOdmJtWnNkV1Z1ZEM1cGJ5SXNJbVY0Y0NJNk1UWXlNVFk1T1RrMk55d2lhV0YwSWpveE5qRTVNVEEzT1RZM0xDSnFkR2tpT2lJek9XVmtZelF4WWkxaVkyRmpMVFEwTW1RdE9ETXpNQzAxTXpGa00yRTRPV0UzT1dNaWZRLmNPcG1VQmRpdG1PV2JCRjhNU1lxWW1TdktyY1U0eTNLWnZBQVhyOGJWVnR1QlhVcS1NQ1luMEQyRjR6VzJSbzlPUkFxTHFaVGZYZlRGQTBHYVN6QXpCNUVYWVRDdlhfNVUyb1c0UW9uMFdNOTNhOHdyamV2N2hzbjB0TDhNYnZSdlg3OU11NTRmZlljcjgyQ2s3c2Jtd0NCM0cyNC1ucTY1Y092Y2E0LU9wbWZyTTZYQzBjam5hQ0tPSVN3eEtpNThTMVRnZjY1SG5qWWtUdFBnM0d3V2tZdkJnN3FYM1NqeWxJNG5rR0toamtpbkI2a3Q2aEF4OWNQQlI1RXZQNTYzSFhMc25KWkU1dU90UTd1Rmc0ZGl4aXI5dmFyZ3VQOHVFZ3Q0WU1VbHhiaGplRkdDVXdrdnF5NnBBU0VTNnNkRDBKNGZKTzVUNXhCZk5Oa0dMd0ppdw== -# this is: -# "password": "eyJ2ZXIiOiIyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYiLCJraWQiOiIyUUltMG9Dd0pQcGNSaGV6VXhya05uaWZvZGlYYTB3RmVnMEtkb0tnUXV3In0.eyJzdWIiOiJqZnJ0QDAxYzdtZ2syNGt2eGc4MHJwYjl6cHYxbnZ6XC91c2Vyc1wvc2lvbkBvc29kZXZvcHMuaW8iLCJzY3AiOiJtZW1iZXItb2YtZ3JvdXBzOm9wZXJhdG9yLTItZWFybHktYWNjZXNzLXJlYWQtb25seSBhcGk6KiIsImF1ZCI6ImpmcnRAMDFjN21nazI0a3Z4ZzgwcnBiOXpwdjFudnoiLCJpc3MiOiJqZnJ0QDAxYzdtZ2syNGt2eGc4MHJwYjl6cHYxbnZ6XC91c2Vyc1wvcmFqZXNoQGNvbmZsdWVudC5pbyIsImV4cCI6MTYyMTY5OTk2NywiaWF0IjoxNjE5MTA3OTY3LCJqdGkiOiIzOWVkYzQxYi1iY2FjLTQ0MmQtODMzMC01MzFkM2E4OWE3OWMifQ.cOpmUBditmOWbBF8MSYqYmSvKrcU4y3KZvAAXr8bVVtuBXUq-MCYn0D2F4zW2Ro9ORAqLqZTfXfTFA0GaSzAzB5EXYTCvX_5U2oW4Qon0WM93a8wrjev7hsn0tL8MbvRvX79Mu54ffYcr82Ck7sbmwCB3G24-nq65cOvca4-OpmfrM6XC0cjnaCKOISwxKi58S1Tgf65HnjYkTtPg3GwWkYvBg7qX3SjylI4nkGKhjkinB6kt6hAx9cPBR5EvP563HXLsnJZE5uOtQ7uFg4dixir9varguP8uEgt4YMUlxbhjeFGCUwkvqy6pASES6sdD0J4fJO5T5xBfNNkGLwJiw", -# "username": "sion@osodevops.io" \ No newline at end of file diff --git a/infrastructure/sources/kustomization.yaml b/infrastructure/sources/kustomization.yaml deleted file mode 100644 index e697fe7..0000000 --- a/infrastructure/sources/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: flux-system -resources: - - confluent.yaml \ No newline at end of file diff --git a/infrastructure/tools/kustomization.yaml b/infrastructure/tools/kustomization.yaml deleted file mode 100644 index bc93143..0000000 --- a/infrastructure/tools/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: tools -resources: - - namespace.yaml - - proxy.yaml - - ldap.yaml \ No newline at end of file diff --git a/infrastructure/tools/ldap.yaml b/infrastructure/tools/ldap.yaml deleted file mode 100644 index b9b9485..0000000 --- a/infrastructure/tools/ldap.yaml +++ /dev/null @@ -1,149 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: ldap - namespace: tools - labels: - role: ldap - app: ldap -spec: - containers: - - name: ldap - args: - - --copy-service - - --loglevel=debug - image: osixia/openldap:1.4.0 - ports: - - name: ldap - containerPort: 389 - - name: ldaps - containerPort: 636 - livenessProbe: - tcpSocket: - port: 389 - initialDelaySeconds: 15 - periodSeconds: 20 - env: - - name: LDAP_ORGANISATION - value: "Test Inc" - - name: LDAP_DOMAIN - value: "test.com" - - name: LDAP_BASE_DN - value: "dc=test,dc=com" - - name: LDAP_ADMIN_PASSWORD - value: "confluentrox" - - name: LDAP_CONFIG_PASSWORD - value: "confluentconfigrox" - - name: KEEP_EXISTING_CONFIG - value: "False" - - name: LDAP_REMOVE_CONFIG_AFTER_SETUP - value: "True" - - name: LDAP_READONLY_USER - value: "True" - - name: LDAP_READONLY_USER_USERNAME - value: "mds" - - name: LDAP_READONLY_USER_PASSWORD - value: "Developer!" - - name: LDAP_TLS - value: "False" - volumeMounts: - - mountPath: /container/service/slapd/assets/config/bootstrap/ldif/custom - name: customldif - - mountPath: /var/lib/ldap - name: ldap-data - - mountPath: /etc/ldap/slapd.d - name: ldap-config - volumes: - - name: customldif - configMap: - defaultMode: 420 - name: ldap-ldifs - - name: ldap-data - emptyDir: {} - - name: ldap-config - emptyDir: {} - - restartPolicy: Always ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: ldap-ldifs - namespace: tools -data: - kafka.ldif: |- - dn: cn=kafka,dc=test,dc=com - userPassword: kafka-secret - description: kafka user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: kafka - erp.ldif: |- - dn: cn=erp,dc=test,dc=com - userPassword: erp-secret - description: erp user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: erp - sr.ldif: |- - dn: cn=sr,dc=test,dc=com - userPassword: sr-secret - description: schema registry user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: sr - c3.ldif: |- - dn: cn=c3,dc=test,dc=com - userPassword: c3-secret - description: control center user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: c3 - ksql.ldif: |- - dn: cn=ksql,dc=test,dc=com - userPassword: ksql-secret - description: ksql user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: ksql - connect.ldif: |- - dn: cn=connect,dc=test,dc=com - userPassword: connect-secret - description: connect user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: connect - replicator.ldif: |- - dn: cn=replicator,dc=test,dc=com - userPassword: replicator-secret - description: replicator user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: replicator - c3-test.ldif: |- - dn: cn=testadmin,dc=test,dc=com - userPassword: testadmin - description: testadmin user - objectClass: simpleSecurityObject - objectClass: organizationalRole - cn: testadmin ---- -apiVersion: v1 -kind: Service -metadata: - name: ldap - labels: - app: ldap - namespace: tools -spec: - ports: - - port: 389 - name: ldap - - port: 636 - name: ldaps - clusterIP: None - selector: - app: ldap - - - diff --git a/infrastructure/tools/namespace.yaml b/infrastructure/tools/namespace.yaml deleted file mode 100644 index 11152f6..0000000 --- a/infrastructure/tools/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: tools \ No newline at end of file diff --git a/infrastructure/tools/proxy.yaml b/infrastructure/tools/proxy.yaml deleted file mode 100644 index 050f6f8..0000000 --- a/infrastructure/tools/proxy.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: proxy - labels: - role: proxy -spec: - containers: - - name: proxy - image: serjs/go-socks5-proxy - ports: - - name: web - containerPort: 9100 - protocol: TCP - env: - - name: PROXY_PORT - value: "9100" \ No newline at end of file diff --git a/kustomize/base/confluent/ca-pair-sslcerts.yaml b/kustomize/base/confluent/ca-pair-sslcerts.yaml new file mode 100644 index 0000000..1f134a8 --- /dev/null +++ b/kustomize/base/confluent/ca-pair-sslcerts.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURtRENDQW9DZ0F3SUJBZ0lVS3Mxa1FBS0lUSjZmd3N5ZFBBNkNrZ2Raekl3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd1pERVJNQThHQTFVRUJoTUlWVzVwZG1WeWMyVXhEekFOQmdOVkJBZ1RCbEJoYm1kbFlURU9NQXdHQTFVRQpCeE1GUldGeWRHZ3hEVEFMQmdOVkJBb1RCRUZqYldVeERqQU1CZ05WQkFzVEJVMTVUM0puTVE4d0RRWURWUVFECkV3WlVaWE4wUTBFd0hoY05NakV3TlRJMU1USXlNekF3V2hjTk1qWXdOVEkwTVRJeU16QXdXakJrTVJFd0R3WUQKVlFRR0V3aFZibWwyWlhKelpURVBNQTBHQTFVRUNCTUdVR0Z1WjJWaE1RNHdEQVlEVlFRSEV3VkZZWEowYURFTgpNQXNHQTFVRUNoTUVRV050WlRFT01Bd0dBMVVFQ3hNRlRYbFBjbWN4RHpBTkJnTlZCQU1UQmxSbGMzUkRRVENDCkFTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTFhBdlhEVmJoNkNIT1Q0TlBnZkR4aG8KMXpzaUk4Zk4vanhNTjU2WlZrNDlIbmtDZE1IcjFiVjRxOUZkVFpwZisrVGZmRXdoTkJTZkpkRUh6TFV6VW1rUQp6WFk5Mno4YkQ0QXZCeE5sd0E0RGVRY1F2N2tZYVhWY2tZdVRpWitvcDdHaFVIVUFxY3hQSFBhUS9qL3FXU0JzClhzVTdVRDBMeDl5VXVtN3Uwa1NZUEZoc013YW1yWG5lcmRJc1dnL0RqUlRCZ041K201cUIvZkxYTlBqWXhVZEYKRXh6WU5kclVFRDkxSnEzZEFGQVY3dlJOYXczTDV5VkJ2bE9vRGx4UEo2ZjVmZHRMYXhrRWZhSEczUDU0c3A2YwpSTUNRNmMwd3NMT1ZaWjFIeWMvNk1iSWhSVTdITVhkSTllY2UvYnVFWmVSOUZtT2g5R3orSDFTUG5PTWdHVWNDCkF3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0VHTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME8KQkJZRUZCdjdUUmU0d3FQNktnV09pcjZBUTNCRVJiL1JNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUEwazBONwpHb09xR3FpUzRLbUFxNWpTWHRwMTVBYjRmS0dJL3pZSHdiVWNiTVNxUGNsczhUSkRrcXpmaFgyL2ZKN1hkc2hHCkkrTHNMbXFSM0hFNEtoNFRHcVFXTE1hRWxjSjNwYjlTbFJxY2dBbEVWMStkNDRkOXI1cVlGRlA3VkJwWTBuYWIKMVFLeHFyUWd4bmFjQzJmaTlxdGV6M01ubUJoMVRUOXowOHlaaURPVHpteHlpVTRTcmZzRFEwVEw5YXdZb2dFawpJRTUvN2thRjYrbzNNSng4TGF6UkV6TmhNYTdlQ2NCUUFmKzFXMERFdDQvNWR6bk10MVNYTmNOaENzUDFHVU1rCkZwQkIyZjIrVnloNjVjSjBWVk5rN2gvSDlPRnl5a2NYNWhEeHRaMXpuWDhvQWpZTks1WTVBbDBreVdabzZmTWQKZ3llZm1rY2VzV1dTMTdqcwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBdGNDOWNOVnVIb0ljNVBnMCtCOFBHR2pYT3lJang4MytQRXczbnBsV1RqMGVlUUowCndldlZ0WGlyMFYxTm1sLzc1Tjk4VENFMEZKOGwwUWZNdFROU2FSRE5kajNiUHhzUGdDOEhFMlhBRGdONUJ4Qy8KdVJocGRWeVJpNU9KbjZpbnNhRlFkUUNwekU4YzlwRCtQK3BaSUd4ZXhUdFFQUXZIM0pTNmJ1N1NSSmc4V0d3egpCcWF0ZWQ2dDBpeGFEOE9ORk1HQTNuNmJtb0g5OHRjMCtOakZSMFVUSE5nMTJ0UVFQM1VtcmQwQVVCWHU5RTFyCkRjdm5KVUcrVTZnT1hFOG5wL2w5MjB0ckdRUjlvY2JjL25peW5weEV3SkRwelRDd3M1VmxuVWZKei9veHNpRkYKVHNjeGQwajE1eDc5dTRSbDVIMFdZNkgwYlA0ZlZJK2M0eUFaUndJREFRQUJBb0lCQUd2aU5WQ2xqNURTWUw1VQp5blJCVTErRTA4VUk5YjRpK3ZibHN0b1VZSk5lV2hrd0tRZjJxY3JuRHUzZWVUTGFLSlhwUmttV0oralpzc1BKCjRtdm9ROUdUcExHNzg4a1lrZkhmZUU2K1JlckxpdXB6dWFudjRLRkdTaXBVY0F0eU8rQUhSYys5amd4MUpWY0MKSjdqZXJQcSsrTjRQNEFmc1Z6MEtsME5EeFZIckgwcmFJYWhrbG1jQVNjU21xbGpYc0JLd3RRY1ZaRjhGM0RTQQp6cmp4MHZPSnN6R0NDak9zaVo3NnVOOUhscTJhYmV0VDFZdkFBa091VHZVcUZweFB3RG5qTWxtOGk4dW1zdGx4ClEwcEo4N0xEcDZOZWxPSVkvS2lpb1dVdXBrdTB0REFldzk4Z3NhOFBoZUJPYzVoN1g5UkJNWmE0dTlLdm9PcngKLzF1U3Fka0NnWUVBMTF1RDdPTG5Pd010QVo2cXZrMlk5Vm80MkxpSGZtV1dJSkVuZVNQNCtwdS95bjVRUTM3dwpkVjhhRFQxc3M0NWNRU1NJVzZoOUlJSWJ1NDVhZ2JrQWtLRVhvUUNkTUxFSWFLV0hHM0hUa3ZHUHpXNjNnVGJaCm9YaU1XdWlCd3Q0TnVmV1FaSmQ4S2c1ZEtRYkVtMTFsWm1BUlhXd1JUWkI0Sk9XV2NPT0N6aDBDZ1lFQTJBMnkKNFdxN3dBTzhacUVacHNQS3B0S1JnTmV2RHM0Z3F1eVV0aUNyRjkrbjlhL0NFRkVRdS9ZWENxaWhFRnRZMDJWcwo3L2Z4dDNVWlN1Rk4wR2VKcDk2YTNnMW45OHRBdjlrMytyTTRXWUtOMlVTdnFqR0Y0SUMyQktWK0crSC9oc1N2CjNEd3pzZFA3bnZoRCs5dmVDeUtFbVZqSnE4RTVJd040UlljODk3TUNnWUJMVHo5MUtXdi9JUDh1SDlSSnRFMFgKRDdQdFphcE1NeTRxdVZmNmJ1LzBnMTZ3YXplYVF0dkh6N2dHaFVKc0VBNkc0VVdsOStlNTVJWGFNcy9IcVhCZgpJMVptQVJiM0hoRjR0dG5tYVFtNXl5dWtoV0U2bUhuR2s2ZFJheGxsa2MxdkNFYTBScDB1LzlMb00rdXhBUm9pCmtObkJ0N2JkVHZZVXdReTQ4WGFlcVFLQmdCTnNoOXlFUUFUdlVRelpCdmxiT09qdW5XNDc5ZDBhNHd6NjRCUFAKdEJJZFpYaE5LT0ZXcUc1OW5XeXo1R2NZRDFCU0dnMG8rVzVJOU5FcW1GaFlOcVFFKzE5alRTbVYrR2hIR3lWSwozNUlNanJ3dDFLMDBicGpVZVlqSmFDRVJuR3Q5VzJJdGQyaFJhcG5NTURDQWYrSDRaSHQwNUF5dy9uWUxaZEM2CmE5ekpBb0dBU0JIYlRPWVo1SGdMVmhOYTFrNVFzc1BOSEppWVIwaWk0TXVWUGh5WTJKVEpUaWNiUlZldHJ1cVcKNFlCQjRHN0RZTmNsNU9JWURyM0J6VHdsYlRUTkNqNXJIMmtwL2dyMUk4d005TlYxWFV6dUp3WFZVVTc3OGJwaApiL3FtblhyWHdqVFJLZVFsbitleis5RzlxUGIySHVPa3pyQ2UzVmlQeDRIWTYrbzVLNHc9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== +kind: Secret +metadata: + name: ca-pair-sslcerts +type: kubernetes.io/tls diff --git a/kustomize/base/confluent/control-centre.yaml b/kustomize/base/confluent/control-centre.yaml new file mode 100644 index 0000000..ca16b90 --- /dev/null +++ b/kustomize/base/confluent/control-centre.yaml @@ -0,0 +1,16 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: ControlCenter +metadata: + name: controlcenter +spec: + replicas: 1 + podTemplate: + probe: + liveness: + periodSeconds: 10 + failureThreshold: 5 + timeoutSeconds: 500 + image: + application: confluentinc/cp-enterprise-control-center-operator:6.1.1.0 + init: confluentinc/cp-init-container-operator:6.1.1.0 + dataVolumeCapacity: 10Gi \ No newline at end of file diff --git a/kustomize/base/confluent/kafka-connect.yaml b/kustomize/base/confluent/kafka-connect.yaml new file mode 100644 index 0000000..5afbad7 --- /dev/null +++ b/kustomize/base/confluent/kafka-connect.yaml @@ -0,0 +1,9 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: Connect +metadata: + name: connect +spec: + replicas: 1 + image: + application: confluentinc/cp-server-connect-operator:6.1.1.0 + init: confluentinc/cp-init-container-operator:6.1.1.0 \ No newline at end of file diff --git a/kustomize/base/confluent/kafka.yaml b/kustomize/base/confluent/kafka.yaml new file mode 100644 index 0000000..e568be2 --- /dev/null +++ b/kustomize/base/confluent/kafka.yaml @@ -0,0 +1,10 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: Kafka +metadata: + name: kafka +spec: + replicas: 3 + image: + application: confluentinc/cp-server-operator:6.1.1.0 + init: confluentinc/cp-init-container-operator:6.1.1.0 + dataVolumeCapacity: 10Gi diff --git a/kustomize/base/confluent/ksqldb.yaml b/kustomize/base/confluent/ksqldb.yaml new file mode 100644 index 0000000..7f36e97 --- /dev/null +++ b/kustomize/base/confluent/ksqldb.yaml @@ -0,0 +1,10 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: KsqlDB +metadata: + name: ksqldb +spec: + replicas: 1 + image: + application: confluentinc/cp-ksqldb-server-operator:6.1.1.0 + init: confluentinc/cp-init-container-operator:6.1.1.0 + dataVolumeCapacity: 10Gi diff --git a/apps/base/kafka/kustomization.yaml b/kustomize/base/confluent/kustomization.yaml similarity index 69% rename from apps/base/kafka/kustomization.yaml rename to kustomize/base/confluent/kustomization.yaml index d54af9c..0c39768 100644 --- a/apps/base/kafka/kustomization.yaml +++ b/kustomize/base/confluent/kustomization.yaml @@ -1,12 +1,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: confluent resources: - - certificates.yaml - zookeeper.yaml - kafka.yaml - kafka-connect.yaml - schema-registry.yaml - control-centre.yaml - - rest-proxy.yaml - - ksqldb.yaml \ No newline at end of file + - ksqldb.yaml + - ca-pair-sslcerts.yaml diff --git a/kustomize/base/confluent/rest-class.yaml b/kustomize/base/confluent/rest-class.yaml new file mode 100644 index 0000000..21c449d --- /dev/null +++ b/kustomize/base/confluent/rest-class.yaml @@ -0,0 +1,9 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: KafkaRestClass +metadata: + name: default +spec: + kafkaRest: + authentication: + type: basic + basic: diff --git a/kustomize/base/confluent/schema-registry.yaml b/kustomize/base/confluent/schema-registry.yaml new file mode 100644 index 0000000..8458536 --- /dev/null +++ b/kustomize/base/confluent/schema-registry.yaml @@ -0,0 +1,9 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: SchemaRegistry +metadata: + name: schemaregistry +spec: + replicas: 1 + image: + application: confluentinc/cp-schema-registry-operator:6.1.1.0 + init: confluentinc/cp-init-container-operator:6.1.1.0 diff --git a/apps/base/kafka/zookeeper.yaml b/kustomize/base/confluent/zookeeper.yaml similarity index 66% rename from apps/base/kafka/zookeeper.yaml rename to kustomize/base/confluent/zookeeper.yaml index 4fa5b6e..c14f5c9 100644 --- a/apps/base/kafka/zookeeper.yaml +++ b/kustomize/base/confluent/zookeeper.yaml @@ -1,9 +1,7 @@ ---- apiVersion: platform.confluent.io/v1beta1 kind: Zookeeper metadata: name: zookeeper - namespace: confluent spec: replicas: 3 image: @@ -11,9 +9,3 @@ spec: init: confluentinc/cp-init-container-operator:6.1.1.0 dataVolumeCapacity: 10Gi logVolumeCapacity: 10Gi - authentication: - type: digest - jaasConfig: - secretRef: credential - tls: - autoGeneratedCerts: true \ No newline at end of file diff --git a/infrastructure/kustomization.yaml b/kustomize/base/kustomization.yaml similarity index 80% rename from infrastructure/kustomization.yaml rename to kustomize/base/kustomization.yaml index e02d4bd..9509326 100644 --- a/infrastructure/kustomization.yaml +++ b/kustomize/base/kustomization.yaml @@ -1,6 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - sources - confluent - - tools \ No newline at end of file + diff --git a/kustomize/environments/kustomization.yaml b/kustomize/environments/kustomization.yaml new file mode 100644 index 0000000..481ee6d --- /dev/null +++ b/kustomize/environments/kustomization.yaml @@ -0,0 +1,2 @@ +resources: +- sandbox diff --git a/kustomize/environments/sandbox/control-centre.yaml b/kustomize/environments/sandbox/control-centre.yaml new file mode 100644 index 0000000..4187286 --- /dev/null +++ b/kustomize/environments/sandbox/control-centre.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: platform.confluent.io/v1beta1 +kind: ControlCenter +metadata: + name: controlcenter +spec: + tls: + autoGeneratedCerts: true + dependencies: + kafka: + bootstrapEndpoint: kafka.sandbox.svc.cluster.local:9071 + tls: + enabled: true + connect: + - name: connect + url: https://connect.sandbox.svc.cluster.local:8083 + tls: + enabled: true + ksqldb: + - name: ksqldb + url: https://ksqldb.sandbox.svc.cluster.local:8088 + tls: + enabled: true + schemaRegistry: + url: https://schemaregistry.sandbox.svc.cluster.local:8081 + tls: + enabled: true diff --git a/kustomize/environments/sandbox/kafka-connect.yaml b/kustomize/environments/sandbox/kafka-connect.yaml new file mode 100644 index 0000000..5c32954 --- /dev/null +++ b/kustomize/environments/sandbox/kafka-connect.yaml @@ -0,0 +1,12 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: Connect +metadata: + name: connect +spec: + tls: + autoGeneratedCerts: true + dependencies: + kafka: + bootstrapEndpoint: kafka.sandbox.svc.cluster.local:9071 + tls: + enabled: true diff --git a/kustomize/environments/sandbox/kafka.yaml b/kustomize/environments/sandbox/kafka.yaml new file mode 100644 index 0000000..ed1c269 --- /dev/null +++ b/kustomize/environments/sandbox/kafka.yaml @@ -0,0 +1,23 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: Kafka +metadata: + name: kafka +spec: +# replicas: 4 + configOverrides: + server: + - confluent.schema.registry.url=https://schemaregistry.sandbox.svc.cluster.local:8081 + tls: + autoGeneratedCerts: true + listeners: + internal: + tls: + enabled: true + external: + tls: + enabled: true + dependencies: + zookeeper: + endpoint: zookeeper.sandbox.svc.cluster.local:2182 + tls: + enabled: true diff --git a/kustomize/environments/sandbox/ksqldb.yaml b/kustomize/environments/sandbox/ksqldb.yaml new file mode 100644 index 0000000..940dca4 --- /dev/null +++ b/kustomize/environments/sandbox/ksqldb.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: platform.confluent.io/v1beta1 +kind: KsqlDB +metadata: + name: ksqldb +spec: + tls: + autoGeneratedCerts: true + dependencies: + kafka: + bootstrapEndpoint: kafka.sandbox.svc.cluster.local:9071 + tls: + enabled: true diff --git a/kustomize/environments/sandbox/kustomization.yaml b/kustomize/environments/sandbox/kustomization.yaml new file mode 100644 index 0000000..051ba2a --- /dev/null +++ b/kustomize/environments/sandbox/kustomization.yaml @@ -0,0 +1,10 @@ +namespace: sandbox +resources: +- ../../base +patchesStrategicMerge: + - control-centre.yaml + - kafka.yaml + - kafka-connect.yaml + - ksqldb.yaml + - schema-registry.yaml + - zookeeper.yaml \ No newline at end of file diff --git a/kustomize/environments/sandbox/schema-registry.yaml b/kustomize/environments/sandbox/schema-registry.yaml new file mode 100644 index 0000000..f98f5b6 --- /dev/null +++ b/kustomize/environments/sandbox/schema-registry.yaml @@ -0,0 +1,12 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: SchemaRegistry +metadata: + name: schemaregistry +spec: + tls: + autoGeneratedCerts: true + dependencies: + kafka: + bootstrapEndpoint: kafka.sandbox.svc.cluster.local:9071 + tls: + enabled: true diff --git a/kustomize/environments/sandbox/zookeeper.yaml b/kustomize/environments/sandbox/zookeeper.yaml new file mode 100644 index 0000000..fbf0fb4 --- /dev/null +++ b/kustomize/environments/sandbox/zookeeper.yaml @@ -0,0 +1,7 @@ +apiVersion: platform.confluent.io/v1beta1 +kind: Zookeeper +metadata: + name: zookeeper +spec: + tls: + autoGeneratedCerts: true \ No newline at end of file diff --git a/kustomize/operator/confluent-operator-helm-release-confluent.yaml b/kustomize/operator/confluent-operator-helm-release-confluent.yaml new file mode 100644 index 0000000..b4216b9 --- /dev/null +++ b/kustomize/operator/confluent-operator-helm-release-confluent.yaml @@ -0,0 +1,27 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: confluentinc + namespace: flux-system +spec: + url: https://packages.confluent.io/helm + interval: 1m +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: confluent + namespace: sandbox +spec: + interval: 1m + chart: + spec: + chart: confluent-for-kubernetes + sourceRef: + name: confluentinc + kind: HelmRepository + namespace: flux-system + values: + image: + registry: docker.io + name: confluent-operator-global diff --git a/apps/base/rolebindings/ldap/kustomization.yaml b/kustomize/operator/kustomization.yaml similarity index 51% rename from apps/base/rolebindings/ldap/kustomization.yaml rename to kustomize/operator/kustomization.yaml index f46f4bd..2b7b859 100644 --- a/apps/base/rolebindings/ldap/kustomization.yaml +++ b/kustomize/operator/kustomization.yaml @@ -1,6 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: confluent resources: - - groups - - users \ No newline at end of file + - confluent-operator-helm-release-confluent.yaml + - namespaces.yaml \ No newline at end of file diff --git a/kustomize/operator/namespaces.yaml b/kustomize/operator/namespaces.yaml new file mode 100644 index 0000000..723893d --- /dev/null +++ b/kustomize/operator/namespaces.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: sandbox +--- +apiVersion: v1 +kind: Namespace +metadata: + name: confluent \ No newline at end of file diff --git a/resources/certs/mds-publickey.txt b/resources/certs/mds-publickey.txt deleted file mode 100644 index fadcb74..0000000 --- a/resources/certs/mds-publickey.txt +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwMyjnP4qfdTKhCS5sPbV -qiXVyQ15wreVAsEqEsnMFt2JtML13ELOQ2szWn57Wzu782byEtYFlF3ToVW3cl4d -OJRzaSEQ6xe10R/i7TneItEQfpJr/2L4bubuQRGNe/KrLME0ivr9u4IEbbRS+ltu -6A9ggzGcaDSxV/eyKMNPadHQ/AN4BZijAeKZcDTjz6bHjJ6EQ3YNgqyn846reQk9 -ToHZl8bGHOhz5C7yoIfsxZgYHlnx6JGsiUZ5P36WGc38ZIB/m45o8cv4ifUVPUB0 -IQQ9AhYI5ZuMrxDsRPDX2GG6E5bW2vqDWyqXOY7cSoI7AikFdwATW4Rv7euEJUyz -NwIDAQAB ------END PUBLIC KEY----- \ No newline at end of file diff --git a/resources/certs/mds-tokenkeypair.txt b/resources/certs/mds-tokenkeypair.txt deleted file mode 100644 index 5e4c415..0000000 --- a/resources/certs/mds-tokenkeypair.txt +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAwMyjnP4qfdTKhCS5sPbVqiXVyQ15wreVAsEqEsnMFt2JtML1 -3ELOQ2szWn57Wzu782byEtYFlF3ToVW3cl4dOJRzaSEQ6xe10R/i7TneItEQfpJr -/2L4bubuQRGNe/KrLME0ivr9u4IEbbRS+ltu6A9ggzGcaDSxV/eyKMNPadHQ/AN4 -BZijAeKZcDTjz6bHjJ6EQ3YNgqyn846reQk9ToHZl8bGHOhz5C7yoIfsxZgYHlnx -6JGsiUZ5P36WGc38ZIB/m45o8cv4ifUVPUB0IQQ9AhYI5ZuMrxDsRPDX2GG6E5bW -2vqDWyqXOY7cSoI7AikFdwATW4Rv7euEJUyzNwIDAQABAoIBAQCKzIhZhI14q1Hk -kj/wy7ME3FotdPscmGe5ZPDyN78rEvCJZvXzTVELLkj5NCeAhd+ImqtZriS0LFwo -QPphZqnoys7Pd5OjfB1T4X3QRSHLtPEH/kerw0eRJ8WMqKNQAWMERE+cYpd6f17K -z9ARFvQgMrnLmVK9nnmyF8t2Fy27wqUVBmYXX/m+ne/+2S4PO8ZsPd3wY2Y9R8LV -ufbHC+H2ExA8nE4ztefg9zPyn1wMi/GMUg1WiCT3B2u3CZsWaZJzVItT6t7qnAZJ -XzkgNpIHn9mWuwh8kxgMd6sxDRAOD5iPd6a9i0oLSaS3/0LDezULC0VhTPy3G2oR -A0AJeOnRAoGBAPV1uz1pPJAtemr8wLiKhQOe8jAsxtnSzV8Fqd11qJYgnihwai+Y -k44hOJ/02/6wyq49FhMGmkyFWv5dUDERGV7McXP6bEfY5c1P+PdRUAm5H5nef37z -NR9f7oifV3j+49uy2VfUQCr/h+T+ywzAoc0iZyYGaI1wjKXQr3+1o55vAoGBAMkU -Bq2IaIDwomBgQCKQjCy/ANjQ32yMAGHf/mE32RTFpu5SZELe9yrGQr3xHFtQ9aQL -Vv5P09wZfb4IOdp/3wwHMqFjNjNdG8sw7RyNS+wfQGu8v1GfYssuBuXi9v0XGXFH -WenNQEUPbibRbocJ92OJTJK4P/s5vv132HDR/pu5AoGBAJ+Y8Sm45zwHlfVCajyT -NHFqQ6a3NoQi4I3MLOplujwC8VLx5NkVp7teNmcq2m/7m403AsdUH7dpbgS9v4pn -x8svuwTh6s28ZY7dVM/Z+uSXjciKNvPgRsYjpgEHOeTeNmF/JHpK834Br+ZhFL0x -8wJiQBclS43LhGe8DKBJBh3ZAoGAN5bHudXKPktIOKijUmrvtbcgPtCP0+xodqZ8 -JthPtURnP9+bRDlrz3F8JhKwKjaZkj5oUGo1QdXyQ0T26YcMXMDoqGFLLKwC8QuX -oZsWcDK7lo1ZvvD3WQBie89hRNrL99sn6lEKAY2ggC7KBZ8lu2jLuIwjdAqk2GH3 -fkkvwFECgYAyXj5z6COPIDJ1E1VLrJiw1YBXaa7ZLk5Epw3QvCM7hTKSFbuSNwsp -EuLmM7g8wMPZAbzs/RQOaf9IhE/x53dO2Imk5PARaoEsSFjND4dpVHaKem2cBomt -x5q0SqUVq6xv42213glBQMDJ4qQXTrsEBdpNynv7oVeXXwcaOTUaBw== ------END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/resources/populate_secrets.sh b/resources/populate_secrets.sh deleted file mode 100755 index 9adbb70..0000000 --- a/resources/populate_secrets.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -kubectl create secret generic credential \ ---from-file=plain-users.json=./users/creds-kafka-sasl-users.json \ ---from-file=digest-users.json=./users/creds-zookeeper-sasl-digest-users.json \ ---from-file=digest.txt=./users/creds-kafka-zookeeper-credentials.txt \ ---from-file=plain.txt=./users/creds-client-kafka-sasl-user.txt \ ---from-file=basic.txt=./users/creds-control-center-users.txt \ ---from-file=ldap.txt=./users/ldap.txt -kubectl create secret generic mds-token \ ---from-file=mdsPublicKey.pem=./certs/mds-publickey.txt \ ---from-file=mdsTokenKeyPair.pem=./certs/mds-tokenkeypair.txt - -# Kafka RBAC credential -kubectl create secret generic mds-client \ ---from-file=bearer.txt=./users/bearer.txt -# Control Center RBAC credential -kubectl create secret generic c3-mds-client \ ---from-file=bearer.txt=./users/c3-mds-client.txt -# Connect RBAC credential -kubectl create secret generic connect-mds-client \ ---from-file=bearer.txt=./users/connect-mds-client.txt -# Schema Registry RBAC credential -kubectl create secret generic sr-mds-client \ ---from-file=bearer.txt=./users/sr-mds-client.txt -# ksqlDB RBAC credential -kubectl create secret generic ksqldb-mds-client \ ---from-file=bearer.txt=./users/ksqldb-mds-client.txt -# Kafka REST credential -kubectl create secret generic rest-credential \ ---from-file=bearer.txt=./users/bearer.txt \ ---from-file=basic.txt=./users/bearer.txt \ No newline at end of file diff --git a/resources/users/bearer.txt b/resources/users/bearer.txt deleted file mode 100644 index eb2fc71..0000000 --- a/resources/users/bearer.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=kafka -password=kafka-secret diff --git a/resources/users/c3-mds-client.txt b/resources/users/c3-mds-client.txt deleted file mode 100644 index 5a28076..0000000 --- a/resources/users/c3-mds-client.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=c3 -password=c3-secret diff --git a/resources/users/connect-mds-client.txt b/resources/users/connect-mds-client.txt deleted file mode 100644 index ce4c7e7..0000000 --- a/resources/users/connect-mds-client.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=connect -password=connect-secret diff --git a/resources/users/creds-client-kafka-sasl-user.txt b/resources/users/creds-client-kafka-sasl-user.txt deleted file mode 100644 index eb2fc71..0000000 --- a/resources/users/creds-client-kafka-sasl-user.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=kafka -password=kafka-secret diff --git a/resources/users/creds-control-center-users.txt b/resources/users/creds-control-center-users.txt deleted file mode 100644 index 846ac30..0000000 --- a/resources/users/creds-control-center-users.txt +++ /dev/null @@ -1,3 +0,0 @@ -c3: c3-secret,Administrators -admin: Developer1,Administrators -admin1: Developer1,Administrators diff --git a/resources/users/creds-kafka-sasl-users.json b/resources/users/creds-kafka-sasl-users.json deleted file mode 100644 index d4537b7..0000000 --- a/resources/users/creds-kafka-sasl-users.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "kafka_client": "kafka_client-secret", - "c3": "c3-secret", - "kafka": "kafka-secret" -} \ No newline at end of file diff --git a/resources/users/creds-kafka-zookeeper-credentials.txt b/resources/users/creds-kafka-zookeeper-credentials.txt deleted file mode 100644 index 94e3cde..0000000 --- a/resources/users/creds-kafka-zookeeper-credentials.txt +++ /dev/null @@ -1,2 +0,0 @@ -username="kafka" -password="kafka-secret" \ No newline at end of file diff --git a/resources/users/creds-zookeeper-sasl-digest-users.json b/resources/users/creds-zookeeper-sasl-digest-users.json deleted file mode 100644 index 1df68af..0000000 --- a/resources/users/creds-zookeeper-sasl-digest-users.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "kafka": "kafka-secret" -} diff --git a/resources/users/ksqldb-mds-client.txt b/resources/users/ksqldb-mds-client.txt deleted file mode 100644 index 9e1f256..0000000 --- a/resources/users/ksqldb-mds-client.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=ksql -password=ksql-secret diff --git a/resources/users/ldap.txt b/resources/users/ldap.txt deleted file mode 100644 index dfa92e7..0000000 --- a/resources/users/ldap.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=cn=mds,dc=test,dc=com -password=Developer! diff --git a/resources/users/sr-mds-client.txt b/resources/users/sr-mds-client.txt deleted file mode 100644 index 854f639..0000000 --- a/resources/users/sr-mds-client.txt +++ /dev/null @@ -1,2 +0,0 @@ -username=sr -password=sr-secret diff --git a/tldr.sh b/tldr.sh deleted file mode 100755 index 8db4c80..0000000 --- a/tldr.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -flux bootstrap github \ ---owner=${GITHUB_USER} \ ---repository=${GITHUB_REPO} \ ---path=clusters/production \ ---branch=main \ ---personal -sleep 10 -echo "Sleeping for 10 seconds to ensure namespace is created" -kubectl create secret -n confluent docker-registry confluent-registry \ ---docker-server=confluent-docker-internal-early-access-operator-2.jfrog.io \ ---docker-username=$USER \ ---docker-password=$APIKEY \ ---docker-email=$EMAIL && \ -kubectl create secret -n flux-system generic https-credentials \ ---from-literal=username=$USER \ ---from-literal=password=$APIKEY -kubectl create secret -n confluent generic credential \ ---from-file=plain-users.json=./resources/users/creds-kafka-sasl-users.json \ ---from-file=digest-users.json=./resources/users/creds-zookeeper-sasl-digest-users.json \ ---from-file=digest.txt=./resources/users/creds-kafka-zookeeper-credentials.txt \ ---from-file=plain.txt=./resources/users/creds-client-kafka-sasl-user.txt \ ---from-file=basic.txt=./resources/users/creds-control-center-users.txt \ ---from-file=ldap.txt=./resources/users/ldap.txt -kubectl create secret -n confluent generic mds-token \ ---from-file=mdsPublicKey.pem=./resources/certs/mds-publickey.txt \ ---from-file=mdsTokenKeyPair.pem=./resources/certs/mds-tokenkeypair.txt -# Kafka RBAC credential -kubectl create secret -n confluent generic mds-client \ ---from-file=bearer.txt=./resources/users/bearer.txt -# Control Center RBAC credential -kubectl create secret -n confluent generic c3-mds-client \ ---from-file=bearer.txt=./resources/users/c3-mds-client.txt -# Connect RBAC credential -kubectl create secret -n confluent generic connect-mds-client \ ---from-file=bearer.txt=./resources/users/connect-mds-client.txt -# Schema Registry RBAC credential -kubectl create secret -n confluent generic sr-mds-client \ ---from-file=bearer.txt=./resources/users/sr-mds-client.txt -# ksqlDB RBAC credential -kubectl create secret -n confluent generic ksqldb-mds-client \ ---from-file=bearer.txt=./resources/users/ksqldb-mds-client.txt -# Kafka REST credential -kubectl create secret -n confluent generic rest-credential \ ---from-file=bearer.txt=./resources/users/bearer.txt \ ---from-file=basic.txt=./resources/users/bearer.txt \ No newline at end of file