Created
May 4, 2017 17:26
-
-
Save ahawkins/22f92bc2431f2a3172a0bce6ca48ae10 to your computer and use it in GitHub Desktop.
kviberg sample deployment template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {{- $stage := .Values.stage }} | |
| {{- range $pod := .Values.topology.pods }} | |
| --- | |
| apiVersion: extensions/v1beta1 | |
| kind: Deployment | |
| metadata: | |
| name: '{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-{{ $pod.tier }}' | |
| labels: | |
| release: "{{ $.Release.Name }}" | |
| chart: '{{ $.Chart.Name }}-{{ $.Chart.Version | replace "+" "-" }}' | |
| app: '{{ template "fullname" $ }}' | |
| component: '{{ $pod.name }}' | |
| tier: '{{ $pod.tier }}' | |
| source: kviberg | |
| spec: | |
| replicas: 1 | |
| template: | |
| metadata: | |
| labels: | |
| release: "{{ $.Release.Name }}" | |
| chart: '{{ $.Chart.Name }}-{{ $.Chart.Version | replace "+" "-" }}' | |
| app: '{{ template "fullname" $ }}' | |
| component: '{{ $pod.name }}' | |
| tier: '{{ $pod.tier }}' | |
| source: kviberg | |
| {{- if $pod.init }} | |
| annotations: | |
| pod.beta.kubernetes.io/init-containers: '[ | |
| {{- range $index, $item := $pod.init }} | |
| {{- if index $item.stages $stage }} | |
| {{- if $index -}},{{- end -}} | |
| { | |
| "name": "{{ $item.name | replace "_" "-" }}", | |
| "image": "{{ or $item.image (index $.Values.images $pod.name) }}", | |
| "imagePullPolicy": "IfNotPresent", | |
| "command": [ | |
| {{- range $index, $arg := $item.command }} | |
| {{- if $index }},{{- end }} | |
| "{{ $arg }}" | |
| {{- end }} | |
| ], | |
| "env": [ | |
| {{- range $item := $.Values.service_discovery }} | |
| { | |
| "name": "{{ $item.name }}", | |
| "value": "{{ $item.protocol }}://{{ template "fullname" $ }}-{{ $item.service }}-{{ $item.tier }}:{{ $item.port }}" | |
| }, | |
| {{- end }} | |
| {{- if eq $.Values.stage "sandbox" }} | |
| { | |
| "name": "SANDBOX_NAME", | |
| "value": "{{ $.Values.sandbox_name }}" | |
| }, | |
| {{- range $item := index $.Values.sandbox_dbs $pod.name -}} | |
| {{- if eq $item "mongodb" }} | |
| { | |
| "name": "MONGO_URL", | |
| "value": "mongodb://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:27017/{{ $pod.name | replace "_" "-" }}" | |
| }, | |
| {{- end }} | |
| {{- if eq $item "mysql" }} | |
| { | |
| "name": "MYSQL_URL", | |
| "value": "mysql://root:saltside@{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:3306/{{ $pod.name | replace "_" "-" }}" | |
| }, | |
| {{- end }} | |
| {{- if eq $item "dynamodb" }} | |
| { | |
| "name": "DYNAMODB_URL", | |
| "value": "http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:8000" | |
| }, | |
| {{- end }} | |
| {{- if eq $item "redis" }} | |
| { | |
| "name": "REDIS_URL", | |
| "value": "redis://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:6379" | |
| }, | |
| {{- end }} | |
| {{- if eq $item "elasticsearch" }} | |
| { | |
| "name": "ELASTICSEARCH_URL", | |
| "value": "http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:9200" | |
| }, | |
| {{- end }} | |
| {{- if eq $item "mailcatcher" }} | |
| { | |
| "name": "SMTP_URL", | |
| "value": "smtp://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:1025" | |
| }, | |
| { | |
| "name": "MAILCATCHER_URL", | |
| "value": "http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:1080" | |
| }, | |
| {{- end }} | |
| {{- end }} | |
| {{- end }} | |
| {{- range $key, $_value := index $.Values.secrets $pod.name $.Values.stage $.Values.market }} | |
| { | |
| "name": "{{ $key }}", | |
| "valueFrom": { | |
| "secretKeyRef": { | |
| "name": "{{ template "fullname" $ }}-secrets", | |
| "key": "{{ $pod.name }}.{{ $key }}" | |
| } | |
| } | |
| }, | |
| {{- end }} | |
| {{- range $key, $value := index $.Values.env $pod.name $.Values.stage $.Values.market }} | |
| { | |
| "name": "{{ $key }}", | |
| "value": "{{ $value }}" | |
| }, | |
| {{- end }} | |
| { | |
| "name": "__BOOOKEND", | |
| "value": "PLACEHOLDER" | |
| } | |
| ] | |
| } | |
| {{- end }} | |
| {{- end }} | |
| ]' | |
| {{- end }} | |
| spec: | |
| imagePullSecrets: | |
| - name: "{{ template "fullname" $ }}-image-pull" | |
| containers: | |
| {{- range $container := $pod.containers }} | |
| - name: {{ $container.name }} | |
| image: {{ index $.Values.images $pod.name }} | |
| imagePullPolicy: IfNotPresent | |
| {{- if $container.command }} | |
| command: | |
| {{ toYaml $container.command | indent 12 }} | |
| {{- end }} | |
| {{- if $container.ports }} | |
| ports: | |
| - containerPort: {{ $container.ports.container }} | |
| protocol: TCP | |
| {{- end }} | |
| {{- if $container.livenessProbe }} | |
| livenessProbe: | |
| {{ toYaml $container.livenessProbe | indent 12 }} | |
| {{- end }} | |
| {{- if $container.readinessProbe }} | |
| readinessProbe: | |
| {{ toYaml $container.readinessProbe | indent 12 }} | |
| {{- end }} | |
| {{- if (index $container "resources" $stage) }} | |
| resources: | |
| {{ index $container "resources" $stage | toYaml | indent 12 }} | |
| {{- end }} | |
| env: | |
| {{- range $item := $.Values.service_discovery }} | |
| - name: {{ $item.name }} | |
| value: {{ $item.protocol }}://{{ template "fullname" $ }}-{{ $item.service }}-{{ $item.tier }}:{{ $item.port }} | |
| {{- end }} | |
| {{- if eq $.Values.stage "sandbox" }} | |
| - name: SANDBOX_NAME | |
| value: {{ $.Values.sandbox_name }} | |
| {{- range $item := index $.Values.sandbox_dbs $pod.name -}} | |
| {{- if eq $item "mongodb" }} | |
| - name: MONGO_URL | |
| value: mongodb://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:27017/{{ $pod.name | replace "_" "-" }} | |
| {{- end }} | |
| {{- if eq $item "mysql" }} | |
| - name: MYSQL_URL | |
| value: mysql://root:saltside@{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:3306/{{ $pod.name | replace "_" "-" }} | |
| {{- end }} | |
| {{- if eq $item "dynamodb" }} | |
| - name: DYNAMODB_URL | |
| value: http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:8000 | |
| {{- end }} | |
| {{- if eq $item "redis" }} | |
| - name: REDIS_URL | |
| value: redis://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:6379 | |
| {{- end }} | |
| {{- if eq $item "elasticsearch" }} | |
| - name: ELASTICSEARCH_URL | |
| value: http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:9200 | |
| {{- end }} | |
| {{- if eq $item "mailcatcher" }} | |
| - name: SMTP_URL | |
| value: smtp://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:1025 | |
| - name: MAILCATCHER_URL | |
| value: http://{{ template "fullname" $ }}-{{ $pod.name | replace "_" "-" }}-db:1080 | |
| {{- end }} | |
| {{- end }} | |
| {{- range $key, $value := index $.Values.secrets $pod.name $.Values.stage $.Values.market }} | |
| - name: "{{ $key }}" | |
| valueFrom: | |
| secretKeyRef: | |
| name: "{{ template "fullname" $ }}-secrets" | |
| key: "{{ $pod.name }}.{{ $key }}" | |
| {{- end }} | |
| {{- range $key, $value := index $.Values.env $pod.name $.Values.stage $.Values.market }} | |
| - name: "{{ $key }}" | |
| value: "{{ $value }}" | |
| {{- end }} | |
| {{- end }} | |
| {{- end }} | |
| {{- end -}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment