Sops와 ArgoCD의 비밀
8935 단어 kubernetestutorialsecuritycicd
sops with GCP KMS 을 사용합니다. 가장 먼저 필요한 것은
roles/cloudkms.cryptoKeyDecrypter
역할을 가진 서비스 계정이고 Kubernetes에 비밀을 생성합니다.kubectl create secret generic google-sa --from-file sa.json
아이디어는 ArgoConfig Management Plugin를 사용하여 비밀을 해독하고 모든 Kubernetes 개체(배포, 서비스 등)가 포함된 평면 yaml을 생성하고 Sops 및 기타 필요한 도구를 설치하는 데 사용Cumstom Tooling하는 것입니다.
그 과정에서 몇 가지 문제가 발생했으며 그 중 하나는 출력 yaml의 형식을 올바르게 지정하고 다음과 같은 오류를 방지하기 위해 yq를 사용해야 한다는 것입니다.
error converting YAML to JSON: yaml: line 4: did not find expected ',' or ']'.
Helm에서 argo-cd를 설치하기 위한 값입니다. 구성에서는 모든 암호가 yaml을 사용한 파일 코딩
secrets.enc
에 있다고 가정합니다.server:
config:
configManagementPlugins: |
- name: sops
init:
command: ["/bin/sh", "-c"]
args: ["echo '---' > secrets.yaml && sops -d --input-type yaml --output-type yaml secrets.enc >> secrets.yaml"]
generate:
command: ["/bin/sh", "-c"]
args: ["source /virtualenv-python/bin/activate; pip install yq; cat *.yaml | yq -y"]
repoServer:
volumes:
- name: custom-tools
emptyDir: {}
- name: virtualenv-python
emptyDir: {}
- name: google-sa
secret:
secretName: google-sa
items:
- key: sa.json
path: sa.json
volumeMounts:
- mountPath: /usr/local/bin/sops
name: custom-tools
subPath: sops
- mountPath: /usr/local/bin/jq
name: custom-tools
subPath: jq
- mountPath: /etc/secrets/sa.json
name: google-sa
subPath: sa.json
- mountPath: /virtualenv-python
name: virtualenv-python
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /etc/secrets/sa.json
initContainers:
- name: custom-tools
image: alpine:3.8
command: ["/bin/sh", "-c"]
args:
- wget https://github.com/mozilla/sops/releases/download/v3.7.3/sops-v3.7.3.linux.amd64;
chmod a+x sops-v3.7.3.linux.amd64;
mv sops-v3.7.3.linux.amd64 /custom-tools/sops;
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64;
chmod a+x jq-linux64;
mv jq-linux64 /custom-tools/jq;
volumeMounts:
- mountPath: /custom-tools
name: custom-tools
- name: virtualenv-python
image: python:3.7
command: ["/bin/sh", "-c"]
args:
- python3 -m venv /virtualenv-python
volumeMounts:
- mountPath: /virtualenv-python
name: virtualenv-python
helm upgrade sops argo/argo-cd --values values-sops.yaml
그리고 그것을 시도하는 응용 예.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: secrets
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/Callepuzzle/manifests
targetRevision: main
path: poc-argocd
plugin:
name: sops
destination:
name: ''
namespace: ''
server: 'https://kubernetes.default.svc'
Reference
이 문제에 관하여(Sops와 ArgoCD의 비밀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/callepuzzle/secrets-in-argocd-with-sops-fc9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)