openstack-helm-addons/monasca/templates/api-deployment.yaml

168 lines
7.0 KiB
YAML

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "api.fullname" . }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
component: "{{ .Values.api.name }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: {{ .Values.api.replicaCount }}
template:
metadata:
labels:
app: {{ template "fullname" . }}
component: "{{ .Values.api.name }}"
{{- if .Values.api.side_container.enabled }}
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
prometheus.io/port: "4888"
{{- end }}
spec:
containers:
- name: api
image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag }}"
imagePullPolicy: {{ .Values.api.image.pullPolicy }}
resources:
{{ toYaml .Values.api.resources | indent 10 }}
ports:
- containerPort: 8070
name: client
env:
- name: LOG_LEVEL_ROOT
value: {{ .Values.api.logging.log_level_root | quote }}
- name: LOG_LEVEL_CONSOLE
value: {{ .Values.api.logging.log_level_console | quote }}
- name: KAFKA_URI
{{- if .Values.kafka.overrideUri }}
value: "{{ .Values.kafka.overrideUri }}"
{{- else }}
value: "{{ template "kafka.fullname" . }}:9092"
{{- end }}
- name: INFLUX_HOST
value: "{{ .Release.Name }}-influxdb"
- name: INFLUX_PORT
value: {{ .Values.influxdb.config.http.bind_address | quote }}
- name: INFLUX_USER
value: {{ .Values.api.influxdb.user | quote }}
- name: INFLUX_PASSWORD
value: {{ .Values.api.influxdb.password | quote }}
- name: INFLUX_DB
value: {{ .Values.api.influxdb.database | quote }}
{{- if .Values.api.mysql_disabled }}
- name: API_MYSQL_DISABLED
value: {{ .Values.api.mysql_disabled | quote }}
{{- end}}
{{- if .Values.api.mysql_disabled }}
- name: MYSQL_WAIT_RETRIES
value: {{ .Values.api.mysql_wait_retries | quote }}
{{- end}}
- name: MYSQL_HOST
{{- if .Values.api.mysql.host }}
{{- if eq (kindOf .Values.api.mysql.host) "map" }}
valueFrom:
secretKeyRef:
name: "{{ .Values.api.mysql.host.secret_name }}"
key: "{{ .Values.api.mysql.host.secret_key | default "host" }}"
{{- else }}
value: "{{ .Values.api.mysql.host }}"
{{- end}}
{{- else }}
value: "{{ .Release.Name }}-mysql"
{{- end}}
- name: MYSQL_USER
valueFrom:
secretKeyRef:
{{- if .Values.api.mysql.username.secret_name }}
name: "{{ .Values.api.mysql.username.secret_name }}"
{{- else }}
name: "{{ .Release.Name }}-mysql-api-secret"
{{- end}}
key: "{{ .Values.api.mysql.username.secret_key | default "username" }}"
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.api.mysql.password.secret_name }}
name: "{{ .Values.api.mysql.password.secret_name }}"
{{- else }}
name: "{{ .Release.Name }}-mysql-api-secret"
{{- end}}
key: "{{ .Values.api.mysql.password.secret_key | default "password" }}"
- name: MYSQL_DB
value: "mon"
- name: MEMCACHED_URI
{{- if .Values.api.memcachedUri }}
value: "{{ .Values.api.memcachedUri }}"
{{- else if .Values.memcached.enabled }}
value: "{{ template "memcached.fullname" . }}:{{ .Values.memcached.service.port | default "11211" }}"
{{- else }}
value: ""
{{- end }}
- name: KEYSTONE_IDENTITY_URI
{{- if .Values.api.keystone.identity_url }}
{{- include "monasca_secret_env" .Values.api.keystone.identity_url | indent 14 }}
{{- else if .Values.keystone.override.public_url }}
value: "{{ .Values.keystone.override.public_url }}"
{{- else }}
value: "http://{{ template "keystone.fullname" . }}:{{ .Values.keystone.service.port }}"
{{- end }}
- name: KEYSTONE_AUTH_URI
{{- if .Values.api.keystone.auth_url }}
{{- include "monasca_secret_env" .Values.api.keystone.auth_url | indent 14 }}
{{- else if .Values.keystone.override.admin_url }}
value: "{{ .Values.keystone.override.admin_url }}"
{{- else }}
value: "http://{{ template "keystone.fullname" . }}:{{ .Values.keystone.service.admin_port }}"
{{- end }}
- name: KEYSTONE_ADMIN_USER
{{- include "monasca_secret_env" .Values.api.keystone.username | indent 14 }}
- name: KEYSTONE_ADMIN_PASSWORD
{{- include "monasca_secret_env" .Values.api.keystone.password | indent 14 }}
- name: KEYSTONE_ADMIN_TENANT
{{- include "monasca_secret_env" .Values.api.keystone.tenant_name | indent 14 }}
{{- if .Values.api.auth_disabled }}
- name: API_AUTH_DISABLED
value: "true"
{{- end}}
{{- if .Values.api.authorized_roles }}
- name: AUTHORIZED_ROLES
value: {{ .Values.api.authorized_roles | quote }}
{{- end}}
{{- if .Values.api.http_proxy }}
- name: http_proxy
value: {{ .Values.api.http_proxy | quote }}
- name: HTTP_PROXY
value: {{ .Values.api.http_proxy | quote }}
{{- end }}
{{- if .Values.api.https_proxy }}
- name: https_proxy
value: {{ .Values.api.https_proxy | quote }}
- name: HTTPS_PROXY
value: {{ .Values.api.https_proxy | quote }}
{{- end }}
{{- if .Values.api.no_proxy }}
- name: no_proxy
value: {{ .Values.api.no_proxy | quote }}
- name: NO_PROXY
value: {{ .Values.api.no_proxy | quote }}
{{- end }}
{{- if .Values.api.side_container.enabled }}
- name: SIDECAR_URL
value: http://localhost:4888/v1/ingest
{{- end }}
- name: GUNICORN_WORKERS
value: {{ .Values.api.gunicorn_workers | quote }}
{{- if .Values.api.side_container.enabled }}
- name: sidecar
image: "{{ .Values.api.side_container.image.repository }}:{{ .Values.api.side_container.image.tag }}"
imagePullPolicy: {{ .Values.api.side_container.image.pullPolicy }}
resources:
{{ toYaml .Values.api.side_container.resources | indent 10 }}
ports:
- containerPort: 4888
name: scrape
{{- end }}