From 7f05712c1ffdb062c748f7d45612acc9fdc019e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Mass=C3=A9?= Date: Fri, 21 Oct 2022 21:37:23 +0200 Subject: [PATCH] initial commit --- .gitignore | 3 ++ charts/antennas-front/Chart.yaml | 4 ++ charts/antennas-front/templates/_helpers.tpl | 24 ++++++++++ .../antennas-front/templates/deployment.yaml | 44 +++++++++++++++++ charts/antennas-front/templates/service.yaml | 14 ++++++ charts/antennas-front/values.yaml | 7 +++ charts/antennas-incident/Chart.yaml | 4 ++ .../antennas-incident/templates/_helpers.tpl | 24 ++++++++++ .../templates/deployment.yaml | 48 +++++++++++++++++++ .../antennas-incident/templates/service.yaml | 14 ++++++ charts/antennas-incident/values.yaml | 10 ++++ kustomization.yaml | 33 +++++++++++++ route.yaml | 15 ++++++ 13 files changed, 244 insertions(+) create mode 100644 .gitignore create mode 100644 charts/antennas-front/Chart.yaml create mode 100644 charts/antennas-front/templates/_helpers.tpl create mode 100644 charts/antennas-front/templates/deployment.yaml create mode 100644 charts/antennas-front/templates/service.yaml create mode 100644 charts/antennas-front/values.yaml create mode 100644 charts/antennas-incident/Chart.yaml create mode 100644 charts/antennas-incident/templates/_helpers.tpl create mode 100644 charts/antennas-incident/templates/deployment.yaml create mode 100644 charts/antennas-incident/templates/service.yaml create mode 100644 charts/antennas-incident/values.yaml create mode 100644 kustomization.yaml create mode 100644 route.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27e0adc --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +charts/mariadb +charts/mariadb-*.tgz + diff --git a/charts/antennas-front/Chart.yaml b/charts/antennas-front/Chart.yaml new file mode 100644 index 0000000..8c43001 --- /dev/null +++ b/charts/antennas-front/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: antennas-front +version: 0.0.1 +description: antennas-front diff --git a/charts/antennas-front/templates/_helpers.tpl b/charts/antennas-front/templates/_helpers.tpl new file mode 100644 index 0000000..b24dfc2 --- /dev/null +++ b/charts/antennas-front/templates/_helpers.tpl @@ -0,0 +1,24 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "chartName" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "fullName" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/charts/antennas-front/templates/deployment.yaml b/charts/antennas-front/templates/deployment.yaml new file mode 100644 index 0000000..d16bff6 --- /dev/null +++ b/charts/antennas-front/templates/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + name: {{ include "fullName" . }} +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: {{ include "fullName" . }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + spec: + containers: + - env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: APIKEY + value: {{ .Values.incident.apikey | quote }} + - name: QUARKUS_REST_CLIENT_INCIDENT_SERVICE_URL + value: {{ .Values.incident.url | quote }} + image: {{ printf "%s:%s" .Values.image.repository .Values.image.tag | quote }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + name: antennas-front + ports: + - containerPort: 8080 + name: http + protocol: TCP + livenessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 2 + periodSeconds: 5 + readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 3 + periodSeconds: 5 diff --git a/charts/antennas-front/templates/service.yaml b/charts/antennas-front/templates/service.yaml new file mode 100644 index 0000000..13a77ed --- /dev/null +++ b/charts/antennas-front/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + name: {{ include "fullName" . }} +spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + selector: + app.kubernetes.io/name: {{ include "fullName" . }} + type: ClusterIP diff --git a/charts/antennas-front/values.yaml b/charts/antennas-front/values.yaml new file mode 100644 index 0000000..0bdaa94 --- /dev/null +++ b/charts/antennas-front/values.yaml @@ -0,0 +1,7 @@ +incident: + apikey: "" # API Key to call the incident service + url: "" # URL of the incident service +image: + repository: "quay.io/redhat_sa_france/antennas-front" + tag: latest + pullPolicy: Always \ No newline at end of file diff --git a/charts/antennas-incident/Chart.yaml b/charts/antennas-incident/Chart.yaml new file mode 100644 index 0000000..90bff07 --- /dev/null +++ b/charts/antennas-incident/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: antennas-incident +version: 0.0.1 +description: antennas-incident diff --git a/charts/antennas-incident/templates/_helpers.tpl b/charts/antennas-incident/templates/_helpers.tpl new file mode 100644 index 0000000..b24dfc2 --- /dev/null +++ b/charts/antennas-incident/templates/_helpers.tpl @@ -0,0 +1,24 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "chartName" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "fullName" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/charts/antennas-incident/templates/deployment.yaml b/charts/antennas-incident/templates/deployment.yaml new file mode 100644 index 0000000..2795067 --- /dev/null +++ b/charts/antennas-incident/templates/deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + name: {{ include "fullName" . }} +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: {{ include "fullName" . }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + spec: + containers: + - env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: APIKEY + value: {{ .Values.apikey | quote }} + - name: QUARKUS_DATASOURCE_USERNAME + value: {{ .Values.db.username | quote }} + - name: QUARKUS_DATASOURCE_PASSWORD + value: {{ .Values.db.password | quote }} + - name: QUARKUS_DATASOURCE_JDBC_URL + value: {{ printf "jdbc:mysql://%s:3306/%s" .Values.db.hostname .Values.db.dbname | quote }} + image: {{ printf "%s:%s" .Values.image.repository .Values.image.tag | quote }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + name: antennas-incident + ports: + - containerPort: 8080 + name: http + protocol: TCP + livenessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 2 + periodSeconds: 5 + readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 3 + periodSeconds: 5 diff --git a/charts/antennas-incident/templates/service.yaml b/charts/antennas-incident/templates/service.yaml new file mode 100644 index 0000000..13a77ed --- /dev/null +++ b/charts/antennas-incident/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: {{ include "fullName" . }} + name: {{ include "fullName" . }} +spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + selector: + app.kubernetes.io/name: {{ include "fullName" . }} + type: ClusterIP diff --git a/charts/antennas-incident/values.yaml b/charts/antennas-incident/values.yaml new file mode 100644 index 0000000..5c9689f --- /dev/null +++ b/charts/antennas-incident/values.yaml @@ -0,0 +1,10 @@ +apikey: "" # API key required to query this service +db: + hostname: "" # database hostname + dbname: "" # database name + username: "" # username to connect to database + password: "" # password to connect to database +image: + repository: "quay.io/redhat_sa_france/antennas-incident" + tag: latest + pullPolicy: Always \ No newline at end of file diff --git a/kustomization.yaml b/kustomization.yaml new file mode 100644 index 0000000..d39cdcc --- /dev/null +++ b/kustomization.yaml @@ -0,0 +1,33 @@ +namespace: antennas-prod + +helmCharts: +- name: mariadb + version: 0.1.0 + repo: https://gitlab.com/api/v4/projects/39850850/packages/helm/stable + releaseName: antennas + valuesInline: + db: + dbname: "antennas" + username: "antennas" + password: "secret" + rootpassword: "secret" +- name: antennas-front + version: 0.0.1 + releaseName: antennas-front + valuesInline: + incident: + apikey: super-secret + url: http://antennas-incident:8080 +- name: antennas-incident + version: 0.0.1 + releaseName: antennas-incident + valuesInline: + apikey: super-secret + db: + hostname: "antennas-mariadb" + dbname: "antennas" + username: "antennas" + password: "secret" + +resources: +- route.yaml diff --git a/route.yaml b/route.yaml new file mode 100644 index 0000000..4fa40c7 --- /dev/null +++ b/route.yaml @@ -0,0 +1,15 @@ +kind: Route +apiVersion: route.openshift.io/v1 +metadata: + name: antennas-front +spec: + to: + kind: Service + name: antennas-front + weight: 100 + port: + targetPort: http + wildcardPolicy: None + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect