I am new to Kubernetes.
I found some errors while using google-cloud-storage.
The problem is, when I specify GCLOUD_PRIVATE_KEY directly in .yaml file, I work nicely.
- name: GCLOUD_PRIVATE_KEY
value: "-----BEGIN PRIVATE KEY-----\n(...)\n-----END PRIVATE KEY-----\n"
However, when I inject the variable to cluster.
AT terminal
kubectl create secret generic gcloud-private-key --from-literal=GCLOUD_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n(...)\n-----END PRIVATE KEY-----\n"
AT .yaml
- name: GCLOUD_PRIVATE_KEY
valueFrom:
secretKeyRef:
name: gcloud-private-key
key: GCLOUD_PRIVATE_KEY
The error related to key occurs. I even tried for escape notation just in case,
AT terminal
kubectl create secret generic gcloud-private-key --from-literal=GCLOUD_PRIVATE_KEY='"-----BEGIN PRIVATE KEY-----\n(...)\n-----END PRIVATE KEY-----\n"'
However, it doesn't work as well! Can you let me know how I can fix it??
CodePudding user response:
kubectl create secret generic gcloud-private-key --from-literal=GCLOUD_PRIVATE_KEY='"...\n...
'\n', '"' are invalid character for TLS key when create from literal. You can load the key directly from the original file as-is:
kubectl create secret generic gcloud-private-key --from-literal GCLOUD_PRIVATE_KEY="$(cat <file>)"
CodePudding user response:
Based on the hint what gohm'c gives, I solved this problem.
AT terminal
echo -n "-----BEGIN PRIVATE KEY-----\n(...)\n-----END PRIVATE KEY-----\n" > ./gcloud-private-key.txt
kubectl create secret generic gcloud-private-key --from-file=GCLOUD_PRIVATE_KEY=./gcloud-private-key.txt
AT .yaml
- name: GCLOUD_PRIVATE_KEY
valueFrom:
secretKeyRef:
name: gcloud-private-key
key: GCLOUD_PRIVATE_KEY