diff --git a/catalog-info.yaml b/catalog-info.yaml index ad65a96..b2af372 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -15,7 +15,7 @@ metadata: helm.cnoe.io/chart-path: "helm/schedulerservice" helm.cnoe.io/values-file: "values-local.yaml" helm.cnoe.io/available-values-files: '["values.yaml", "values-local.yaml"]' - helm.cnoe.io/dependencies: '{"mysql": {"name": "MySQL Database", "required": false, "default": true, "externalParams": [{"param": "externalDatabase.host", "label": "Database Host", "placeholder": "mysql.example.com"}, {"param": "externalDatabase.port", "label": "Database Port", "placeholder": "3306"}, {"param": "externalDatabase.database", "label": "Database Name", "placeholder": "os_scheduling_db"}, {"param": "externalDatabase.username", "label": "Username", "placeholder": "scheduler_user"}, {"param": "externalDatabase.password", "label": "Password", "placeholder": "", "secret": true}]}}' + helm.cnoe.io/dependencies: '{"scheduling-mysql": {"name": "Scheduling MySQL Database", "required": true, "default": false, "shared": true, "sharedKey": "os-scheduling-db", "externalParams": [{"param": "externalDatabase.host", "label": "Database Host", "placeholder": "scheduling-mysql"}, {"param": "externalDatabase.port", "label": "Database Port", "placeholder": "3306"}, {"param": "externalDatabase.database", "label": "Database Name", "placeholder": "os_scheduling_db"}, {"param": "externalDatabase.username", "label": "Username", "placeholder": "scheduler_user"}, {"param": "externalDatabase.password", "label": "Password", "placeholder": "", "secret": true}]}}' helm.cnoe.io/dependency-urls: '{}' tags: - java diff --git a/helm/schedulerservice/Chart.lock b/helm/schedulerservice/Chart.lock deleted file mode 100644 index 8b01dff..0000000 --- a/helm/schedulerservice/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: mysql - repository: https://helm.wso2.com - version: 1.6.9 -digest: sha256:bdbd774f845f1f0f4b7346e75b80f6c2e244cf92cf9feacf3d4807f8e50f9bce -generated: "2026-01-29T10:58:50.337803+05:30" diff --git a/helm/schedulerservice/Chart.yaml b/helm/schedulerservice/Chart.yaml index cd9a1b4..2461cf8 100644 --- a/helm/schedulerservice/Chart.yaml +++ b/helm/schedulerservice/Chart.yaml @@ -16,8 +16,5 @@ maintainers: home: https://github.com/onlinesales-ai/schedulerService sources: - https://github.com/onlinesales-ai/schedulerService -dependencies: - - name: mysql - version: 1.6.9 - repository: https://helm.wso2.com - condition: mysql.enabled +# MySQL is deployed as a shared dependency, not as a subchart +# Configure externalDatabase values to connect to the shared MySQL instance diff --git a/helm/schedulerservice/charts/mysql-1.6.9.tgz b/helm/schedulerservice/charts/mysql-1.6.9.tgz deleted file mode 100644 index d23e4bc..0000000 Binary files a/helm/schedulerservice/charts/mysql-1.6.9.tgz and /dev/null differ diff --git a/helm/schedulerservice/templates/deployment.yaml b/helm/schedulerservice/templates/deployment.yaml index a77f77d..f5907a0 100644 --- a/helm/schedulerservice/templates/deployment.yaml +++ b/helm/schedulerservice/templates/deployment.yaml @@ -54,20 +54,34 @@ spec: {{- end }} resources: {{- toYaml .Values.resources | nindent 12 }} - {{- if .Values.config.enabled }} + {{- if or .Values.config.enabled .Values.externalDatabase.host }} volumeMounts: + {{- if .Values.config.enabled }} - name: config mountPath: {{ .Values.config.mountPath }} + {{- end }} + {{- if .Values.externalDatabase.host }} + - name: db-config + mountPath: /etc/onlinesales/db + readOnly: true + {{- end }} {{- end }} {{- with .Values.env }} env: {{- toYaml . | nindent 12 }} {{- end }} - {{- if .Values.config.enabled }} + {{- if or .Values.config.enabled .Values.externalDatabase.host }} volumes: + {{- if .Values.config.enabled }} - name: config configMap: name: {{ include "schedulerservice.fullname" . }}-config + {{- end }} + {{- if .Values.externalDatabase.host }} + - name: db-config + secret: + secretName: {{ include "schedulerservice.fullname" . }}-db-config + {{- end }} {{- end }} {{- with .Values.nodeSelector }} nodeSelector: diff --git a/helm/schedulerservice/templates/secret-db.yaml b/helm/schedulerservice/templates/secret-db.yaml new file mode 100644 index 0000000..af70bb6 --- /dev/null +++ b/helm/schedulerservice/templates/secret-db.yaml @@ -0,0 +1,31 @@ +{{- if .Values.externalDatabase.host }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "schedulerservice.fullname" . }}-db-config + labels: + {{- include "schedulerservice.labels" . | nindent 4 }} +type: Opaque +stringData: + hibernate.cfg.xml: | + + + + + com.mysql.cj.jdbc.Driver + jdbc:mysql://{{ .Values.externalDatabase.host }}:{{ .Values.externalDatabase.port }}/{{ .Values.externalDatabase.database }}?useUnicode=true&characterEncoding=utf8 + {{ .Values.externalDatabase.username }} + {{ .Values.externalDatabase.password }} + 1 + org.hibernate.dialect.MySQLDialect + thread + org.hibernate.cache.NoCacheProvider + false + + 2 + true + + +{{- end }} diff --git a/helm/schedulerservice/values-local.yaml b/helm/schedulerservice/values-local.yaml index ba20fc3..74fcaf7 100644 --- a/helm/schedulerservice/values-local.yaml +++ b/helm/schedulerservice/values-local.yaml @@ -101,24 +101,12 @@ env: - name: LOG_LEVEL value: "DEBUG" -# MySQL enabled for local development -mysql: - enabled: true - image: "mysql" - imageTag: "8.0" - mysqlRootPassword: "rootpassword" - mysqlUser: "scheduler_user" - mysqlPassword: "localpassword" - mysqlDatabase: "os_scheduling_db" - fullnameOverride: "schedulerservice-mysql" - persistence: - enabled: false - resources: {} - podLabels: - backstage.io/kubernetes-id: "schedulerservice" - configurationFiles: - mysql.cnf: |- - [mysqld] - max_connections=200 - character-set-server=utf8mb4 - collation-server=utf8mb4_unicode_ci +# External Database configuration for local development +# MySQL is deployed as a shared dependency (scheduling-mysql) +# The shared MySQL service is deployed separately and shared with osSchedulesArgoSyncer +externalDatabase: + host: "scheduling-mysql" + port: "3306" + database: "os_scheduling_db" + username: "scheduler_user" + password: "localpassword" diff --git a/helm/schedulerservice/values.yaml b/helm/schedulerservice/values.yaml index feef9aa..9170eff 100644 --- a/helm/schedulerservice/values.yaml +++ b/helm/schedulerservice/values.yaml @@ -130,11 +130,9 @@ config: env: [] -# MySQL subchart disabled for production (use external DB) -mysql: - enabled: false - -# External Database configuration (used when mysql.enabled=false) +# External Database configuration +# MySQL is deployed as a shared dependency (not a subchart) +# Set externalDatabase.host to connect to the shared MySQL instance externalDatabase: host: "" port: "3306"