From 562590750167d125daf8cc82235fb94e3887c327 Mon Sep 17 00:00:00 2001 From: trantzas Date: Thu, 27 Nov 2025 19:18:13 +0200 Subject: [PATCH] APIs using correct dbs (fix for #58) --- .gitignore | 5 +++++ .../openslice/files/mysql-init/entrypoint.sh | 7 +++++++ kubernetes/helm/openslice/templates/_helpers.tpl | 8 ++++++++ .../openslice/templates/mysql-tmf-secret.yaml | 16 ++++++++++++++++ kubernetes/helm/openslice/templates/mysql.yaml | 6 ++++++ kubernetes/helm/openslice/templates/oasapi.yaml | 12 ++++++------ .../helm/openslice/templates/osportalapi.yaml | 2 +- kubernetes/helm/openslice/templates/osscapi.yaml | 12 ++++++------ kubernetes/helm/openslice/values.yaml | 12 ++++++++++++ 9 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 kubernetes/helm/openslice/templates/mysql-tmf-secret.yaml diff --git a/.gitignore b/.gitignore index 01d35d6..c62d1f0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,8 @@ .classpath /.settings +compose/kubedir/config +kubernetes/helm/openslice/files/org.etsi.osl.cridge/kubeconfig.yaml +kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js/config.js +kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/config.prod.json +kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/theming.scss diff --git a/kubernetes/helm/openslice/files/mysql-init/entrypoint.sh b/kubernetes/helm/openslice/files/mysql-init/entrypoint.sh index fe7dc19..e9e6bcd 100644 --- a/kubernetes/helm/openslice/files/mysql-init/entrypoint.sh +++ b/kubernetes/helm/openslice/files/mysql-init/entrypoint.sh @@ -22,6 +22,9 @@ create_user() { PORTAL_USER="$(< /var/run/secrets/portal/username)" PORTAL_DATABASE="$(< /var/run/secrets/portal/database)" +TMF_USER="$(< /var/run/secrets/tmf/username)" +TMF_DATABASE="$(< /var/run/secrets/tmf/database)" + KEYCLOAK_USER="$(< /var/run/secrets/keycloak/username)" KEYCLOAK_DATABASE="$(< /var/run/secrets/keycloak/database)" @@ -32,11 +35,13 @@ run_mysql --execute \ " # create databases CREATE DATABASE IF NOT EXISTS $PORTAL_DATABASE; +CREATE DATABASE IF NOT EXISTS $TMF_DATABASE; CREATE DATABASE IF NOT EXISTS $KEYCLOAK_DATABASE; CREATE DATABASE IF NOT EXISTS $METRICO_DATABASE; " create_user "$PORTAL_USER" "$(< /var/run/secrets/portal/password)" +create_user "$TMF_USER" "$(< /var/run/secrets/tmf/password)" create_user "$KEYCLOAK_USER" "$(< /var/run/secrets/keycloak/password)" create_user "$METRICO_USER" "$(< /var/run/secrets/metrico/password)" @@ -44,6 +49,8 @@ run_mysql --execute \ " # Grant portal user rights to the portal database GRANT ALL PRIVILEGES ON $PORTAL_DATABASE.* TO '$PORTAL_USER'@'%'; +# Grant tmf user rights to the tmf database +GRANT ALL PRIVILEGES ON $TMF_DATABASE.* TO '$TMF_USER'@'%'; # Grant keycloak user rights to the portal database GRANT ALL PRIVILEGES ON $KEYCLOAK_DATABASE.* TO '$KEYCLOAK_USER'@'%'; # Grant metrico user rights to the portal database diff --git a/kubernetes/helm/openslice/templates/_helpers.tpl b/kubernetes/helm/openslice/templates/_helpers.tpl index fa5e591..b4dd9c5 100644 --- a/kubernetes/helm/openslice/templates/_helpers.tpl +++ b/kubernetes/helm/openslice/templates/_helpers.tpl @@ -104,6 +104,14 @@ Secrets {{- end }} {{- end }} +{{- define "openslice.secrets.tmf.mysql" -}} +{{- if .Values.oscreds.mysql.tmf.existingSecret }} +{{- .Values.oscreds.mysql.tmf.existingSecret }} +{{- else }} +{{- include "openslice.fullname" . }}-mysql-tmf-secrets +{{- end }} +{{- end }} + {{- define "openslice.secrets.metrico.mysql" -}} {{- if .Values.oscreds.mysql.metrico.existingSecret }} {{- .Values.oscreds.mysql.metrico.existingSecret }} diff --git a/kubernetes/helm/openslice/templates/mysql-tmf-secret.yaml b/kubernetes/helm/openslice/templates/mysql-tmf-secret.yaml new file mode 100644 index 0000000..8d5a50c --- /dev/null +++ b/kubernetes/helm/openslice/templates/mysql-tmf-secret.yaml @@ -0,0 +1,16 @@ +{{- if not .Values.oscreds.mysql.tmf.existingSecret -}} +apiVersion: v1 +kind: Secret +metadata: + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "openslice.fullname" . }} + org.etsi.osl.service: mysql + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + {{- include "openslice.labels" . | nindent 4 }} + name: {{ include "openslice.fullname" . }}-mysql-tmf-secrets +data: + username: {{ .Values.oscreds.mysql.tmf.username | default "tmfuser" | b64enc }} + password: {{ .Values.oscreds.mysql.tmf.password | default "12345" | b64enc }} + database: {{ .Values.oscreds.mysql.tmf.database | default "ostmfdb" | b64enc }} +{{- end -}} diff --git a/kubernetes/helm/openslice/templates/mysql.yaml b/kubernetes/helm/openslice/templates/mysql.yaml index e0cc23d..aebd6fb 100644 --- a/kubernetes/helm/openslice/templates/mysql.yaml +++ b/kubernetes/helm/openslice/templates/mysql.yaml @@ -58,6 +58,9 @@ spec: - mountPath: "/var/run/secrets/portal" readOnly: true name: mysql-portal-secrets + - mountPath: "/var/run/secrets/tmf" + readOnly: true + name: mysql-tmf-secrets - mountPath: "/var/run/secrets/keycloak" readOnly: true name: mysql-keycloak-secrets @@ -92,6 +95,9 @@ spec: - name: mysql-portal-secrets secret: secretName: {{ include "openslice.secrets.portal.mysql" . }} + - name: mysql-tmf-secrets + secret: + secretName: {{ include "openslice.secrets.tmf.mysql" . }} - name: mysql-keycloak-secrets secret: secretName: {{ include "openslice.secrets.keycloak.mysql" . }} diff --git a/kubernetes/helm/openslice/templates/oasapi.yaml b/kubernetes/helm/openslice/templates/oasapi.yaml index 0efc1ab..427e2ff 100644 --- a/kubernetes/helm/openslice/templates/oasapi.yaml +++ b/kubernetes/helm/openslice/templates/oasapi.yaml @@ -28,7 +28,7 @@ spec: - name: init-keycloak image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-keycloak; do echo waiting for keycloak; sleep 2; done"] - - name: init-mysql-portal + - name: init-mysql image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-mysql; do echo waiting for mysql; sleep 2; done"] hostNetwork: {{ .Values.hostNetwork }} @@ -42,7 +42,7 @@ spec: { "origins":"{{ .Values.rooturl }}", "spring.config.import": "configtree:/etc/config/", - "spring.datasource.url": "jdbc:mysql://{{ include "openslice.fullname" . }}-mysql/{{ .Values.oscreds.mysql.portal.database }}", + "spring.datasource.url": "jdbc:mysql://{{ include "openslice.fullname" . }}-mysql/{{ .Values.oscreds.mysql.tmf.database }}", "spring-addons.issuers[0].uri": "{{ .Values.rooturl }}/auth/realms/openslice", "spring-addons.issuers[0].username-json-path":"$.preferred_username", "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", @@ -65,11 +65,11 @@ spec: port: 13101 volumeMounts: - mountPath: "/etc/config/spring.datasource.username" - name: mysql-portal-secrets + name: mysql-tmf-secrets subPath: username readOnly: true - mountPath: "/etc/config/spring.datasource.password" - name: mysql-portal-secrets + name: mysql-tmf-secrets subPath: password readOnly: true - mountPath: "/etc/config/spring.activemq.user" @@ -85,9 +85,9 @@ spec: - name: artemis-secrets secret: secretName: {{ include "openslice.secrets.activemq" . }} - - name: mysql-portal-secrets + - name: mysql-tmf-secrets secret: - secretName: {{ include "openslice.secrets.portal.mysql" . }} + secretName: {{ include "openslice.secrets.tmf.mysql" . }} --- apiVersion: v1 kind: Service diff --git a/kubernetes/helm/openslice/templates/osportalapi.yaml b/kubernetes/helm/openslice/templates/osportalapi.yaml index 25d2b41..5612e67 100644 --- a/kubernetes/helm/openslice/templates/osportalapi.yaml +++ b/kubernetes/helm/openslice/templates/osportalapi.yaml @@ -30,7 +30,7 @@ spec: - name: init-keycloak image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-keycloak; do echo waiting for keycloak; sleep 2; done"] - - name: init-mysql-portal + - name: init-mysql image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-mysql; do echo waiting for mysql; sleep 2; done"] containers: diff --git a/kubernetes/helm/openslice/templates/osscapi.yaml b/kubernetes/helm/openslice/templates/osscapi.yaml index 924cdaf..ab1b72d 100644 --- a/kubernetes/helm/openslice/templates/osscapi.yaml +++ b/kubernetes/helm/openslice/templates/osscapi.yaml @@ -29,7 +29,7 @@ spec: - name: init-keycloak image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-keycloak; do echo waiting for keycloak; sleep 2; done"] - - name: init-mysql-portal + - name: init-mysql image: busybox:1.28 command: ['sh', '-c', "until nslookup {{ include "openslice.fullname" . }}-mysql; do echo waiting for mysql; sleep 2; done"] containers: @@ -42,7 +42,7 @@ spec: { "origins":"{{ .Values.rooturl }}", "spring.config.import": "configtree:/etc/config/", - "spring.datasource.url": "jdbc:mysql://{{ include "openslice.fullname" . }}-mysql/{{ .Values.oscreds.mysql.portal.database }}", + "spring.datasource.url": "jdbc:mysql://{{ include "openslice.fullname" . }}-mysql/{{ .Values.oscreds.mysql.tmf.database }}", "spring-addons.issuers[0].uri":"{{ .Values.rooturl }}/auth/realms/openslice", "spring-addons.issuers[0].username-json-path":"$.preferred_username", "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", @@ -65,11 +65,11 @@ spec: - mountPath: /root name: osscapi-claim0 - mountPath: "/etc/config/spring.datasource.username" - name: mysql-portal-secrets + name: mysql-tmf-secrets subPath: username readOnly: true - mountPath: "/etc/config/spring.datasource.password" - name: mysql-portal-secrets + name: mysql-tmf-secrets subPath: password readOnly: true - mountPath: "/etc/config/spring.activemq.user" @@ -92,9 +92,9 @@ spec: - name: artemis-secrets secret: secretName: {{ include "openslice.secrets.activemq" . }} - - name: mysql-portal-secrets + - name: mysql-tmf-secrets secret: - secretName: {{ include "openslice.secrets.portal.mysql" . }} + secretName: {{ include "openslice.secrets.tmf.mysql" . }} --- apiVersion: v1 kind: Service diff --git a/kubernetes/helm/openslice/values.yaml b/kubernetes/helm/openslice/values.yaml index 353f10f..68c48ab 100644 --- a/kubernetes/helm/openslice/values.yaml +++ b/kubernetes/helm/openslice/values.yaml @@ -136,6 +136,18 @@ oscreds: username: keycloak password: password adminpassword: Pa55w0rd + tmf: + # The name of an existing secret to use for the tmf portal user. + # + # The secret requires the following keys: + # - `username` the database user + # - `password` the database user's password + # - `database` the database to use for the tmf apis + existingSecret: "" + + database: ostmfdb + username: tmfuser + password: "12345" portal: # The name of an existing secret to use for the mysql portal user. # -- GitLab