cronjob을 배포했습니다. 비밀에 포함된 매개변수(AES 키 회전)를 업데이트해야 합니다. 비밀은 암호화되어 있습니다.
작업을 재배포하지 않고 AES 키를 업데이트할 수 있습니까?
내가 시도한 것:
"kubectl edit secret jobsecret" -- edits the sops encrypted file but it is still encrypted
"helm edit secrets jobsecret.yaml" -- edits/encrypts the parameter file before deploy
다음 생각은 파일을 만든 다음 sops로 암호화하고 결과를 "kubectl edit secret jobssecret" 편집기에 복사/붙여넣는 것입니다. 나는 더 좋은 방법이 있기를 바랐습니다.
저는 k8s 관리자가 아닌 개발자입니다. 그러나 선택에 의한 것은 아닙니다. "k8s 관리자 없음" 문제를 해결할 수 있을 때까지 정보를 입력하세요.
답변1
TL;DR
$ kubectl patch
자원 필드를 업데이트하는 데 사용할 수 있습니다 .
예:
kubectl patch secret YOUR_SECRET -p '{"data":{"key":"NEW_BASE64_ENCODED_VALUE"}}'
여기에서 더 많은 참고 자료를 찾을 수 있습니다:
아래에 더 많은 설명을 포함시켰습니다.
비밀 "패치"의 예:
$ secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: super-secret
data:
username: a3J1aw==
password: b2xkLXBhc3N3b3Jk
참고 사항!
username
및 와 같은 키 값은password
base64로 인코딩됩니다!
값을 변경하려면 password
다음을 실행해야 합니다.
kubectl patch super-secret -p '{"data":{"password":"bmV3LXBhc3N3b3Jk"}}'
새로 업데이트된 비밀을 표시하면 다음이 표시되어야 합니다(출력은 부분적임).
$ kubectl get secret super-secret -o yaml
data:
password: bmV3LXBhc3N3b3Jk
username: a3J1aw==
추가 참조 자료를 확인하시기 바랍니다.