I'm trying to create a secret from ConfigMap using the below commands:
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-single-ca-script
labels:
app.kubernetes.io/name: {{ include "couchbase-cluster.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "couchbase-cluster.chart" . }}
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": before-hook-creation
data:
single-ca-script.sh: |
#!/bin/bash
kubectl create secret generic {{ include "couchbase-cluster.pki.secret.tls" . }}-trf \
--from-file=chain.pem=/var/run/certs/tls.crt --from-file=pkey.key=/var/run/certs/tls.key
WORKDIR=/tmp/
cd $WORKDIR
csplit -f ca_- /var/run/certs/ca.crt '/-----BEGIN CERTIFICATE-----/' '{*}'
for x in `ls $WORKDIR/ca_*`; do
echo "checking ca: $x"
openssl verify -verbose -CAfile $x /var/run/certs/tls.crt
if [[ $? -eq 0 ]]; then
CORRECT_CA_FILE=$x
break;
fi
done
if [[ -z $CORRECT_CA_FILE ]]; then
echo "NO correct CA file found"
exit 99
fi
mv $CORRECT_CA_FILE $WORKDIR/ca.crt
kubectl create secret generic {{ include "couchbase-cluster.pki.secret.tls" . }}-single-ca \
--from-file=$WORKDIR/ca.crt
cat <<EOF | kubectl apply -f -\
apiVersion: v1
kind: Secret
metadata:
name: {{ template "couchbase-cluster.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "couchbase-cluster.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "couchbase-cluster.chart" . }}
But I'm facing the error
Error: YAML parse error on platform-couchbase-cluster/templates/configMap-single-ca.yaml: error converting YAML to JSON: yaml: line 39: could not find expected ':'
Could you please let me know if I'm missing something?
Thanks