Kubernetes 시크릿 인라인 편집

우리는 Kubernetes를 사용하여 많은 작업을 수행하며 사용자가 Secrets 작업을 할 때 이를 편집하기가 매우 어려울 수 있습니다. 표준 워크플로는 다음과 같을 수 있습니다.

# Grab the existing secret
kubectl get secret some-secret -o yaml > some-secret.yaml

# Grab the existing secret
kubectl get secret some-secret \
  -o jsonpath='{ .data.secret }' \
  | base64 -D > thesecert.txt

# Edit the secret
vim thesecret.txt

# Grab the new secret and put it into the secret file
# and apply it to the cluster
cat thesecret.txt | base64 | pbcopy
vim some-secret.yaml # paste in your b64 encoded secret
kubectl apply -f some-secret.yaml


이는 훌륭한 사용자 경험이 아니며 kubectl edit를 사용하려면 어떻게 해야 합니까?

줄에서 비밀을 편집하는 데 사용할 수 있는 약간의 vim foo가 있습니다.

kubectl edit secret some-secret

# navigate to the base64 encoded secret
# place your cursor on the space between the ":"
# and the first character of the secret
# hit `r <enter>` this replaces the space
# with a new line

# move your cursor down one line to the secret
# in the command prompt `:. ! base64 -D`

# Edit your secret

# in the command prompt `:. ! base64`
# if your secret is multiline you can 
# use `:<startline>,<endline> ! base64`
# or you can highlight the lines in visual
# mode and use `:! base64`

# Join the lines by moving back up the secret key
# and hitting `J`

# Then write quit `:wq`
# you should see this as output
# `secret/some-secret edited`




그리고 여러 줄의 비밀을 편집하려면 파일에서 생성된 비밀을 말하십시오. base64를 사용하여 현재 줄을 :. 인코딩하는 대신 줄 번호 범위:13,84 ! base64를 사용할 수 있으며 84줄을 포함하여 모든 줄을 함께 인코딩합니다.

edit: added info about multiline secrets



업데이트



여기에 팁을 하나 더 추가하고 싶었습니다. 성가신 새 줄입니다.

암호를 편집하고 . ! base64를 사용하는 경우 암호 끝에 줄 바꿈 문자가 표시됩니다. 괜찮다면... 그렇지 않다면 좋습니다. tr를 사용하여 청소할 수 있습니다.

. ! tr -d '\n' | base64

좋은 웹페이지 즐겨찾기