blob: f89cc7994256d6b13516e38501eec9c9491b3269 [file] [log] [blame]
{{ $runCfg := .Values.runCfg | b64dec }}
---
apiVersion: v1
kind: Secret
metadata:
name: app-ssh-key
type: Opaque
data:
private: {{ .Values.sshPrivateKey }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: app-run-cfg
data:
run: |
{{ indent 4 $runCfg }}
---
apiVersion: v1
kind: Service
metadata:
name: app-app
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: app-app
ports:
- name: app
port: 80
targetPort: app
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: app-api
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: app-app
ports:
- name: api
port: 3000
targetPort: api
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-app
namespace: {{ .Release.Namespace }}
spec:
selector:
matchLabels:
app: app-app
replicas: 1
template:
metadata:
labels:
app: app-app
spec:
runtimeClassName: {{ .Values.runtimeClassName }}
volumes:
- name: ssh-key
secret:
secretName: app-ssh-key
- name: run-cfg
configMap:
name: app-run-cfg
{{- range .Values.volumes }}
- name: volume-{{ .name }}
persistentVolumeClaim:
claimName: {{ .name }}
{{- end }}
containers:
- name: app
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: api
containerPort: 3000
protocol: TCP
- name: app
containerPort: {{ .Values.appPort }}
protocol: TCP
env:
- name: SELF_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
command:
- app-runner
- --port=3000
- --app-id={{ .Values.appId }}
- --app-dir={{ .Values.appDir }}
- --repo-addr={{ .Values.repoAddr }}
- --ssh-key=/pcloud/ssh-key/private
- --run-cfg=/pcloud/config/run
- --manager-addr={{ .Values.managerAddr }}
volumeMounts:
- name: ssh-key
readOnly: true
mountPath: /pcloud/ssh-key
- name: run-cfg
readOnly: true
mountPath: /pcloud/config
{{- range .Values.volumes }}
- name: volume-{{ .name }}
mountPath: {{ .mountPath }}
{{- end }}