From 5c2facf7be3a1b548497e3529d33da702c04b898 Mon Sep 17 00:00:00 2001 From: Laurent Caouissin Date: Thu, 5 Dec 2024 10:18:12 +0100 Subject: [PATCH] bowie: bump to new chart (0.2.8) --- charts/bowie/Chart.yaml | 103 +++++---- charts/bowie/README.md | 15 ++ charts/bowie/values.yaml | 443 +++++++++++++++++++++++++-------------- 3 files changed, 354 insertions(+), 207 deletions(-) create mode 100644 charts/bowie/README.md diff --git a/charts/bowie/Chart.yaml b/charts/bowie/Chart.yaml index 9deb0db..b9043c3 100644 --- a/charts/bowie/Chart.yaml +++ b/charts/bowie/Chart.yaml @@ -1,60 +1,55 @@ apiVersion: v2 name: bowie -description: Bowie helm-chart +description: A Helm chart for Bowie -dependencies: - - name: pogues - condition: pogues.enabled - version: 0.3.0 - repository: "https://inseefr.github.io/Helm-Charts" - - name: eno-ws - condition: eno-ws.enabled - version: 0.2.1 - repository: "https://inseefr.github.io/Helm-Charts" - - name: ddi-access-services - condition: ddi-access-services.enabled - version: 0.1.1 - repository: "https://inseefr.github.io/Helm-Charts" - - name: queen - condition: queen.enabled - version: 0.4.0 - repository: "https://inseefr.github.io/Helm-Charts" - - name: queen - alias: queen-v2 - condition: queen.enabled - version: 0.4.0 - repository: "https://inseefr.github.io/Helm-Charts" - - name: stromae-v2 - condition: stromae-v2.enabled - version: 0.6.0 - repository: "https://inseefr.github.io/Helm-Charts" - - name: stromae-v2 - alias: stromae-v3 - condition: stromae-v3.enabled - version: 0.6.0 - repository: "https://inseefr.github.io/Helm-Charts" - - name: drama-queen - condition: queen.enabled - version: 0.1.3 - repository: "https://ddecrulle.github.io/helm-charts" - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. type: application -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.7 +version: 0.2.8 + +sources: + - "https://github.com/InseeFr/Pogues" + - "https://github.com/InseeFr/Pogues-Back-Office" + - "https://github.com/InseeFr/Eno" + - "https://github.com/InseeFr/Eno-WS" + - "https://github.com/InseeFr/Public-Enemy" + - "https://github.com/InseeFr/Public-Enemy-Back-Office" + - "https://github.com/InseeFr/Drama-Queen" + - "https://github.com/InseeFr/Stromae/tree/v1-orbeon-2022" + - "https://github.com/InseeFr/Stromae-db" + - "https://github.com/InseeFr/Stromae/tree/v2-master" + - "https://github.com/InseeFrLab/stromae-dsfr" + - "https://github.com/InseeFr/Queen-Back-Office" -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "1.0.1" +appVersion: "1.16.0" + +dependencies: + - name: ui-api-db + alias: pogues + repository: https://inseefr.github.io/Helm-Charts + version: 0.1.8 + - name: ui-api-db + alias: public-enemy + repository: https://inseefr.github.io/Helm-Charts + version: 0.1.8 + - name: ui-api-db + alias: queen + version: 0.1.8 + repository: https://inseefr.github.io/Helm-Charts + - name: ui-api-db + alias: stromae-v2 + version: 0.1.8 + repository: https://inseefr.github.io/Helm-Charts + - name: ui-api-db + alias: stromae-v3 + version: 0.1.8 + repository: https://inseefr.github.io/Helm-Charts + - name: ui-api-db + alias: api-questionnaires + version: 0.1.8 + repository: https://inseefr.github.io/Helm-Charts + - name: eno-ws + repository: https://inseefr.github.io/Helm-Charts + version: 0.2.7 + - name: orbeon-existdb + repository: https://inseefr.github.io/Helm-Charts + version: 0.1.15 diff --git a/charts/bowie/README.md b/charts/bowie/README.md new file mode 100644 index 0000000..0e64c2f --- /dev/null +++ b/charts/bowie/README.md @@ -0,0 +1,15 @@ +# Bowie Helm-Chart + +Bowie Chart is a "meta-chart". +You can use it if you just want all services provided by bowie (All tools for design questionnaires). + +Bowie-Chart depends on the following Chart: + +- [ui-api-db](../ui-api-db/): Generic Chart for UI (React app), API (SpringBoot app) and DB (PostgreSQL from the chart proposed by Bitami) +- [eno-ws](../eno-ws/): Chart which describes generation module +- [orbeon-existdb](../orbeon-existdb/): Chart which provides form visualisation based on XML. + +## How to use it ? + +There are many environment values to write to run all tools for design questionnaire (12 modules + 3 PostgreSQL Databases). +This Chart helps you to use it. diff --git a/charts/bowie/values.yaml b/charts/bowie/values.yaml index 4727070..c1f583c 100644 --- a/charts/bowie/values.yaml +++ b/charts/bowie/values.yaml @@ -1,242 +1,379 @@ +## All minimal values are defined in global +global: + scheme: http + maintenance: maintenance-conception.example.org + pogues: + ui: conception-questionnaire.example.org + api: api-conception-questionnaire.example.org + enoWS: + enojava: api-generation-questionnaires.example.org + enoxml: api-eno.example.org + publicEnemy: + ui: personnalisation-conception-questionnaires.example.org + api: api-personnalisation-conception-questionnaires.example.org + apiQuestionnaires: api-visualisation-questionnaires.example.org + queen: + ui: visualisation-questionnaires-enqueteurs.example.org + stromaeV1: + ui: visualisation-questionnaires-web-v1.example.org + api: api-visualisation-questionnaires-web-v1.example.org + stromaeV2: + ui: visualisation-questionnaires-web-v2.example.org + stromaeV3: + ui: visualisation-questionnaires-web-v3.example.org + metadata: + ddias: ddias.example.org + magma: magma.example.org + auth: + server: "" + realm: "" + certificat: + manager: "" + pogues: ui: - image: - repository: inseefr/pogues - pullPolicy: IfNotPresent - tag: 1.4.1 - + enabled: false ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" hosts: - - host: pogues-ui.domain.com + - host: "{{ .Values.global.pogues.ui }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - pogues-ui.domain.com - + - "{{ .Values.global.pogues.ui }}" env: - API_URL: "https://pogues-api.domain.com/api" - + API_URL: "{{ .Values.global.scheme }}://{{ .Values.global.pogues.api }}/api" + PUBLIC_ENEMY_URL: "{{ .Values.global.publicEnemy.ui }}" + OIDC_AUTHORITY: "{{ .Values.global.auth.server }}/realms/{{ .Values.global.auth.realm }}" + OIDC_CLIENT_ID: "" api: - image: - repository: inseefr/pogues-back-office - pullPolicy: IfNotPresent - tag: 4.0.5 - + enabled: false ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/proxy-read-timeout: "180" hosts: - - host: pogues-api.domain.com + - host: "{{ .Values.global.pogues.api }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - pogues-api.domain.com - - environment: - ssl: false - log: - configuration: classpath:log4j2.xml - api: - host: pogues-api.domain.com - name: "" - scheme: https - persistence: - database: - host: pogues-db - port: 5432 - driver: org.postgresql.Driver - table: Pogues - authentification: NONE - role: - admin: Administrateur_Pogues - user: Utilisateurs_Pogues - remote: - metadata: - url: https://ddi-access-services.domain.com/api - stromae: - host: "" - vis: - path: "" - orbeon: - host: "" - - queen: - host: https://queen-ui.domain.com - vis: - path: queen/visualize?questionnaire= - stromaev2: - vis: - url: https://stromae-v2.domain.com/visualize?questionnaire= - eno: - host: eno-example.local - scheme: https + - "{{ .Values.global.pogues.api }}" + env: + APPLICATION_HOST: "{{ .Values.global.pogues.api }}" + APPLICATION_SCHEME: "{{ .Values.global.scheme }}" + APPLICATION_STAMP_RESTRICTED: "stamp" + + APPLICATION_CORSORIGIN: "*" + + # http request directy with service (without using ingress), because two apps are in the same namespace + APPLICATION_STROMAE_HOST: "http://admin:@{{ .Release.Name }}-orbeon-existdb-api" + APPLICATION_STROMAE_VIS_PATH: exist/apps/orbeon/visualize + APPLICATION_STROMAE_ORBEON_HOST: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV1.ui }}" + APPLICATION_QUEEN_VIS_HOST: "{{ .Values.global.scheme }}://{{ .Values.global.queen.ui }}" + APPLICATION_QUEEN_VIS_PATH: /queen/visualize + APPLICATION_QUEEN_VIS_QUERYPARAMS_QUESTIONNAIRE: questionnaire + APPLICATION_QUEEN_VIS_QUERYPARAMS_NOMENCLATURES: nomenclature + + APPLICATION_STROMAEV2_VIS_HOST: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV2.ui }}" + APPLICATION_STROMAEV2_VIS_PATH: /visualize + APPLICATION_STROMAEV2_VIS_QUERYPARAMS_QUESTIONNAIRE: questionnaire + APPLICATION_STROMAEV2_VIS_QUERYPARAMS_NOMENCLATURES: nomenclature + + APPLICATION_STROMAEV3_VIS_HOST: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV3.ui }}" + APPLICATION_STROMAEV3_VIS_PATH: /visualize + APPLICATION_STROMAEV3_VIS_QUERYPARAMS_QUESTIONNAIRE: source + APPLICATION_STROMAEV3_VIS_QUERYPARAMS_NOMENCLATURES: nomenclature + + # http request directy with service (without using ingress), because two apps are in the same namespace + APPLICATION_ENO_HOST: "http://{{ .Release.Name }}-eno-ws-java" + APPLICATION_API_NOMENCLATURES: "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}" + + APPLICATION_METADATA_DDIAS: "{{ .Values.global.scheme }}://{{ .Values.global.metadata.ddias }}" + APPLICATION_METADATA_MAGMA: "{{ .Values.global.scheme }}://{{ .Values.global.metadata.magma }}" + + FEATURE_OIDC_ENABLED: false + FEATURE_OIDC_AUTHSERVERURL: "{{ .Values.global.auth.server }}" + FEATURE_OIDC_REALM: "{{ .Values.global.auth.realm }}" + FEATURE_OIDC_CLIENTID: "" + FEATURE_OIDC_PRINCIPALATTRIBUTE: "" + FEATURE_OIDC_ROLECLAIM: "" + FEATURE_OIDC_STAMPCLAIM: "" + FEATURE_OIDC_USERNAMECLAIM: "" postgresql: - fullnameOverride: pogues-db - auth: - username: Pogues - password: Pogues - postgresPassword: postgresPassword - database: Pogues + enabled: false eno-ws: enoxml: - image: - repository: inseefr/eno-ws - pullPolicy: IfNotPresent - tag: 1.6.1 + enabled: false + env: + FR_INSEE_ENOWS_API_SCHEME: "{{ .Values.global.scheme }}" ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" hosts: - - host: eno-xml.domain.com + - host: "{{ .Values.global.enoWS.enoxml }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - eno-xml.domain.com + - "{{ .Values.global.enoWS.enoxml }}" + enojava: - enabled: true - image: - repository: inseefr/eno-ws - pullPolicy: IfNotPresent - tag: "" + enabled: false + env: + ENO_RELEASE_NOTE_URL: "https://github.com/InseeFr/Eno/blob/v3-main/CHANGELOG.md" + # http request directy with service (without using ingress), because two apps are in the same namespace + ENO_LEGACY_WS_URL: "http://{{ .Release.Name }}-eno-ws-xml" + ENO_CORS_ORIGINS: "http://{{ .Values.global.pogues.api }}" + ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + hosts: + - host: "{{ .Values.global.enoWS.enojava }}" + paths: + - path: / + pathType: ImplementationSpecific + tls: + - hosts: + - "{{ .Values.global.enoWS.enojava }}" + +public-enemy: + ui: + enabled: false + ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + hosts: + - host: "{{ .Values.global.publicEnemy.ui }}" + paths: + - path: / + pathType: ImplementationSpecific + tls: + - hosts: + - "{{ .Values.global.publicEnemy.ui }}" + env: - ENO_LEGACY_WS_URL: https://eno-xml.domain.com + VITE_API_URL: "{{ .Values.global.scheme }}://{{ .Values.global.publicEnemy.api }}/api" + VITE_ORCHESTRATOR_URL: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV3.ui }}" + VITE_POGUES_URL: "{{ .Values.global.scheme }}://{{ .Values.global.pogues.ui }}" + VITE_DOCUMENTATION_URL: "{{ .Values.global.scheme }}://inseefr.github.io/Bowie/public-enemy/guide/" + VITE_LOCALE: fr + VITE_AUTH_TYPE: none + VITE_AUTH_URL: "{{ .Values.global.auth.server }}" + VITE_REALM: "{{ .Values.global.auth.realm }}" + VITE_CLIENT_ID: "" + api: + enabled: false ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/proxy-read-timeout: "180" hosts: - - host: eno-java.domain.com + - host: "{{ .Values.global.publicEnemy.api }}" paths: - path: / pathType: ImplementationSpecific + tls: + - hosts: + - "{{ .Values.global.publicEnemy.api }}" + env: + APPLICATION_CORSORIGINS: "{{ .Values.global.scheme }}://{{ .Values.global.publicEnemy.ui }},http://localhost*" + # http request directy with service (without using ingress), because two apps are in the same namespace + APPLICATION_POGUES_URL: "http://{{ .Release.Name }}-pogues-api" + # http request directy with service (without using ingress), because two apps are in the same namespace + APPLICATION_ENO_URL: "http://{{ .Release.Name }}-eno-ws-java" + # http request directy with service (without using ingress), because two apps are in the same namespace + APPLICATION_QUEEN_URL: "http://{{ .Release.Name }}-api-questionnaires-api" -ddi-access-services: - image: - repository: inseefr/ddi-access-services - pullPolicy: IfNotPresent - tag: 1.0.6 - - ingress: - hosts: - - host: ddi-access-services.domain.com - paths: - - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - ddi-access-services.domain.com - - properties: |- - # SSL - fr.insee.rmes.force.ssl=false - # Log4J configuration File - fr.insee.rmespogbo.log.configuration=log4j2.xml - # Swagger host - fr.insee.rmes.api.host = ddi-access-services.domain.com - fr.insee.rmes.api.name= /api - fr.insee.rmes.api.scheme= https - # Metadata service - - fr.insee.rmes.search.DDIItemRepository.impl = DDIItemRepositoryDBImpl - fr.insee.rmes.search.db.host = pogues-db - fr.insee.rmes.search.db.port = 5432 - fr.insee.rmes.search.db.schema = Pogues - fr.insee.rmes.search.db.user = Pogues - fr.insee.rmes.search.db.password = Pogues - fr.insee.rmes.search.db.driver = org.postgresql.Driver - fr.insee.rmes.search.db.table = ddi_item + APPLICATION_QUEEN_PUBLICURL: "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}" + APPLICATION_ORCHESTRATOR_CAWI_URL: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV3.ui }}" + APPLICATION_ORCHESTRATOR_CAPICATI_URL: "{{ .Values.global.scheme }}://{{ .Values.global.queen.ui }}" + + APPLICATION_ROLES_ADMIN: "admin" + APPLICATION_ROLES_DESIGNER: "designer" + + FEATURE_SWAGGER_ENABLED: true + FEATURE_OIDC_ENABLED: false + FEATURE_OIDC_AUTHSERVERHOST: "{{ .Values.global.auth.server }}" + FEATURE_OIDC_REALM: "{{ .Values.global.auth.realm }}" + FEATURE_OIDC_CLIENTID: "" + FEATURE_OIDC_PRINCIPALATTRIBUTE: "" + FEATURE_OIDC_ROLECLAIM: "" + postgresql: + enabled: false queen: ui: - enabled: true - nameOverride: queen-ui - replicaCount: 1 - image: - repository: inseefr/queen - tag: 0.10.11 + enabled: false ingress: - enabled: true + enabled: false annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" kubernetes.io/ingress.class: nginx hosts: - - host: queen-ui.domain.com + - host: "{{ .Values.global.queen.ui }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - queen-ui.domain.com + - "{{ .Values.global.queen.ui }}" + env: - QUEEN_URL: https://queen-ui.domain.com - authenticationType: NONE + QUEEN_URL: "{{ .Values.global.scheme }}://{{ .Values.global.queen.ui }}" + VITE_QUEEN_API_URL: "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}" + api: + enabled: false + postgresql: + enabled: false -queen-v2: +orbeon-existdb: + enabled: false + api: + enabled: false + ingress: + enabled: false + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + kubernetes.io/ingress.class: nginx + hosts: + - host: "{{ .Values.global.stromaeV1.api }}" + paths: + - path: / + pathType: ImplementationSpecific + tls: + - hosts: + - "{{ .Values.global.stromaeV1.api }}" ui: - enabled: true - nameOverride: queen-v2-ui - replicaCount: 1 - image: - repository: inseefr/queen - tag: 1.0.1 + enabled: false ingress: - enabled: true + enabled: false annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" kubernetes.io/ingress.class: nginx hosts: - - host: queen-v2-ui.domain.com + - host: "{{ .Values.global.stromaeV1.ui }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - queen-ui.domain.com + - "{{ .Values.global.stromaeV1.ui }}" + env: - QUEEN_URL: https://queen-v2-ui.domain.com - authenticationType: NONE + STROMAE_DB_URL: "http://admin:@{{ .Release.Name }}-orbeon-existdb-api" + STROMAE_HOST: "{{ .Values.global.scheme }}://{{ .Values.global.stromaeV1.ui }}/rmesstromae" + URL_LOGOUT: "{{ .Values.global.scheme }}://{{ .Values.global.pogues.ui }}" stromae-v2: ui: - enabled: true - nameOverride: stromae-v2-ui - replicaCount: 1 - image: - repository: inseefr/stromae - tag: 2.2.14 + enabled: false ingress: - enabled: true + enabled: false annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" kubernetes.io/ingress.class: nginx hosts: - - host: stromae-v2.domain.com + - host: "{{ .Values.global.stromaeV2.ui }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - stromae-v2.domain.com + - "{{ .Values.global.stromaeV2.ui }}" + env: - AUTHENTICATION_TYPE: NONE + REACT_APP_AUTH_TYPE: none + REACT_APP_VIZUALIZE_ENABLED: true + REACT_APP_SURVEY_API_BASE_URL: "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}" + api: + enabled: false + postgresql: + enabled: false stromae-v3: ui: - enabled: true - nameOverride: stromae-v3-ui - replicaCount: 1 - image: - repository: inseefr/stromae - tag: 2.2.14 + enabled: false ingress: - enabled: true + enabled: false annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" kubernetes.io/ingress.class: nginx hosts: - - host: stromae-v3.domain.com + - host: "{{ .Values.global.stromaeV3.ui }}" paths: - path: / pathType: ImplementationSpecific tls: - hosts: - - stromae-v3.domain.com + - "{{ .Values.global.stromaeV3.ui }}" + env: - AUTHENTICATION_TYPE: NONE + VITE_OIDC_ENABLED: false + VITE_API_URL: "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}" + VITE_VISUALIZE_DISABLED: false + api: + enabled: false + postgresql: + enabled: false + +api-questionnaires: + ui: + enabled: false + api: + enabled: false + ingress: + enabled: false + hosts: + - host: "{{ .Values.global.apiQuestionnaires }}" + paths: + - path: / + pathType: ImplementationSpecific + tls: + - hosts: + - "{{ .Values.global.apiQuestionnaires }}" + + annotations: + cert-manager.io/cluster-issuer: "{{ .Values.global.certificat.manager }}" + nginx.ingress.kubernetes.io/proxy-body-size: "20m" + + env: + SPRING_PROFILES_ACTIVE: dev + LOGGING_FILE_NAME: /opt/app/queen.log + SERVER_FORWARDHEADERSSTRATEGY: framework + APPLICATION_CORSORIGINS: + "{{ .Values.global.scheme }}://{{ .Values.global.apiQuestionnaires }}, + {{ .Values.global.scheme }}://{{ .Values.global.stromaeV2.ui }}, + {{ .Values.global.scheme }}://{{ .Values.global.stromaeV3.ui }}, + {{ .Values.global.scheme }}://{{ .Values.global.queen.ui }}" + APPLICATION_TEMPFOLDER: /opt/app/temp-files + SPRING_DATASOURCE_DRIVERCLASSNAME: org.postgresql.Driver + SPRING_LIQUIBASE_ENABLED: true + FEATURE_OIDC_ENABLED: false + FEATURE_SWAGGER_ENABLED: true + FEATURE_PILOTAGE_ENABLE: false + FEATURE_DATASET_LOADONSTART: true + FEATURE_DATASET_DISPLAYENDPOINT: true + FEATURE_INTERVIEWERMODE_ENABLED: true + postgresql: + enabled: false + +# temp: we need recursive support for helm +# we need postgresql in deps of meta chart, but we have to disabled the lost postgresql instance +postgresql: + enabled: false