Skip to content

Commit e7bf808

Browse files
committed
Modifications in the ods-api-service configuration
1 parent 3e28539 commit e7bf808

15 files changed

Lines changed: 568 additions & 70 deletions

Makefile

Lines changed: 141 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ ifeq ($(INSECURE), $(filter $(INSECURE), true yes))
1818
INSECURE_FLAG = --insecure
1919
endif
2020

21+
# ODS API Service configuration files
22+
env ?= dev
23+
ENV ?= $(env)
24+
env := $(ENV)
25+
ODS_CONFIGURATION_DIR := ../ods-configuration
26+
ODS_CONFIGURATION_FULL_PATH := $(abspath $(ODS_CONFIGURATION_DIR))
27+
ODS_API_SERVICE_DATABASE_REPO := $(ODS_API_SERVICE_DIR:-.../ods-api-service)
28+
2129
# REPOSITORIES
2230
## Prepare Bitbucket repos (create project and repos).
2331
prepare-bitbucket-repos:
@@ -195,8 +203,14 @@ start-ods-api-service-build:
195203

196204
## Apply OpenShift resources related to the Ods API Service.
197205
apply-ods-api-service-chart:
198-
cd ods-api-service/chart && envsubst < values.yaml.template > values.yaml && helm upgrade --install --namespace $(ODS_NAMESPACE) \
199-
-f values.yaml \
206+
cd ods-api-service/chart && \
207+
helm upgrade --install --namespace $(ODS_NAMESPACE) \
208+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.values.yaml \
209+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.secrets.enc.yaml \
210+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.values.yaml \
211+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.secrets.enc.yaml \
212+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.values.$(env).yaml \
213+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.secrets.$(env).enc.yaml \
200214
--set projectId=$(ODS_NAMESPACE) \
201215
--set appSelector=app=ods-api-service \
202216
--set registry=$(DOCKER_REGISTRY) \
@@ -210,14 +224,137 @@ apply-ods-api-service-chart:
210224
--set global.imageNamespace=$(ODS_NAMESPACE) \
211225
--set global.imageTag=$(ODS_IMAGE_TAG) \
212226
--set ODS_OPENSHIFT_APP_DOMAIN=$(OPENSHIFT_APPS_BASEDOMAIN) \
213-
ods-api-service . && rm values.yaml
227+
ods-api-service .
214228
.PHONY: apply-ods-api-service-chart
215229

216230
## Configure ODS API Service (sets up PostgreSQL superuser for backup operations).
217231
configure-ods-api-service:
218232
cd ods-api-service && ./configure.sh --namespace $(ODS_NAMESPACE)
219233
.PHONY: configure-ods-api-service
220234

