I am trying to include cloudsqlproxy in the same pod has my GHOST container. However, I am having problems when adding cloudsqlproxy to the pod related to the YAML file linting.
The error it gives me is quite misleading has the problem most likely is not related to the line he is saying.
{{- if include "ghost.host" . -}}
apiVersion: {{ template "ghost.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "ghost.fullname" . }}
labels:
app: "{{ template "ghost.fullname" . }}"
chart: "{{ template "ghost.chart" . }}"
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
selector:
matchLabels:
app: "{{ template "ghost.fullname" . }}"
release: {{ .Release.Name | quote }}
replicas: 3
template:
metadata:
labels:
app: "{{ template "ghost.fullname" . }}"
chart: "{{ template "ghost.chart" . }}"
release: {{ .Release.Name | quote }}
spec:
{{- if .Values.securityContext.enabled }}
securityContext:
fsGroup: {{ .Values.securityContext.fsGroup }}
runAsUser: {{ .Values.securityContext.runAsUser }}
{{- else }}
initContainers:
- name: volume-permissions
image: {{ template "ghost.volumePermissions.image" . }}
imagePullPolicy: "{{ .Values.volumePermissions.image.pullPolicy }}"
command: ['sh', '-c', 'chmod -R g+rwX {{ .Values.persistence.path }}']
volumeMounts:
- mountPath: {{ .Values.persistence.path }}
name: ghost-data
{{- end }}
{{- include "ghost.imagePullSecrets" . | indent 6 }}
containers:
- name : cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.16
command:
- -/cloudsql_sql_proxy
- --dir=/cloudsql
- -instances=infrastructure-0000:europe-west4:blablabla=tcp:3306
{{- if or .Values.serviceAccountKey .Values.existingSecret -}}
- -credential_file=/secrets/cloudsql/{{- if .Values.existingSecret -}} {{ .Values.existingSecretKey }} {{- else -}} credentials.json {{- end }}
{{end}}
securityContext:
runAsUser: 2
AllowPrivilegeEscalation: false
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
- name: {{ template "ghost.fullname" . }}
image: {{ template "ghost.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
env:
- name: ALLOW_EMPTY_PASSWORD
{{- if .Values.allowEmptyPassword }}
value: "yes"
{{- else }}
value: "no"
{{- end }}
- name: MARIADB_HOST
{{- if .Values.mariadb.enabled }}
value: {{ template "ghost.mariadb.fullname" . }}
{{- else }}
value: {{ .Values.externalDatabase.host | quote }}
{{- end }}
- name: MARIADB_PORT_NUMBER
{{- if .Values.mariadb.enabled }}
value: "3306"
{{- else }}
value: {{ .Values.externalDatabase.port | quote }}
{{- end }}
- name: GHOST_DATABASE_NAME
{{- if .Values.mariadb.enabled }}
value: {{ .Values.mariadb.db.name | quote }}
{{- else }}
value: {{ .Values.externalDatabase.database | quote }}
{{- end }}
- name: GHOST_DATABASE_USER
{{- if .Values.mariadb.enabled }}
value: {{ .Values.mariadb.db.user | quote }}
{{- else }}
value: {{ .Values.externalDatabase.user | quote }}
{{- end }}
- name: GHOST_DATABASE_PASSWORD
{{- if .Values.mariadb.enabled }}
valueFrom:
secretKeyRef:
name: {{ template "ghost.mariadb.fullname" . }}
key: mariadb-password
{{- else }}
value: {{ .Values.externalDatabase.password | quote }}
{{- end }}
- name: GHOST_HOST
value: {{ include "ghost.host" . | quote }}
- name: GHOST_PROTOCOL
value: {{ .Values.ghostProtocol | quote }}
- name: GHOST_PORT_NUMBER
{{- if .Values.ghostPort }}
value: {{ .Values.ghostPort | quote }}
{{- else }}
value: {{ .Values.service.port | quote }}
{{- end }}
- name: GHOST_USERNAME
value: {{ .Values.ghostUsername | quote }}
- name: GHOST_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "ghost.fullname" . }}
key: ghost-password
- name: GHOST_EMAIL
value: {{ .Values.ghostEmail | quote }}
- name: BLOG_TITLE
value: {{ .Values.ghostBlogTitle | quote }}
{{- if .Values.smtpHost }}
- name: SMTP_HOST
value: {{ .Values.smtpHost | quote }}
{{- end }}
{{- if .Values.smtpPort }}
- name: SMTP_PORT
value: {{ .Values.smtpPort | quote }}
{{- end }}
{{- if .Values.smtpUser }}
- name: SMTP_USER
value: {{ .Values.smtpUser | quote }}
{{- end }}
{{- if .Values.smtpPassword }}
- name: SMTP_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "ghost.fullname" . }}
key: smtp-password
{{- end }}
{{- if .Values.smtpFromAddress }}
- name: SMTP_FROM_ADDRESS
value: {{ .Values.smtpFromAddress | quote }}
{{- end }}
{{- if .Values.smtpService }}
- name: SMTP_SERVICE
value: {{ .Values.smtpService | quote }}
{{- end }}
ports:
- name: http
containerPort: 2368
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.ghostPath }}
port: http
httpHeaders:
- name: Host
value: {{ include "ghost.host" . | quote }}
{{- if eq .Values.ghostProtocol "https" }}
- name: X-Forwarded-Proto
value: https
{{- end }}
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.ghostPath }}
port: http
httpHeaders:
- name: Host
value: {{ include "ghost.host" . | quote }}
{{- if eq .Values.ghostProtocol "https" }}
- name: X-Forwarded-Proto
value: https
{{- end }}zshzs
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
{{- end }}
{{- if .Values.resources }}
resources: {{- toYaml .Values.resources | nindent 10 }}
{{- end }}
volumeMounts:
- name: ghost-data
mountPath: /bitnami/ghost
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: "calm-com-tls"
- name: ghost-data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ template "ghost.fullname" . }}
{{- else }}
emptyDir: {}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end -}}
I would change section GHOST_DATABASE_PASSWORD
to look like:
- name: GHOST_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.mariadb.enabled }}
name: {{ template "ghost.mariadb.fullname" . }}
key: mariadb-password
{{- else }}
name: {{ printf "%s-%s" .Release.Name "externaldb" }}
key: db-password
{{- end }}
where:
data:
db-password: {{ .Values.externalDatabase.password | b64enc | quote }}
Example: helm-chart-secret.
Pls check volumeMounts section in init container I guess indentation is not correct.