From e66e15aecb8b23b040d1ed898754598c47dc08be Mon Sep 17 00:00:00 2001 From: Amarpreet Minhas Date: Mon, 10 Jul 2023 19:36:35 +0000 Subject: [PATCH] Import vault config operator --- argo/apps/values.yaml | 5 ++ argo/vault-config-operator/values.yaml | 17 +++++ helm/{setup => apps}/argocd/install.sh | 0 .../{setup => apps}/argocd/istio-ingress.yaml | 0 helm/{setup => apps}/argocd/values.yaml | 0 .../external-secrets.yaml | 66 ------------------- .../007-vault-config-operator/install.sh | 51 -------------- .../007-vault-config-operator/values.yaml | 6 -- 8 files changed, 22 insertions(+), 123 deletions(-) create mode 100644 argo/vault-config-operator/values.yaml rename helm/{setup => apps}/argocd/install.sh (100%) rename helm/{setup => apps}/argocd/istio-ingress.yaml (100%) rename helm/{setup => apps}/argocd/values.yaml (100%) delete mode 100644 helm/setup/007-vault-config-operator/external-secrets.yaml delete mode 100755 helm/setup/007-vault-config-operator/install.sh delete mode 100644 helm/setup/007-vault-config-operator/values.yaml diff --git a/argo/apps/values.yaml b/argo/apps/values.yaml index 9318c2d..839ef57 100644 --- a/argo/apps/values.yaml +++ b/argo/apps/values.yaml @@ -20,6 +20,11 @@ helmApps: repoURL: https://kubernetes-sigs.github.io/external-dns/ chart: external-dns revision: 1.13.0 + - app: vault-config-operator + namespace: vco + repoURL: https://redhat-cop.github.io/vault-config-operator + chart: vault-config-operator + revision: 0.8.16 - app: prometheus namespace: prometheus repoURL: https://prometheus-community.github.io/helm-charts diff --git a/argo/vault-config-operator/values.yaml b/argo/vault-config-operator/values.yaml new file mode 100644 index 0000000..29b6541 --- /dev/null +++ b/argo/vault-config-operator/values.yaml @@ -0,0 +1,17 @@ +--- +name: vault-config-operator +namespace: vco +serviceAccountName: vault-config-operator +externalSecrets: + secretStoreName: vault-config-operator + vaultRole: vault-config-operator + secrets: + - secretKey: ca.crt + key: vault-config-operator + property: ca.crt + +enableCertManager: true + +env: + - name: "VAULT_ADDR" + value: https://vault.service.masked.name:8200 diff --git a/helm/setup/argocd/install.sh b/helm/apps/argocd/install.sh similarity index 100% rename from helm/setup/argocd/install.sh rename to helm/apps/argocd/install.sh diff --git a/helm/setup/argocd/istio-ingress.yaml b/helm/apps/argocd/istio-ingress.yaml similarity index 100% rename from helm/setup/argocd/istio-ingress.yaml rename to helm/apps/argocd/istio-ingress.yaml diff --git a/helm/setup/argocd/values.yaml b/helm/apps/argocd/values.yaml similarity index 100% rename from helm/setup/argocd/values.yaml rename to helm/apps/argocd/values.yaml diff --git a/helm/setup/007-vault-config-operator/external-secrets.yaml b/helm/setup/007-vault-config-operator/external-secrets.yaml deleted file mode 100644 index 8b997ed..0000000 --- a/helm/setup/007-vault-config-operator/external-secrets.yaml +++ /dev/null @@ -1,66 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -type: kubernetes.io/service-account-token -metadata: - name: serviceaccounttoken - namespace: vco - annotations: - kubernetes.io/service-account.name: "vault-config-operator" -... ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: vault-config-operator-tokenreview-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: system:auth-delegator -subjects: -- kind: ServiceAccount - name: vault-config-operator - namespace: vco -- kind: ServiceAccount - name: default - namespace: vco -- kind: ServiceAccount - name: controller-manager - namespace: vco -... ---- -apiVersion: external-secrets.io/v1beta1 -kind: SecretStore -metadata: - name: vault-config-operator - namespace: vco -spec: - provider: - vault: - server: "https://vault.service.masked.name:8200" - path: "kv" - version: "v2" - caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUROVENDQWgyZ0F3SUJBZ0lVWXA4eG81dDJsSkZQM1NpRDFmSmlyZ0dVUUowd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZqRVVNQklHQTFVRUF4TUxiV0Z6YTJWa0xtNWhiV1V3SGhjTk1qQXdPREk1TVRreU16RXlXaGNOTXpBdwpPREkzTVRreU16UXlXakFXTVJRd0VnWURWUVFERXd0dFlYTnJaV1F1Ym1GdFpUQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNSTdvUitLSHZ2em5mbmFBWERNTzVxcFNUQ0FZQ3lmakZFb2hZSmYKbE9jbkxPTlhiM2Y2c1A1ZDFlbHRMK1VUcTBSVlU1VVAwYU5XN2hxRFRhNDFNUncwSkNEdEI2OHlLZFlxMmhaZgo5N2dBK2xqM01FSlU2UlRBS0xyZzc1R1JoL0FiTkVJZ3d2UHVIS1c2aE1idHdPeU05REZVLy9XM3hwdXNhbFh5ClJNRnpBSGZTRGo5Y2krVXlnVXQ5SElOV2QvU21NR0cvOFBnaGFSaGZFNDR3UkZNcVllemVsaUl0MkpJczQzQlYKN0hxRzBPZXY5V1BlWG1pYVpVWUtRZXRIaVFxUjE0TXhpdjFJR3pDbXd3Tis5YjR0WnRaVGE1OG9NNWRQWGZiYgpsckVMUUU1T3NQYU50TXRFUjNNZ3hvdkROM1ZTQ0dIL08vR3lhRVdWYW5ZNVVGOENBd0VBQWFON01Ia3dEZ1lEClZSMFBBUUgvQkFRREFnRUdNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGQlk4alczZkRWVXAKVVJ0MXByaG1ETWprVmlrZ01COEdBMVVkSXdRWU1CYUFGQlk4alczZkRWVXBVUnQxcHJobURNamtWaWtnTUJZRwpBMVVkRVFRUE1BMkNDMjFoYzJ0bFpDNXVZVzFsTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBV1F6NGQzUXpFClc4TkdBMTZaUGFtbFZ1Yk9MQjVEdFp6MnFyU3JuM0RlT2JMSURTaEluVjNxdFJsRHg5SFlKTFRDQTc1S2V0MEoKTlRzeU1jVHkydHhkNEk4aGdkRjMwWEplRWNpTjl3WjBtS0VlUC9ZS0R3ZThWMlh3V3E0WFlrRGVjaGxXSHBabwpQZldjb0xwckt3VlVJNEh6YXFrTm13Y21NVUk0eEFzQytTTGUxbXJlYnNlS200OW9Pd2RRcy9vUFZMSyswbkVwClJ2RDBhT3ZvaElMSWEvMlp0S2N6dmhCL0wzZm81cGc5RXgvMEpEQmRESEllZE1hYkQzcW44SWRzZStQNURmd2EKSnUyQ3R5YituMVRUUHhSRE14czJjRmJBNWlycisyQVJKZDhqdEdTKzFmeXhvZ2pPV1MxUlI1MjNGK3FJUzNzdQpLaWJHZWwrZ0ZQcHEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRDB6Q0NBcnVnQXdJQkFnSVVNNTJ1aFhTZVRDaW0xcG16dWNtL2NuSWdOcDh3RFFZSktvWklodmNOQVFFTApCUUF3RmpFVU1CSUdBMVVFQXhNTGJXRnphMlZrTG01aGJXVXdIaGNOTWpBd09ESTVNVGt5TnpBd1doY05NalV3Ck9ESTRNVGt5TnpNd1dqQXRNU3N3S1FZRFZRUURFeUp0WVhOclpXUXVibUZ0WlNCSmJuUmxjbTFsWkdsaGRHVWcKUVhWMGFHOXlhWFI1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE4THVHbytBcwpJQ1lXZEpqQkNZMHNuRi9YK2pGMXRkY3JRek5pUktFU0ViNWRzRGl5OTc5YnVnQ2JsUFFEUStnNVdHcVhYNHBqClV5WlpFM1p3aE91ZklTbEdLMG93MWFNanFTK3BGbFE4NUtSRC9qVXRMUFJVSnVRRittMll3SWQvTWc2L0I3UWsKZDE2NnVKa054UytNR1pDaTJPWVhlb2l2bk9ZN1EwS2ovMHZJYmM1VnQza0NSVmcybGpMU1Fob0JkKzg1QUhNUgpqZVJqWk1lWUVZRjJIVFZ3cmc0RHJDL3IwME1WdERjTnFzNitNN1laL3J6bnk3M0d2ZkpXZldvQjFDNHBpWmxnCmZ2VWNTREw1SEFoaml1NWNTZUlSN0RUdVZ4N3Q0UG9LNkFxVWtQeWdEdHExWmFMeWJYVDdYNmQwNzJkUjVBWE8KbldGTFBhYUdKOTc5aXdJREFRQUJvNElCQURDQi9UQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0R3WURWUjBUQVFILwpCQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVJa2hWWUJhSzlDY3ZYRzhGTTJqS1ZaMTZvWkF3SHdZRFZSMGpCQmd3CkZvQVVGanlOYmQ4TlZTbFJHM1dtdUdZTXlPUldLU0F3VVFZSUt3WUJCUVVIQVFFRVJUQkRNRUVHQ0NzR0FRVUYKQnpBQ2hqVm9kSFJ3T2k4dmRtRjFiSFF1WTI5c2RXMWlhV0V1YldGemEyVmtMbTVoYldVNk9ESXdNQzkyTVM5dwphMmxmY205dmRDOWpZVEJIQmdOVkhSOEVRREErTUR5Z09xQTRoalpvZEhSd09pOHZkbUYxYkhRdVkyOXNkVzFpCmFXRXViV0Z6YTJWa0xtNWhiV1U2T0RJd01DOTJNUzl3YTJsZmNtOXZkQzlqY213d0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBSzZITWdSK2hwd2paQ21mNU5zekRTSHI3ZFlLWlhQNExyY0hQV3M5NG5MTTMzVVo1NzJ1YkdIcwpkS2pSdzhZRDBjbmNyc3lwc1ltRWdSNTdVK0RIa3lzMzk0d2tiN1VPd3kxWnZkNUlJUlhkUDBjRHlsejBRenFNCkFQblFZTitpc21rb2xqaGs5ZXkwUWJvM0NtUGpNK1VRY0F4dVpRdEE0TStyaUMxK2prdWRlMXVZTDBzekM2WTkKNEtldGZ2Yk5rZWRTYVY1eUphUktDQmhSY0M0L0dqcEJHL29kUS81QWZCUEFGalpxaGNJSldCclZZYlRRVkM3OQpoTUExaXdXSlBtVDlMc2pNU1VmeEZUUHp4Um5OWFFpS0Z6NWtUMk9pUzFucWg4YU9jeVU5WUM5Mjhwa2lmTkpWCktva3VEZXpKRk03aWUzZCtFY0JrMVY5bEh3T1dkdG89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K - auth: - kubernetes: - mountPath: "k8s-teapot" - role: "vault-config-operator" - secretRef: - name: "serviceaccounttoken" -... ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: vco - namespace: vco -spec: - secretStoreRef: - name: vault-config-operator - kind: SecretStore - data: - - secretKey: ca.crt - remoteRef: - key: vault-config-operator - property: ca.crt -... diff --git a/helm/setup/007-vault-config-operator/install.sh b/helm/setup/007-vault-config-operator/install.sh deleted file mode 100755 index b7e5729..0000000 --- a/helm/setup/007-vault-config-operator/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -CHART_VERSION=0.8.4 -VAULT_AUTH_NAMESPACE="k8s-teapot" -NAMESPACE=vco - -helm repo add vault-config-operator https://redhat-cop.github.io/vault-config-operator -helm repo update - -kubectl create ns ${NAMESPACE} -kubectl create serviceaccount -n ${NAMESPACE} vault-config-operator - -cat << EOH > vault-config-operator.hcl -path "kv/data/vault-config-operator" { - capabilities = ["read"] -} - -# List existing policies -path "sys/policy" -{ - capabilities = ["list"] -} -path "sys/policy/*" -{ - capabilities = ["create", "read", "update", "delete", "list"] -} -EOH - -vault policy write vault-config-operator vault-config-operator.hcl -rm vault-config-operator.hcl - -kubectl apply -n ${NAMESPACE} -f external-secrets.yaml - -HOST_IP=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+') -TOKEN="$(kubectl get secret serviceaccounttoken -n ${NAMESPACE} -o go-template='{{ .data.token }}' | base64 -d)" - -vault write auth/${VAULT_AUTH_NAMESPACE}/role/vault-config-operator \ - bound_service_account_names=vault-config-operator,controller-manager,default \ - bound_service_account_namespaces=${NAMESPACE} \ - policies=vault-config-operator \ - ttl=24h - -vault write auth/${VAULT_AUTH_NAMESPACE}/login role=vault-config-operator jwt=${TOKEN} iss=https://${HOST_IP}:6443 - -helm upgrade --install \ - vault-config-operator \ - vault-config-operator/vault-config-operator \ - -n ${NAMESPACE} \ - --version ${CHART_VERSION} \ - --create-namespace \ - --values values.yaml \ - --cleanup-on-fail diff --git a/helm/setup/007-vault-config-operator/values.yaml b/helm/setup/007-vault-config-operator/values.yaml deleted file mode 100644 index 4899612..0000000 --- a/helm/setup/007-vault-config-operator/values.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -enableCertManager: true - -env: - - name: "VAULT_ADDR" - value: https://vault.service.masked.name:8200