235+
##### HELM CHART MANAGEMENT
236+
.PHONY: helm-encrypt-secrets helm-decrypt-secrets helm-diff helm-render-ods-api-service helm-render-ods-api-service-application-yaml
237+
## Render ODS API Service Helm chart with all configurations (values and secrets).
238+
helm-render-ods-api-service:
239+
@cd ods-api-service/chart && \
240+
helm secrets template ods-api-service . \
241+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.values.yaml \
242+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.secrets.enc.yaml \
243+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.values.yaml \
244+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.secrets.enc.yaml \
245+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.values.$(env).yaml \
246+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.secrets.$(env).enc.yaml \
247+
--set projectId=$(ODS_NAMESPACE) \
248+
--set appSelector=app=ods-api-service \
249+
--set registry=$(DOCKER_REGISTRY) \
250+
--set componentId=ods-api-service \
251+
--set global.projectId=$(ODS_NAMESPACE) \
252+
--set global.appSelector=app=ods-api-service \
253+
--set global.registry=$(DOCKER_REGISTRY) \
254+
--set global.componentId=ods-api-service \
255+
--set imageNamespace=$(ODS_NAMESPACE) \
256+
--set imageTag=$(ODS_IMAGE_TAG) \
257+
--set global.imageNamespace=$(ODS_NAMESPACE) \
258+
--set global.imageTag=$(ODS_IMAGE_TAG) \
259+
--set ODS_OPENSHIFT_APP_DOMAIN=$(OPENSHIFT_APPS_BASEDOMAIN)
260+
261+
## Render the generated application.yaml from Helm templates to a local file.
262+
helm-render-ods-api-service-application-yaml:
263+
@cd ods-api-service/chart && \
264+
helm secrets template ods-api-service . \
265+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.values.yaml \
266+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.secrets.enc.yaml \
267+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.values.yaml \
268+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.secrets.enc.yaml \
269+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.values.$(env).yaml \
270+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.secrets.$(env).enc.yaml \
271+
--set projectId=$(ODS_NAMESPACE) \
272+
--set appSelector=app=ods-api-service \
273+
--set registry=$(DOCKER_REGISTRY) \
274+
--set componentId=ods-api-service \
275+
--set global.projectId=$(ODS_NAMESPACE) \
276+
--set global.appSelector=app=ods-api-service \
277+
--set global.registry=$(DOCKER_REGISTRY) \
278+
--set global.componentId=ods-api-service \
279+
--set imageNamespace=$(ODS_NAMESPACE) \
280+
--set imageTag=$(ODS_IMAGE_TAG) \
281+
--set global.imageNamespace=$(ODS_NAMESPACE) \
282+
--set global.imageTag=$(ODS_IMAGE_TAG) \
283+
--set ODS_OPENSHIFT_APP_DOMAIN=$(OPENSHIFT_APPS_BASEDOMAIN) \
284+
2>/dev/null | \
285+
yq -r 'select(.kind == "ConfigMap") | select(.metadata.name == "ods-api-service-config") | .data["application.yaml"]'
286+
287+
288+
## Render the generated .env file from Helm templates to a local file.
289+
helm-render-ods-api-service-dot-env:
290+
@cd ods-api-service/chart && \
291+
helm secrets template ods-api-service . \
292+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.values.yaml \
293+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.secrets.enc.yaml \
294+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.values.yaml \
295+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.secrets.enc.yaml \
296+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.values.$(env).yaml \
297+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.secrets.$(env).enc.yaml \
298+
--set projectId=$(ODS_NAMESPACE) \
299+
--set appSelector=app=ods-api-service \
300+
--set registry=$(DOCKER_REGISTRY) \
301+
--set componentId=ods-api-service \
302+
--set global.projectId=$(ODS_NAMESPACE) \
303+
--set global.appSelector=app=ods-api-service \
304+
--set global.registry=$(DOCKER_REGISTRY) \
305+
--set global.componentId=ods-api-service \
306+
--set imageNamespace=$(ODS_NAMESPACE) \
307+
--set imageTag=$(ODS_IMAGE_TAG) \
308+
--set global.imageNamespace=$(ODS_NAMESPACE) \
309+
--set global.imageTag=$(ODS_IMAGE_TAG) \
310+
--set ODS_OPENSHIFT_APP_DOMAIN=$(OPENSHIFT_APPS_BASEDOMAIN) 2>/dev/null | ../../scripts/extract-config-env-from-template.sh
311+
312+
313+
314+
315+
helm-encrypt-secrets:
316+
@echo "Usage: make helm-encrypt-secrets ENV=all|environment. It use ENV=dev by default if ENV is not set. It will encrypt secrets in the root of the configuration directory and in the environment-specific subdirectory (if it exists)."
317+
@echo " make helm-encrypt-secrets ODS_CONFIGURATION_DIR=path/to/config to specify a different configuration directory (default: ../ods-configuration)."
318+
319+
@echo "Encrypting secrets in $(ODS_CONFIGURATION_DIR)..."
320+
./scripts/encrypt-helm-secrets.sh $(ODS_CONFIGURATION_DIR) $(ENV)
321+
@echo "✓ Secrets encrypted"
322+
323+
## Decrypt secrets files (ENV=<name>|all, omit for root folder only)
324+
helm-decrypt-secrets:
325+
@echo "Usage: make helm-decrypt-secrets ENV=all|environment. It use ENV=dev by default if ENV is not set. It will decrypt secrets in the root of the configuration directory and in the environment-specific subdirectory (if it exists)."
326+
@echo " make helm-decrypt-secrets ODS_CONFIGURATION_DIR=path/to/config to specify a different configuration directory (default: ../ods-configuration)."
327+
328+
@echo "Decrypting secrets in $(ODS_CONFIGURATION_DIR)..."
329+
./scripts/decrypt-helm-secrets.sh $(ODS_CONFIGURATION_DIR) $(ENV)
330+
@echo "✓ Secrets decrypted"
331+
332+
## Diff Helm chart against cluster using helm secrets diff
333+
helm-diff:
334+
@echo "Running helm secrets diff (dry-run through Makefile)..."
335+
@export HELM_DIFF_IGNORE_UNKNOWN_FLAGS=true && helm -n devstack-dev secrets diff upgrade --install --atomic \
336+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.values.yaml \
337+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-core.secrets.enc.yaml \
338+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.values.yaml \
339+
-f $(ODS_CONFIGURATION_FULL_PATH)/ods-api-service.secrets.enc.yaml \
340+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.values.$(env).yaml \
341+
-f $(ODS_CONFIGURATION_FULL_PATH)/$(env)/ods-api-service.secrets.$(env).enc.yaml \
342+
--set projectId=devstack \
343+
--set appSelector=app=devstack-api-service \
344+
--set registry=image-registry.openshift-image-registry.svc:5000 \
345+
--set componentId=api-service \
346+
--set global.projectId=devstack \
347+
--set global.appSelector=app=devstack-api-service \
348+
--set global.registry=image-registry.openshift-image-registry.svc:5000 \
349+
--set global.componentId=api-service \
350+
--set imageNamespace=devstack-dev \
351+
--set imageTag=b19c9164 \
352+
--set global.imageNamespace=devstack-dev \
353+
--set global.imageTag=b19c9164 \
354+
--set ODS_OPENSHIFT_APP_DOMAIN=apps.eu-dev.ocp.aws.boehringer.com \
355+
--no-color --three-way-merge --normalize-manifests \
356+
api-service ./chart
357+
221358

