
เชฒเชเซเชฏเชพ เชชเชเซ เชฅเซเชกเซ เชธเชฎเชฏ , เชเซเชฏเชพเช เชฎเซเช เชเชชเชณเชคเชพเชชเซเชฐเซเชตเช jsonnet เช เชจเซ gitlab เชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเซเชฏเซเช, เชฎเชจเซ เชธเชฎเชเชพเชฏเซเช เชเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเซเชเซเชเชธเชชเชฃเซ เชธเชพเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชฌเชฟเชจเชเชฐเซเชฐเซ เชฐเซเชคเซ เชเชเชฟเชฒ เช เชจเซ เช เชธเซเชตเชฟเชงเชพเชเชจเช เชเซ.
เชฎเซเชเชพ เชญเชพเชเชจเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชเช เชฒเชพเชเซเชทเชฃเชฟเช เชเชพเชฐเซเชฏ เชเชฐเซเชฐเซ เชเซ: "YAML เชเชจเชฐเซเช เชเชฐเซ เช เชจเซ เชคเซเชจเซ Kubernetes เชฎเชพเช เชฎเซเชเซ." เชเชฐเซเชเชฐ, เช เชคเซ เชเซ เชเซ เชเชฐเซเชเซ เชธเซเชกเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชฐเซ เชเซ.
เชเชฐเซเชเซ เชธเซเชกเซ เชคเชฎเชจเซ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเชจเซ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซ เช เชจเซ เชคเซเชจเซเช เชธเซเชเซเช เชเซเชฌเชฐเชจเซเชเซเชธเชจเซ เชฎเซเชเชฒเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ, เชตเชฟเชตเชฟเชง เชชเซเชฐเชเชพเชฐเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชฎเชพเชเซ เชธเชชเซเชฐเซเช เชเซ: Kustomize, Helm charts, Ksonnet, bare Jsonnet, เช เชฅเชตเชพ เชซเชเซเชค YAML/JSON เชฎเซเชจเชฟเชซเซเชธเซเช เชธเชพเชฅเซเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซเช.
เช เชธเซเช เชฎเซเชเชพเชญเชพเชเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชชเซเชฐเชคเซ เชนเชถเซ, เชชเชฐเชเชคเซ เชฆเชฐเซเช เชฎเชพเชเซ เชจเชนเซเช. เชฆเชฐเซเชเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชชเชนเซเชเชเซ เชตเชณเชตเชพ เชฎเชพเชเซ, เชเชฐเซเชเซ เชธเซเชกเซเชฎเชพเช เชเชธเซเชเชฎ เชเซเชฒเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเซ.
เชธเซ เชชเซเชฐเชฅเชฎ, เชฎเชจเซ เชธเชฎเชฐเซเชฅเชจ เชเชฎเซเชฐเชตเชพเชจเซ เชธเชเชญเชพเชตเชจเชพเชฎเชพเช เชฐเชธ เชเซ ะธ , เชเซเชจเซ เช เชเชพเชเชจเชพ เชฒเซเชเชฎเชพเช เชธเชเชชเซเชฐเซเชฃ เชเชฐเซเชเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ.
เชคเชฎเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชถเชฐเซ เชเชฐเซ เชคเซ เชชเชนเซเชฒเชพเช, เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเชพ เช เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ Argo CD เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
เชฆเชฐเซเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ, เชคเซเชฎเชพเช เชฌเซ เชคเชฌเชเซเชเชพเช เชเซ:
- Init โ เชเชฎเชพเชตเช เชชเชนเซเชฒเชพเช เชชเซเชฐเชพเชฐเชเชญเชฟเช เชคเซเชฏเชพเชฐเซ, เช เชนเซเช เชเชเชเชชเชฃ เชฅเช เชถเชเซ เชเซ: เช เชตเชฒเชเชฌเชจ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเซเช, เชฐเชนเชธเซเชฏเซเชจเซ เช เชจเชชเซ เช เชเชฐเชตเซเช เช เชจเซ เชตเชงเซ.
- เชชเซเชฆเชพ โ เชฎเซเชจเชฟเชซเซเชธเซเช เชเชจเชฐเซเชถเชจ เชเชฎเชพเชจเซเชกเชจเซ เชธเซเชงเซเช เช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเซเชจเซ, เชเชเชเชชเซเช เชฎเชพเชจเซเชฏ YAML เชธเซเชเซเชฐเซเชฎ เชนเซเชตเซเช เชเซเชเช, เชเซเชฒเชธเซเชเชฐ เชชเชฐ เช เชฌเชฐเชพเชฌเชฐ เชฒเชพเชเซ เชฅเชถเซ.
เชจเซเชเชงเชชเชพเชคเซเชฐ เชฌเชพเชฌเชค เช เชเซ เชเซ เชเชฐเซเชเซ เชนเซเชฒเซเชฎ เชธเชนเชฟเชค เชเซเชเชชเชฃ เชชเซเชฐเชเชพเชฐเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เช เช เชญเชฟเชเชฎ เชฒเชพเชเซ เชเชฐเซ เชเซ. เชเชเชฒเซ เชเซ, เชเชฐเซเชเซ เชธเซเชกเซ เชนเซเชฒเซเชฎ เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชชเซเชฐเชเชพเชถเชจเซ เชเชฎเชพเชตเชคเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซเชจเซ เชเชชเชฏเซเช เชฎเชพเชคเซเชฐ เชฎเซเชจเชฟเชซเซเชธเซเช เชเชจเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ.
เชคเซเชจเชพ เชญเชพเช เชฎเชพเชเซ, เชเชฐเซเชเซ เชนเซเชฒเซเชฎ เชนเซเชเซเชธเชจเซ เชฎเซเชณ เชฐเซเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเซ เชเซ, เชเซ เชคเซเชจเซ เชฐเชฟเชฒเซเช เชฒเชพเชเซ เชเชฐเชตเชพเชจเชพ เชคเชฐเซเชเชจเซเช เชเชฒเซเชฒเชเชเชจ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
เชเซเชฏเซเชฌเซเชเชธเซ
Qbec เชคเชฎเชจเซ jsonnet เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชชเซเชฒเซเชเซเชถเชจเชจเซเช เชธเชนเซเชฒเชพเชเชฅเซ เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชจเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ, เช เชจเซ เชคเซ เชเชชเชฐเชพเชเชค เชนเซเชฒเซเชฎ เชเชพเชฐเซเชเซเชธ เชฐเซเชจเซเชกเชฐ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชชเชฃ เชงเชฐเชพเชตเซ เชเซ, เช เชจเซ เชเชฐเซเชเซ เชธเซเชกเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชนเซเชฒเซเชฎ เชนเซเชเซเชธ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชถเชเซ เชเซ, เชเชฐเซเชเซ เชธเซเชกเซ เชธเชพเชฅเซ เช เชธเซเชตเชฟเชงเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฅเซ เชคเชฎเซ เชตเชงเซ เชธเชพเชเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเซ เชเซ.
argocd เชฎเชพเช qbec เชธเชชเซเชฐเซเช เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชฌเซ เชตเชธเซเชคเซเชเชจเซ เชเชฐเซเชฐ เชเซ:
- Argo CD เชฐเซเชชเชฐเซเชเชพเชฎเชพเช, เชคเชฎเชพเชฐเซเช เชเชธเซเชเชฎ เชชเซเชฒเชเชเชจ เช เชจเซ เชฎเซเชจเชฟเชซเซเชธเซเช เชเชจเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชเชฆเซเชถเซ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เชนเซเชตเชพ เชเซเชเช.
- เชเชฐเซเชฐเซ เชฆเซเชตเชฟเชธเชเชเซเช เชเชฎเซเชเชฎเชพเช เชเชชเชฒเชฌเซเชง เชนเซเชตเชพ เชเซเชเช argocd-เชฐเซเชชเซ-เชธเชฐเซเชตเชฐ.
เชชเซเชฐเชฅเชฎ เชเชพเชฐเซเชฏ เชเซเชฌ เชธเชฐเชณ:
# cm.yaml
data:
configManagementPlugins: |
- name: qbec
generate:
command: [sh, -xc]
args: ['qbec show "$ENVIRONMENT" -S --force:k8s-namespace "$ARGOCD_APP_NAMESPACE"'](เชเซเชฎ Init เชตเชชเชฐเชพเชฏเซเชฒ เชจเชฅเซ)
$ kubectl -n argocd patch cm/argocd-cm -p "$(cat cm.yaml)"เชฆเซเชตเชฟเชธเชเชเซ เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซ เชคเซ เชธเซเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ , เช เชฅเชตเชพ เชเชชเชฏเซเช เชเชฐเซ :
# deploy.yaml
spec:
template:
spec:
# 1. Define an emptyDir volume which will hold the custom binaries
volumes:
- name: custom-tools
emptyDir: {}
# 2. Use an init container to download/copy custom binaries into the emptyDir
initContainers:
- name: download-tools
image: alpine:3.12
command: [sh, -c]
args:
- wget -qO- https://github.com/splunk/qbec/releases/download/v0.12.2/qbec-linux-amd64.tar.gz | tar -xvzf - -C /custom-tools/
volumeMounts:
- mountPath: /custom-tools
name: custom-tools
# 3. Volume mount the custom binary to the bin directory (overriding the existing version)
containers:
- name: argocd-repo-server
volumeMounts:
- mountPath: /usr/local/bin/qbec
name: custom-tools
subPath: qbec
- mountPath: /usr/local/bin/jsonnet-qbec
name: custom-tools
subPath: jsonnet-qbec$ kubectl -n argocd patch deploy/argocd-repo-server -p "$(cat deploy.yaml)"เชนเชตเซ เชเชพเชฒเซ เชเซเชเช เชเซ เช เชฎเชพเชฐเซเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเซเชจเชฟเชซเซเชธเซเช เชเซเชตเซเช เชฆเซเชเชพเชถเซ:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: qbec-app
namespace: argocd
spec:
destination:
namespace: default
server: https://kubernetes.default.svc
project: default
source:
path: qbec-app
plugin:
env:
- name: ENVIRONMENT
value: default
name: qbec
repoURL: https://github.com/kvaps/argocd-play
syncPolicy:
automated:
prune: trueเชเชฒเชฎเชพเช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชชเชฃเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซเช เชจเชพเชฎ เชชเชธเชพเชฐ เชเชฐเซเช เชเซเช เชเซเชจเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชฎเซเชจเชฟเชซเซเชธเซเช เชเชจเชฐเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเชพเชฒเซ เชคเซเชจเซ เชฒเชพเชเซ เชเชฐเซเช เช เชจเซ เชเซเชเช เชเซ เชเชชเชฃเชจเซ เชถเซเช เชฎเชณเซ เชเซ:

เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชฎเชนเชพเชจ!
git-เชเซเชฐเชฟเชชเซเช
Git-crypt เชคเชฎเชจเซ เชคเชฎเชพเชฐเซ เชฐเซเชชเซเชเซเชเชฐเซ เชฎเชพเชเซ เชชเชพเชฐเชฆเชฐเซเชถเช เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ เชธเซเช เชเชฐเชตเชพ เชฆเซ เชเซ. เชธเชเชตเซเชฆเชจเชถเซเชฒ เชกเซเชเชพเชจเซ เชธเซเชงเชพ เชเชฟเชเชฎเชพเช เชธเซเชเซเชฐ เชเชฐเชตเชพเชจเซ เช เชเช เชธเชฐเชณ เช เชจเซ เชธเซเชฐเชเซเชทเชฟเชค เชฐเซเชค เชเซ.
เชเชฟเช-เชเซเชฐเชฟเชชเซเชเชจเซเช เช เชฎเชฒเซเชเชฐเชฃ เชตเชงเซ เชฎเซเชถเซเชเซเชฒ เชฌเชจเซเชฏเซเช.
เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ เชเชชเชฃเซ เชเชฐเซ เชถเชเซเช git-crypt unlock เช
เชฎเชพเชฐเชพ เชเชธเซเชเชฎ เชชเซเชฒเชเชเชจเชจเชพ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชคเชฌเชเซเชเซ, เชชเชฐเชเชคเซ เช เชเซเชฌ เช
เชจเซเชเซเชณ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชฎเซเชณ เชเชฎเชพเชตเช เชชเชฆเซเชงเชคเชฟเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชคเซเช เชจเชฅเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชนเซเชฒเซเชฎ เช
เชจเซ เชเซเชธเซเชจเซเชเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช
เชฎเซ เชฒเชตเชเซเช GUI เชเชจเซเชเชฐเชซเซเชธ เชเซเชฎเชพเชตเซเช เชเซเช เชเซ เช
เชฎเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฐเซเชชเชฐเซเชเชพเชเชเชจ (เชฎเซเชฒเซเชฏเซ เชซเชพเชเชฒเซ, เชตเชเซเชฐเซ) เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฆเซ เชเซ.
เช เชเชพเชฐเชฃเซ เชนเซเช เชเซเชฒเซเชจเชฟเชเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เช เชเชพเชเชจเชพ เชคเชฌเชเซเชเซ เชฐเชฟเชชเซเชเซเชเชฐเซ เชชเซเชฐเชฟเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ.
เช เชเซเชทเชฃเซ เชเชฐเซเชเซ เชธเซเชกเซ เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเชชเชฃ เชนเซเชเซเชธเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเชคเซ เชจเชฅเซ, เชคเซเชฅเซ เช เชฎเชพเชฐเซ เช เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ เชฎเซเชถเซเชเซเชฒ เชถเซเชฒ เชธเซเชเซเชฐเชฟเชชเซเช เชธเชพเชฅเซ เชฎเซเชณเชตเชตเซ เชชเชกเซ เชนเชคเซ เชเซ git เชเชฆเซเชถเชจเซ เชฌเชฆเชฒเซ เชเซ:
#!/bin/sh
$(dirname $0)/git.bin "$@"
ec=$?
[ "$1" = fetch ] && [ -d .git-crypt ] || exit $ec
GNUPGHOME=/app/config/gpg/keys git-crypt unlock 2>/dev/null
exit $ecเชเชฐเซเชเซ เชธเซเชกเซ เชเชฐเซ เชเซ git fetch เชเชฎเชพเชตเช เชเชพเชฎเชเซเชฐเซ เชชเชนเซเชฒเชพเช เชฆเชฐ เชตเชเชคเซ. เช เชเชฆเซเชถ เชเซ เชเซเชจเซ เช
เชฎเซ เช
เชฎเชฒ เชธเซเชเชชเซเชถเซเช git-crypt unlock เชฐเซเชชเซเชเซเชเชฐเซเชจเซ เช
เชจเชฒเซเช เชเชฐเชตเชพ เชฎเชพเชเซ.
เชชเชฐเซเชเซเชทเชฃเซ เชฎเชพเชเซ เชคเชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ เชเซเชฎเชพเช เชคเชฎเชจเซ เชเซเชเชคเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชชเชนเซเชฒเซเชฅเซ เช เชเซ:
$ kubectl -n argocd set image deploy/argocd-repo-server argocd-repo-server=docker.io/kvaps/argocd-git-crypt:v1.7.3เชนเชตเซ เชเชชเชฃเซ เชตเชฟเชเชพเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชเชฐเซเชเซ เชเชชเชฃเซ เชฐเซเชชเซเชเซเชเชฐเซเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชกเชฟเชเซเชฐเชฟเชชเซเช เชเชฐเชถเซ. เชเซเชฎ เชเซ, เชคเซเชจเชพ เชฎเชพเชเซ gpg เชเซ เชเชจเชฐเซเช เชเชฐเซ:
$ kubectl exec -ti deploy/argocd-repo-server -- bash
$ printf "%sn"
"%no-protection"
"Key-Type: default"
"Subkey-Type: default"
"Name-Real: YOUR NAME"
"Name-Email: YOUR EMAIL@example.com"
"Expire-Date: 0"
> genkey-batch
$ gpg --batch --gen-key genkey-batch
gpg: WARNING: unsafe ownership on homedir '/home/argocd/.gnupg'
gpg: keybox '/home/argocd/.gnupg/pubring.kbx' created
gpg: /home/argocd/.gnupg/trustdb.gpg: trustdb created
gpg: key 8CB8B24F50B4797D marked as ultimately trusted
gpg: directory '/home/argocd/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/argocd/.gnupg/openpgp-revocs.d/9A1FF8CAA917CE876E2562FC8CB8B24F50B4797D.rev'เชเชพเชฒเซ เชเซ เชจเชพเชฎ เชธเชพเชเชตเซเช 8CB8B24F50B4797D เชเชเชณเชจเชพ เชชเชเชฒเชพเช เชฎเชพเชเซ. เชเซ เชชเซเชคเซ เชจเชฟเชเชพเชธ เชเชฐเซ:
$ gpg --list-keys
gpg: WARNING: unsafe ownership on homedir '/home/argocd/.gnupg'
/home/argocd/.gnupg/pubring.kbx
-------------------------------
pub rsa3072 2020-09-04 [SC]
9A1FF8CAA917CE876E2562FC8CB8B24F50B4797D
uid [ultimate] YOUR NAME <YOUR EMAIL@example.com>
sub rsa3072 2020-09-04 [E]
$ gpg --armor --export-secret-keys 8CB8B24F50B4797Dเช เชจเซ เชคเซเชจเซ เชเช เช เชฒเช เชฐเชนเชธเซเชฏ เชคเชฐเซเชเซ เชเชฎเซเชฐเซ:
# argocd-gpg-keys-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: argocd-gpg-keys-secret
namespace: argocd
stringData:
8CB8B24F50B4797D: |-
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQVYBF9Q8KUBDACuS4p0ctXoakPLqE99YLmdixfF/QIvXVIG5uBXClWhWMuo+D0c
ZfeyC5GvH7XPUKz1cLMqL6o/u9oHJVUmrvN/g2Mnm365nTGw1M56AfATS9IBp0HH
O/fbfiH6aMWmPrW8XIA0icoOAdP+bPcBqM4HRo4ssbRS9y/i
=yj11
-----END PGP PRIVATE KEY BLOCK-----$ kubectl apply -f argocd-gpg-keys-secret.yamlเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเช เช เชตเชธเซเชคเซ เชฌเชพเชเซ เชเซ เชเซ เชคเซเชจเซ เชเชจเซเชเซเชจเชฐเชฎเชพเช เชซเซเชเชเซ เชฆเซ argocd-เชฐเซเชชเซ-เชธเชฐเซเชตเชฐ, เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชฎเชพเชตเชเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซ:
$ kubectl -n argocd edit deploy/argocd-repo-serverเช
เชจเซ เช
เชฎเซ เชนเชพเชฒเชจเชพ เชเชเชจเซ เชฌเชฆเชฒเซเชถเซเช gpg-เชเซเช เชตเซเชฒเซเชฏเซเชฎ เชเชพเชฒเซ projected, เชเซเชฏเชพเช เช
เชฎเซ เช
เชฎเชพเชฐเซเช เชฐเชนเชธเซเชฏ เชธเซเชเชตเซเช เชเซเช:
spec:
template:
spec:
volumes:
- name: gpg-keys
projected:
defaultMode: 420
sources:
- secret:
name: argocd-gpg-keys-secret
- configMap:
name: argocd-gpg-keys-cmเชเซเชฏเชพเชฐเซ เชเชจเซเชเซเชจเชฐ เชถเชฐเซ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ เชเชฐเซเชเซ เชธเซเชกเซ เชเชชเชฎเซเชณเซ เช เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ gpg เชเซ เชฒเซเชก เชเชฐเซ เชเซ, เชคเซเชฅเซ เชคเซ เช เชฎเชพเชฐเซ เชเชพเชจเชเซ เชเซเชจเซ เชชเชฃ เชฒเซเชก เชเชฐเชถเซ.
เชเชพเชฒเซ เชคเชชเชพเชธ เชเชฐเซเช:
$ kubectl -n argocd exec -ti deploy/argocd-repo-server -- bash
$ GNUPGHOME=/app/config/gpg/keys gpg --list-secret-keys
gpg: WARNING: unsafe ownership on homedir '/app/config/gpg/keys'
/app/config/gpg/keys/pubring.kbx
--------------------------------
sec rsa2048 2020-09-05 [SC] [expires: 2021-03-04]
ED6285A3B1A50B6F1D9C955E5E8B1B16D47FFC28
uid [ultimate] Anon Ymous (ArgoCD key signing key) <noreply@argoproj.io>
sec rsa3072 2020-09-03 [SC]
9A1FF8CAA917CE876E2562FC8CB8B24F50B4797D
uid [ultimate] YOUR NAME <YOUR EMAIL@example.com>
ssb rsa3072 2020-09-03 [E]เชธเชฐเชธ, เชเซ เชฒเซเชก เชฅเช เชเช เชเซ! เชนเชตเซ เช เชฎเชพเชฐเซ เช เชฎเชพเชฐเชพ เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เชธเชนเชฏเซเชเซ เชคเชฐเซเชเซ เชเชฐเซเชเซ เชธเซเชกเซ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เช เชจเซ เชคเซ เชซเซเชฒเชพเชฏ เชชเชฐ เชคเซเชจเซ เชเชชเชฎเซเชณเซ เชกเชฟเชเซเชฐเชฟเชชเซเช เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชนเชถเซ.
เชธเซเชฅเชพเชจเชฟเช เชเชฎเซเชชเซเชฏเซเชเชฐ เชชเชฐ เชเซ เชเชฏเชพเชค เชเชฐเซ:
$ gpg --armor --export-secret 8CB8B24F50B4797D > 8CB8B24F50B4797D.pem
$ gpg --import 8CB8B24F50B4797D.pemเชเชพเชฒเซ เชตเชฟเชถเซเชตเชพเชธ เชธเซเชคเชฐ เชธเซเช เชเชฐเซเช:
$ gpg --edit-key 8CB8B24F50B4797D
trust
5เชเชพเชฒเซ เช เชฎเชพเชฐเชพ เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช เชธเชนเชฏเซเชเซ เชคเชฐเซเชเซ เชเชฐเซเชเซ เชเชฎเซเชฐเซเช:
$ git-crypt add-gpg-user 8CB8B24F50B4797Dเชธเชเชฌเชเชงเชฟเชค เชฒเชฟเชเชเซเชธ:
เชธเซเชฐเซเชธ: www.habr.com
