-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* WAPI-23578 Styles API * WAPI-23578 Remove configurable s3 bucket for styles * Revert "WAPI-23578 Remove configurable s3 bucket for styles" This reverts commit f7f3e6f. * Styles API version as 1.0.0 * Add missiong secrets deploy annotations * Increase ingress default body size, remove useless worker disable * Fix ingress values annotations * Disable ingress nginx params * Use secret in jobs deploy * Worker as deployment * Set default nginx ingress body size * Set actual Styles API release version * Fix notes Twins mension * fix initialDelaySeconds for worker * No useless peristent volume * rename endpoint to host, update descriptions * fix required * fix readme --------- Co-authored-by: Gopanenko Pavel <[email protected]> Co-authored-by: Igor Sheykin <[email protected]>
- Loading branch information
1 parent
3934dd7
commit 3a2e92a
Showing
18 changed files
with
1,006 additions
and
2 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
apiVersion: v2 | ||
name: styles-api | ||
type: application | ||
description: A Helm chart for Kubernetes to deploy API Styles service | ||
|
||
version: 1.26.0 | ||
appVersion: 0.30.0 | ||
|
||
maintainers: | ||
- name: 2gis | ||
url: https://github.com/2gis | ||
email: [email protected] |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Styles API service is released as "{{ .Release.Name }}" at "{{ .Release.Namespace }}" namespace. | ||
|
||
{{ if .Values.api.ingress.enabled }} | ||
You can check service using curl | ||
{{- range $host := .Values.api.ingress.hosts }} | ||
http{{ if $.Values.api.ingress.tls }}s{{ end }}://{{ $host.host }}/healthcheck | ||
{{- end }} | ||
{{- else }} | ||
You can publish api service in your preferred way (ingress, balancer, etc). | ||
{{ end }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
{{- define "styles.name" -}} | ||
{{- .Release.Name | trunc 32 | trimSuffix "-" }} | ||
{{- end }} | ||
|
||
{{- define "styles.api.name" -}} | ||
{{ include "styles.name" . }} | ||
{{- end }} | ||
|
||
{{- define "styles.worker.name" -}} | ||
{{ include "styles.name" . }}-worker | ||
{{- end }} | ||
|
||
{{- define "styles.migrate.name" -}} | ||
{{ include "styles.name" . }}-migrate | ||
{{- end }} | ||
|
||
{{- define "styles.secret.deploys.name" -}} | ||
{{ include "styles.name" . }}-secret-deploys | ||
{{- end }} | ||
|
||
{{- define "styles.secret.jobs.name" -}} | ||
{{ include "styles.name" . }}-secret-jobs | ||
{{- end }} | ||
|
||
{{- define "styles.selectorLabels" -}} | ||
app.kubernetes.io/name: {{ .Chart.Name }} | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end }} | ||
|
||
{{- define "styles.labels" -}} | ||
{{ include "styles.selectorLabels" . }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
|
||
{{- define "styles.api.selectorLabels" -}} | ||
app.kubernetes.io/name: {{ .Chart.Name }} | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end }} | ||
|
||
{{- define "styles.api.labels" -}} | ||
{{ include "styles.api.selectorLabels" . }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
|
||
{{- define "styles.worker.selectorLabels" -}} | ||
app.kubernetes.io/name: {{ .Chart.Name }}-worker | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end }} | ||
|
||
{{- define "styles.worker.labels" -}} | ||
{{ include "styles.worker.selectorLabels" . }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
|
||
{{- define "styles.migrate.labels" -}} | ||
app.kubernetes.io/name: {{ .Chart.Name }}-migrate | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
|
||
{{- define "styles.env.loglevel" -}} | ||
- name: MGS_LOG_LEVEL | ||
value: "{{ .Values.log.level }}" | ||
{{- end }} | ||
|
||
{{- define "styles.env.db" -}} | ||
- name: MGS_DB_HOST | ||
value: "{{ required "A valid .Values.postgres.host required" .Values.postgres.host }}" | ||
- name: MGS_DB_PORT | ||
value: "{{ .Values.postgres.port }}" | ||
- name: MGS_DB_NAME | ||
value: "{{ required "A valid .Values.postgres.name required" .Values.postgres.name }}" | ||
- name: MGS_DB_SCHEMA | ||
value: "{{ .Values.postgres.schema }}" | ||
- name: MGS_DB_CONNECTION_TIMEOUT | ||
value: "{{ .Values.postgres.timeout }}" | ||
- name: MGS_DB_CONNECTION_RETRY | ||
value: "{{ .Values.postgres.retry }}" | ||
- name: MGS_DB_USERNAME | ||
value: "{{ required "A valid .Values.postgres.ro.username required" .Values.postgres.username }}" | ||
{{- end}} | ||
|
||
{{- define "styles.env.db.deploys" -}} | ||
{{ include "styles.env.db" . }} | ||
- name: MGS_DB_PASSWORD | ||
valueFrom: | ||
secretKeyRef: | ||
name: {{ include "styles.secret.deploys.name" . }} | ||
key: dbPassword | ||
{{- end }} | ||
|
||
{{- define "styles.env.db.jobs" -}} | ||
{{ include "styles.env.db" . }} | ||
- name: MGS_DB_PASSWORD | ||
valueFrom: | ||
secretKeyRef: | ||
name: {{ include "styles.secret.jobs.name" . }} | ||
key: dbPassword | ||
{{- end }} | ||
|
||
{{- define "styles.env.s3" -}} | ||
- name: MGS_S3_ENDPOINT | ||
value: "{{ required "A valid .Values.s3.host required" .Values.s3.host }}" | ||
- name: MGS_S3_BUCKET | ||
value: "{{ .Values.s3.bucket }}" | ||
- name: MGS_S3_PUBLIC_DOMAIN | ||
value: "{{ .Values.s3.publicDomain }}" | ||
- name: MGS_S3_CONNECT_TIMEOUT | ||
value: "{{ .Values.s3.connectTimeout }}" | ||
- name: MGS_S3_REQUEST_TIMEOUT | ||
value: "{{ .Values.s3.requestTimeout }}" | ||
- name: MGS_S3_RESPONSE_TIMEOUT | ||
value: "{{ .Values.s3.responseTimeout }}" | ||
{{- end}} | ||
|
||
{{- define "styles.env.s3.deploys" -}} | ||
{{ include "styles.env.s3" . }} | ||
- name: MGS_S3_ACCESS_KEY | ||
valueFrom: | ||
secretKeyRef: | ||
name: {{ include "styles.secret.deploys.name" . }} | ||
key: s3AccessKey | ||
- name: MGS_S3_SECRET_KEY | ||
valueFrom: | ||
secretKeyRef: | ||
name: {{ include "styles.secret.deploys.name" . }} | ||
key: s3SecretKey | ||
{{- end }} | ||
|
||
{{- define "styles.env.api" -}} | ||
{{ include "styles.env.loglevel" . }} | ||
{{ include "styles.env.db.deploys" . }} | ||
{{ include "styles.env.s3.deploys" . }} | ||
{{- end }} | ||
|
||
{{- define "styles.env.worker" -}} | ||
{{ include "styles.env.loglevel" . }} | ||
{{ include "styles.env.db.deploys" . }} | ||
{{ include "styles.env.s3.deploys" . }} | ||
{{- end }} | ||
|
||
{{- define "styles.env.migrate" -}} | ||
{{ include "styles.env.loglevel" . }} | ||
{{ include "styles.env.db.jobs" . }} | ||
{{- end }} | ||
|
||
{{/* | ||
Return the target Kubernetes version | ||
*/}} | ||
{{- define "capabilities.kubeVersion" -}} | ||
{{- if .Values.global }} | ||
{{- if .Values.global.kubeVersion }} | ||
{{- .Values.global.kubeVersion -}} | ||
{{- else }} | ||
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} | ||
{{- end -}} | ||
{{- else }} | ||
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} | ||
{{- end -}} | ||
{{- end -}} | ||
|
||
{{/* | ||
Return the appropriate apiVersion for Horizontal Pod Autoscaler. | ||
*/}} | ||
{{- define "capabilities.hpa.apiVersion" -}} | ||
{{- if semverCompare "<1.23-0" (include "capabilities.kubeVersion" .) -}} | ||
{{- if .beta2 -}} | ||
{{- print "autoscaling/v2beta2" -}} | ||
{{- else -}} | ||
{{- print "autoscaling/v2beta1" -}} | ||
{{- end -}} | ||
{{- else -}} | ||
{{- print "autoscaling/v2" -}} | ||
{{- end -}} | ||
{{- end -}} | ||
|
||
{{- define "styles.env.custom.ca.path" -}} | ||
- name: SSL_CERT_DIR | ||
value: {{ include "styles.custom.ca.mountPath" . }} | ||
{{- end }} | ||
|
||
{{- define "styles.custom.ca.mountPath" -}} | ||
{{ .Values.customCAs.certsPath | default "/usr/local/share/ca-certificates" }} | ||
{{- end -}} | ||
|
||
{{- define "styles.custom.ca.volumeMounts" -}} | ||
- name: custom-ca | ||
mountPath: {{ include "styles.custom.ca.mountPath" . }}/custom-ca.crt | ||
subPath: custom-ca.crt | ||
readOnly: true | ||
{{- end -}} | ||
|
||
{{- define "styles.custom.ca.jobs.volumes" -}} | ||
- name: custom-ca | ||
configMap: | ||
name: {{ include "styles.configmap.jobs.name" . }} | ||
{{- end -}} | ||
|
||
{{- define "styles.custom.ca.deploys.volumes" -}} | ||
- name: custom-ca | ||
configMap: | ||
name: {{ include "styles.configmap.deploys.name" . }} | ||
{{- end -}} | ||
|
||
{{- define "styles.configmap.jobs.name" -}} | ||
{{ include "styles.name" . }}-configmap-jobs | ||
{{- end -}} | ||
|
||
{{- define "styles.configmap.deploys.name" -}} | ||
{{ include "styles.name" . }}-configmap-deploys | ||
{{- end -}} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: {{ include "styles.api.name" . }} | ||
{{- if or .Values.api.annotations .Values.customCAs.bundle }} | ||
annotations: | ||
{{- if .Values.customCAs.bundle }} | ||
checksum/config: {{ include (print .Template.BasePath "/configmap-deploys.yaml") . | sha256sum }} | ||
{{- end }} | ||
{{- with .Values.api.annotations }} | ||
{{- toYaml . | nindent 4 }} | ||
{{- end }} | ||
{{- end }} | ||
labels: | ||
{{- include "styles.api.labels" . | nindent 4 }} | ||
{{- with .Values.api.labels }} | ||
{{- toYaml . | nindent 4 }} | ||
{{- end }} | ||
spec: | ||
{{- if not .Values.api.hpa.enabled }} | ||
replicas: {{ .Values.api.replicas }} | ||
{{- end }} | ||
revisionHistoryLimit: {{ .Values.api.revisionHistoryLimit }} | ||
strategy: | ||
{{- toYaml .Values.api.strategy | nindent 4 }} | ||
selector: | ||
matchLabels: | ||
{{- include "styles.api.selectorLabels" . | nindent 6 }} | ||
template: | ||
metadata: | ||
annotations: | ||
checksum/config: {{ (include (print $.Template.BasePath "/secret-deploys.yaml") . | fromYaml).data | toYaml | sha256sum }} | ||
{{- with .Values.api.podAnnotations }} | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
labels: | ||
{{- include "styles.api.labels" . | nindent 8 }} | ||
{{- with .Values.api.podLabels }} | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
spec: | ||
containers: | ||
- name: api | ||
image: {{ required "A valid .Values.dgctlDockerRegistry entry required" .Values.dgctlDockerRegistry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }} | ||
imagePullPolicy: {{ .Values.imagePullPolicy }} | ||
command: [ "mgs", "server" ] | ||
ports: | ||
- name: http | ||
containerPort: 8080 | ||
readinessProbe: | ||
httpGet: | ||
path: /healthcheck | ||
port: http | ||
resources: | ||
{{- toYaml .Values.api.resources | nindent 12 }} | ||
env: | ||
{{- include "styles.env.api" . | nindent 12 }} | ||
{{- if .Values.customCAs.bundle }} | ||
volumeMounts: | ||
{{- include "styles.custom.ca.volumeMounts" . | nindent 12 }} | ||
{{- end }} | ||
{{- if .Values.customCAs.bundle }} | ||
volumes: | ||
{{- include "styles.custom.ca.deploys.volumes" . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.api.nodeSelector }} | ||
nodeSelector: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.api.affinity }} | ||
affinity: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.api.tolerations }} | ||
tolerations: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
{{- with .Values.imagePullSecrets }} | ||
imagePullSecrets: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{{- with .Values.api.hpa }} | ||
{{- if .enabled }} | ||
apiVersion: {{ include "capabilities.hpa.apiVersion" $ }} | ||
kind: HorizontalPodAutoscaler | ||
metadata: | ||
name: {{ include "styles.api.name" $ }} | ||
labels: | ||
{{- include "styles.api.labels" $ | nindent 4 }} | ||
spec: | ||
scaleTargetRef: | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
name: {{ include "styles.api.name" $ }} | ||
minReplicas: {{ .minReplicas }} | ||
maxReplicas: {{ .maxReplicas }} | ||
behavior: | ||
scaleUp: | ||
stabilizationWindowSeconds: {{ .scaleUpStabilizationWindowSeconds }} | ||
scaleDown: | ||
stabilizationWindowSeconds: {{ .scaleDownStabilizationWindowSeconds }} | ||
metrics: | ||
{{- with .targetCPUUtilizationPercentage }} | ||
- type: Resource | ||
resource: | ||
name: cpu | ||
target: | ||
type: Utilization | ||
averageUtilization: {{ . }} | ||
{{- end }} | ||
{{- with .targetMemoryUtilizationPercentage }} | ||
- type: Resource | ||
resource: | ||
name: memory | ||
target: | ||
type: Utilization | ||
averageUtilization: {{ . }} | ||
{{- end }} | ||
{{- end }} | ||
{{- end }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{{- if .Values.api.ingress.enabled -}} | ||
apiVersion: networking.k8s.io/v1 | ||
kind: Ingress | ||
metadata: | ||
name: {{ include "styles.api.name" . }} | ||
labels: | ||
{{- include "styles.api.labels" . | nindent 4 }} | ||
{{- with .Values.api.ingress.annotations }} | ||
annotations: | ||
{{- toYaml . | nindent 4 }} | ||
{{- end }} | ||
spec: | ||
ingressClassName: {{ .Values.api.ingress.className }} | ||
{{- if .Values.api.ingress.tls }} | ||
tls: | ||
{{- range .Values.api.ingress.tls }} | ||
- hosts: | ||
{{- range .hosts }} | ||
- {{ . | quote }} | ||
{{- end }} | ||
secretName: {{ .secretName }} | ||
{{- end }} | ||
{{- end }} | ||
rules: | ||
{{- range .Values.api.ingress.hosts }} | ||
- host: {{ .host | quote }} | ||
http: | ||
paths: | ||
{{- range .paths }} | ||
- path: {{ .path }} | ||
pathType: Prefix | ||
backend: | ||
service: | ||
name: {{ include "styles.api.name" $ }} | ||
port: | ||
number: {{ $.Values.api.service.port }} | ||
{{- end }} | ||
{{- end }} | ||
{{- end }} |
Oops, something went wrong.