222359
# BACKUP
223360
## Create a backup of the current state.
@@ -256,3 +393,4 @@ help:
256393
} \
257394
{ lastLine = $$0 }' $(MAKEFILE_LIST)
258395
.PHONY: help
396+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,33 @@
1+
---
12
apiVersion: v1
23
kind: ConfigMap
34
metadata:
45
name: {{ .Release.Name }}-config
6+
labels:
7+
{{- include "chart.labels" . | nindent 4 }}
58
data:
69
application.yaml: |
710
{{ include "chart.application.yaml" . | nindent 4 }}
811

12+
---
13+
apiVersion: v1
14+
kind: ConfigMap
15+
metadata:
16+
name: {{ .Release.Name }}-config-db
17+
labels:
18+
{{- include "chart.labels" . | nindent 4 }}
19+
data:
20+
ODS_API_SERVICE_DB_DATASOURCE_URL: "jdbc:postgresql://{{ include "chart.fullname" . }}-postgresql:5432/{{ .Values.postgresql.databaseName }}"
21+
22+
---
23+
apiVersion: v1
24+
kind: Secret
25+
metadata:
26+
name: {{ .Release.Name }}-config-db-secret
27+
labels:
28+
{{- include "chart.labels" . | nindent 4 }}
29+
type: Opaque
30+
data:
31+
ODS_API_SERVICE_DB_NAME: {{ .Values.postgresql.databaseNameB64 }}
32+
ODS_API_SERVICE_DB_USER: {{ .Values.postgresql.databaseUserB64 }}
33+
ODS_API_SERVICE_DB_PASSWORD: {{ .Values.postgresql.databasePasswordB64 }}

ods-api-service/chart/templates/core/deployment.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,11 @@ spec:
5252
value: {{ .Values.env.OAUTH2_JWK_SET_URI | quote }}
5353
- name: JAVA_OPTS
5454
value: {{ .Values.env.JAVA_OPTS | quote }}
55-
- name: SPRING_DATASOURCE_PASSWORD
56-
valueFrom:
57-
secretKeyRef:
58-
name: {{ include "chart.fullname" . }}-postgresql
59-
key: database-password
6055
envFrom:
6156
- configMapRef:
62-
name: {{ include "chart.fullname" . }}-postgresql-config
57+
name: {{ .Release.Name }}-config-db
58+
- secretRef:
59+
name: {{ .Release.Name }}-config-db-secret
6360
{{- if .Values.externalServices.aap.enabled }}
6461
- configMapRef:
6562
name: {{ include "chart.fullname" . }}-aap-config

ods-api-service/chart/templates/external-service-bitbucket/external-service-bitbucket-configmap.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ metadata:
77
{{- include "chart.labels" . | nindent 4 }}
88
app.kubernetes.io/component: bitbucket-config
99
data:
10-
{{- range $index, $instance := .Values.externalServices.bitbucket.instances }}
11-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_BASE_REST_URL: {{ $instance.baseUrl | quote }}
12-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
13-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
14-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
10+
{{- range $name, $instance := .Values.externalServices.bitbucket.instances }}
11+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_BASE_REST_URL: {{ $instance.baseUrl | quote }}
12+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
13+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
14+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
1515
{{- end }}
1616
{{- end }}

ods-api-service/chart/templates/external-service-bitbucket/external-service-bitbucket-secret.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ metadata:
88
app.kubernetes.io/component: bitbucket-credentials
99
type: Opaque
1010
data:
11-
{{- range $index, $instance := .Values.externalServices.bitbucket.instances }}
11+
{{- range $name, $instance := .Values.externalServices.bitbucket.instances }}
1212
{{- if $instance.bearerToken }}
13-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_BEARER_TOKEN: {{ $instance.bearerToken | b64enc | quote }}
13+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_BEARER_TOKEN: {{ $instance.bearerToken | b64enc | quote }}
1414
{{- end }}
1515
{{- if $instance.username }}
16-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_USERNAME: {{ $instance.username | b64enc | quote }}
16+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_USERNAME: {{ $instance.username | b64enc | quote }}
1717
{{- end }}
1818
{{- if $instance.password }}
19-
BITBUCKET_{{ $instance.name | upper | replace "-" "_" }}_PASSWORD: {{ $instance.password | b64enc | quote }}
19+
BITBUCKET_{{ $name | upper | replace "-" "_" }}_PASSWORD: {{ $instance.password | b64enc | quote }}
2020
{{- end }}
2121
{{- end }}
2222
{{- end }}

ods-api-service/chart/templates/external-service-jira/external-service-jira-configmap.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ metadata:
88
app.kubernetes.io/component: jira-config
99
data:
1010
JIRA_DEFAULT_INSTANCE: {{ .Values.externalServices.jira.defaultInstance | quote }}
11-
{{- range $index, $instance := .Values.externalServices.jira.instances }}
12-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_BASE_URL: {{ $instance.baseUrl | quote }}
13-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
14-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
15-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
11+
{{- range $name, $instance := .Values.externalServices.jira.instances }}
12+
JIRA_{{ $name | upper | replace "-" "_" }}_BASE_URL: {{ $instance.baseUrl | quote }}
13+
JIRA_{{ $name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
14+
JIRA_{{ $name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
15+
JIRA_{{ $name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
1616
{{- end }}
1717
{{- end }}

ods-api-service/chart/templates/external-service-jira/external-service-jira-secret.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ metadata:
88
app.kubernetes.io/component: jira-credentials
99
type: Opaque
1010
data:
11-
{{- range $index, $instance := .Values.externalServices.jira.instances }}
11+
{{- range $name, $instance := .Values.externalServices.jira.instances }}
1212
{{- if $instance.bearerToken }}
13-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_BEARER_TOKEN: {{ $instance.bearerToken | b64enc | quote }}
13+
JIRA_{{ $name | upper | replace "-" "_" }}_BEARER_TOKEN: {{ $instance.bearerToken | b64enc | quote }}
1414
{{- end }}
1515
{{- if $instance.username }}
16-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_USERNAME: {{ $instance.username | b64enc | quote }}
16+
JIRA_{{ $name | upper | replace "-" "_" }}_USERNAME: {{ $instance.username | b64enc | quote }}
1717
{{- end }}
1818
{{- if $instance.password }}
19-
JIRA_{{ $instance.name | upper | replace "-" "_" }}_PASSWORD: {{ $instance.password | b64enc | quote }}
19+
JIRA_{{ $name | upper | replace "-" "_" }}_PASSWORD: {{ $instance.password | b64enc | quote }}
2020
{{- end }}
2121
{{- end }}
2222
{{- end }}

ods-api-service/chart/templates/external-service-openshift/external-service-openshift-configmap.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ metadata:
77
{{- include "chart.labels" . | nindent 4 }}
88
app.kubernetes.io/component: openshift-config
99
data:
10-
{{- range $index, $instance := .Values.externalServices.openshift.instances }}
11-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_API_URL: {{ $instance.apiUrl | quote }}
12-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_NAMESPACE: {{ $instance.namespace | quote }}
13-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
14-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
15-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
10+
{{- range $name, $instance := .Values.externalServices.openshift.instances }}
11+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_API_URL: {{ $instance.apiUrl | quote }}
12+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_NAMESPACE: {{ $instance.namespace | quote }}
13+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_CONNECTION_TIMEOUT: {{ $instance.connectionTimeout | quote }}
14+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_READ_TIMEOUT: {{ $instance.readTimeout | quote }}
15+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_TRUST_ALL: {{ $instance.trustAllCertificates | quote }}
1616
{{- end }}
1717
{{- end }}

ods-api-service/chart/templates/external-service-openshift/external-service-openshift-secret.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
app.kubernetes.io/component: openshift-credentials
99
type: Opaque
1010
data:
11-
{{- range $index, $instance := .Values.externalServices.openshift.instances }}
12-
OPENSHIFT_{{ $instance.name | upper | replace "-" "_" }}_TOKEN: {{ $instance.token | b64enc | quote }}
11+
{{- range $name, $instance := .Values.externalServices.openshift.instances }}
12+
OPENSHIFT_{{ $name | upper | replace "-" "_" }}_TOKEN: {{ $instance.token | b64enc | quote }}
1313
{{- end }}
1414
{{- end }}

ods-api-service/chart/templates/postgresql/configmap.yaml

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)