Skip to content
Snippets Groups Projects
Commit c6edb20c authored by Valeri Fikov's avatar Valeri Fikov :speech_balloon:
Browse files

inital commit

parent e8d59d1f
No related branches found
No related tags found
No related merge requests found
Pipeline #51672 failed with stage
in 3 seconds
image: nexus.tech.vereign.com:6001/helm:3.5.3
include:
- project: 'gaiax/tsa/ci-helpers'
file: 'helm-package.yml'
stages:
- lint
- package
helm-lint:
extends: .helm-lint
stage: lint
tags:
- amd64-docker
helm-package:
extends: .helm-package
stage: package
tags:
- amd64-docker
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/infohub-helm.iml" filepath="$PROJECT_DIR$/.idea/infohub-helm.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
apiVersion: v1
appVersion: 0.0.0
description: infohub deployment
name: infohub
version: 0.0.0
icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg"
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "app.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "app.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" $name .Release.Namespace | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create instance name based on app version and short image sha.
*/}}
{{- define "app.revision" -}}
{{- default .Release.Name .Values.appRel | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "app.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "app.labels" -}}
helm.sh/chart: {{ include "app.chart" . }}
{{ include "app.selectorLabels" . }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "app.selectorLabels" -}}
app.kubernetes.io/name: {{ include "app.name" . }}
app.kubernetes.io/component: {{ include "app.fullname" . }}
{{- end -}}
{{/*
Metrics Annotations
*/}}
{{- define "app.metricsAnnotations" -}}
{{- if .Values.metrics.enabled -}}
prometheus.io/scrape: "true"
prometheus.io/port: "{{ .Values.metrics.port }}"
prometheus.io/path: {{ .Values.metrics.path | default "/metrics" | quote }}
{{- end -}}
{{- end -}}
{{/*
Image string
*/}}
{{- define "app.image" -}}
{{- if .Values.image.sha -}}
{{ .Values.image.repository }}/{{ .Values.image.name }}@{{ .Values.image.sha }}
{{- else -}}
{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}
{{- end -}}
{{- end -}}
{{/*
Security context
*/}}
{{- define "app.securitycontext" -}}
runAsNonRoot: {{ .Values.security.runAsNonRoot | default false }}
runAsGroup: {{ .Values.security.runAsGid | default 0 }}
runAsUser: {{ .Values.security.runAsUid | default 0 }}
fsGroup: {{ .Values.security.runAsGid | default 0 }}
{{- end -}}
{{/*
PostgreSQL Connection string URI
*/}}
{{- define "app.postgresql.connectionstring" -}}
postgresql://{{ .Values.connectionManager.database.user }}:{{ .Values.connectionManager.database.password }}@{{ .Values.connectionManager.database.host }}:{{ .Values.connectionManager.database.port }}/{{ .Release.Namespace }}_{{ include "app.name" . | replace "-" "_" }}?schema={{ .Values.connectionManager.database.schema }}
{{- end -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: "{{ template "app.name" . }}"
namespace: {{ .Release.Namespace }}
labels:
{{- include "app.labels" . | nindent 4 }}
app.kubernetes.io/instance: {{ include "app.revision" . }}
app.kubernetes.io/part-of: rse
spec:
replicas: {{ .Values.replicaCount }}
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
{{- include "app.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "app.labels" . | nindent 8 }}
annotations:
{{- include "app.metricsAnnotations" . | nindent 8 }}
{{- if .Values.podAnnotations }}
{{ toYaml .Values.podAnnotations | indent 8 }}
{{- end }}
spec:
securityContext:
{{- include "app.securitycontext" . | nindent 8 }}
imagePullSecrets:
- name: {{ .Values.image.pullSecrets }}
containers:
- name: {{ template "app.name" . }}
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
env:
- name: LOG_LEVEL
value: {{ .Values.log.level | default "INFO" }}
- name: LOG_ENCODING
value: {{ .Values.log.encoding | default "json" }}
- name: HTTP_HOST
value: {{ .Values.task.http.host | quote }}
- name: HTTP_PORT
value: {{ .Values.task.http.port | quote }}
- name: HTTP_IDLE_TIMEOUT
value: {{ .Values.task.http.timeout.idle | quote }}
- name: HTTP_READ_TIMEOUT
value: {{ .Values.task.http.timeout.read | quote }}
- name: HTTP_WRITE_TIMEOUT
value: {{ .Values.task.http.timeout.write | quote }}
- name: MONGO_ADDR
value: {{ .Values.mongo.addr | quote }}
- name: MONGO_USER
value: {{ .Values.mongo.user | quote }}
- name: MONGO_PASS
value: {{ .Values.mongo.pass | quote }}
- name: MONGO_DB
value: {{ .Values.mongo.dbname | quote }}
- name: CACHE_ADDR
value: {{ .Values.addresses.cache | quote }}
- name: SIGNER_ADDR
value: {{ .Values.addresses.signer | quote }}
- name: POLICY_ADDR
value: {{ .Values.addresses.policy | quote }}
{{- if .Values.extraVars }}
{{ toYaml .Values.extraVars | indent 8 }}
{{- end }}
ports:
{{- if .Values.metrics.enabled }}
- name: monitoring
containerPort: {{ .Values.metrics.port }}
{{- end }}
- name: http
containerPort: {{ .Values.task.http.port }}
readinessProbe:
httpGet:
path: /readiness
port: {{ .Values.task.http.port }}
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 2
failureThreshold: 2
timeoutSeconds: 5
resources:
{{ toYaml .Values.resources | indent 10 }}
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
labels:
{{- include "app.labels" . | nindent 4 }}
name: {{ template "app.name" . }}
namespace: {{ .Release.Namespace }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ template "app.name" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- with .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
{{- end }}
{{- with .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
{{- end }}
{{- end }}
\ No newline at end of file
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ template "app.name" . }}
namespace: {{ .Release.Namespace }}
annotations:
{{ toYaml .Values.ingress.annotations | indent 4 }}
labels:
{{- include "app.labels" . | nindent 4 }}
spec:
{{- if .Values.ingress.tlsEnabled }}
tls:
- hosts:
- {{ .Values.ingress.frontendDomain }}
secretName: {{ .Values.ingress.frontendTlsSecretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.frontendDomain }}
http:
paths:
- path: /{{ .Release.Namespace }}/{{ template "app.name" . }}(/|$)(.*)
pathType: Prefix
backend:
service:
name: {{ template "app.name" . }}
port:
number: {{ .Values.service.port }}
{{- end }}
\ No newline at end of file
apiVersion: v1
kind: Service
metadata:
name: {{ template "app.name" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "app.labels" . | nindent 4 }}
spec:
clusterIP: None
ports:
- name: http
targetPort: {{ .Values.service.port }}
port: {{ .Values.task.http.port }}
selector:
{{- include "app.selectorLabels" . | nindent 4 }}
# -- Default number of instances to start
replicaCount: 1
# -- Application name
name: infohub
# -- Ovverwrites application name
nameOverride: ""
image:
repository: eu.gcr.io/vrgn-infra-prj
# -- Image name
name: gaiax/infohub
# -- Image tag
# Uses .Chart.AppVersion if empty
tag: ""
# -- Image sha, usually generated by the CI
# Uses image.tag if empty
sha: ""
# -- Image pull policy
pullPolicy: IfNotPresent
# -- Image pull secret when internal image is used
pullSecrets: deployment-key-light
podAnnotations: {}
resources:
requests:
cpu: 25m
memory: 64Mi
limits:
cpu: 150m
memory: 128Mi
autoscaling:
# -- Enable autoscaling
enabled: false
# -- Minimum replicas
minReplicas: 1
# -- Maximum replicas
maxReplicas: 3
# -- CPU target for autoscaling trigger
targetCPUUtilizationPercentage: 70
# -- Memory target for autoscaling trigger
targetMemoryUtilizationPercentage: 70
metrics:
# -- Enable prometheus metrics
enabled: true
# -- Port for prometheus metrics
port: 2112
log:
level: "debug"
encoding: json
security:
# -- by default, apps run as non-root
runAsNonRoot: false
# -- User used by the apps
runAsUid: 0
# -- Group used by the apps
runAsGid: 0
service:
port: 8080
task:
http:
host: ""
port: 8080
timeout:
idle: 120s
read: 10s
write: 10s
mongo:
addr: "mongodb://mongodb-mongodb-replicaset.infra:27017/infohub?replicaSet=rs0&authSource=admin"
user: "root"
pass: "root"
dbname: infohub
addresses:
policy: http://policy:8080
cache: http://cache:8080
signer: http://signer:8080
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production-http
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.global-static-ip-name: dev-light-public
nginx.ingress.kubernetes.io/rewrite-target: /$2
tlsEnabled: true
frontendDomain: gaiax.vereign.com
frontendTlsSecretName: cert-manager-tls
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment