diff --git a/src/bundle-manifest.yaml b/src/bundle-manifest.yaml index a37c9ed1..c0f3c6d7 100644 --- a/src/bundle-manifest.yaml +++ b/src/bundle-manifest.yaml @@ -330,6 +330,17 @@ modules: - harness_terraform - harness_terraform_vm + unified-data-platform: + description: "Unified Data Platform (UDP) Services" + bundle_type: combined + bucket_path: "unified-data-platform" + images: + - config-service-signed + - schema-service-signed + - onboarding-service-signed + - query-service-signed + - dashboard-ui-signed + data-platform: description: "Data Platform" bundle_type: combined diff --git a/src/docker-repo-map.yaml b/src/docker-repo-map.yaml index 095f3ee4..9f4f799b 100644 --- a/src/docker-repo-map.yaml +++ b/src/docker-repo-map.yaml @@ -324,3 +324,23 @@ schema-registry: image: registry: docker.io repository: harnesssecure/schema-registry-backup-signed +config-service: + image: + registry: docker.io + repository: harnesssecure/config-service-signed +schema-service: + image: + registry: docker.io + repository: harnesssecure/schema-service-signed +onboarding-service: + image: + registry: docker.io + repository: harnesssecure/onboarding-service-signed +query-service: + image: + registry: docker.io + repository: harnesssecure/query-service-signed +dashboard-ui: + image: + registry: docker.io + repository: harnesssecure/dashboard-ui-signed diff --git a/src/harness/Chart.yaml b/src/harness/Chart.yaml index a1fc82cb..a71c2262 100644 --- a/src/harness/Chart.yaml +++ b/src/harness/Chart.yaml @@ -55,6 +55,10 @@ dependencies: name: data-platform repository: https://harness.github.io/helm-charts version: 0.43.0 +- condition: global.unifiedDataPlatform.enabled + name: unified-data-platform + repository: https://harness.github.io/helm-charts + version: 0.42.0 description: Helm Chart for deploying Harness. kubeVersion: '>=1.27.0-0' name: harness diff --git a/src/harness/override-demo.yaml b/src/harness/override-demo.yaml index 1a61f138..e1e632c5 100644 --- a/src/harness/override-demo.yaml +++ b/src/harness/override-demo.yaml @@ -491,4 +491,44 @@ data-platform: memory: "2Gi" limits: cpu: "1" - memory: "2Gi" \ No newline at end of file + memory: "2Gi" +unified-data-platform: + config-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 250m + memory: 1Gi + onboarding-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 250m + memory: 1Gi + query-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 250m + memory: 1Gi + dashboard-ui: + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 50m + memory: 64Mi diff --git a/src/harness/override-large.yaml b/src/harness/override-large.yaml index 4fe4d3a8..96094c86 100644 --- a/src/harness/override-large.yaml +++ b/src/harness/override-large.yaml @@ -512,4 +512,44 @@ data-platform: memory: "4Gi" limits: cpu: 2 - memory: "4Gi" \ No newline at end of file + memory: "4Gi" +unified-data-platform: + config-service: + enabled: true + replicaCount: 2 + resources: + limits: + cpu: 1 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + onboarding-service: + enabled: true + replicaCount: 2 + resources: + limits: + cpu: 1 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + query-service: + enabled: true + replicaCount: 2 + resources: + limits: + cpu: 1 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + dashboard-ui: + replicaCount: 2 + resources: + limits: + cpu: 1 + memory: 512Mi + requests: + cpu: 200m + memory: 256Mi diff --git a/src/harness/override-medium.yaml b/src/harness/override-medium.yaml index 7e668dad..550a2139 100644 --- a/src/harness/override-medium.yaml +++ b/src/harness/override-medium.yaml @@ -506,4 +506,45 @@ data-platform: memory: "4Gi" limits: cpu: 2 - memory: "4Gi" \ No newline at end of file + memory: "4Gi" + +unified-data-platform: + config-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + onboarding-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + query-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + dashboard-ui: + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 100m + memory: 128Mi diff --git a/src/harness/override-prod.yaml b/src/harness/override-prod.yaml index f4f00676..15abfc9d 100644 --- a/src/harness/override-prod.yaml +++ b/src/harness/override-prod.yaml @@ -785,3 +785,67 @@ iacm: requests: cpu: 500m memory: 500Mi + +unified-data-platform: + config-service: + enabled: true + autoscaling: + enabled: true + minReplicas: 2 + maxReplicas: 5 + targetCPU: 80 + targetMemory: 80 + replicaCount: 2 + resources: + limits: + cpu: 2 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + onboarding-service: + enabled: true + autoscaling: + enabled: true + minReplicas: 2 + maxReplicas: 5 + targetCPU: 80 + targetMemory: 80 + replicaCount: 2 + resources: + limits: + cpu: 2 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + query-service: + enabled: true + autoscaling: + enabled: true + minReplicas: 2 + maxReplicas: 5 + targetCPU: 80 + targetMemory: 80 + replicaCount: 2 + resources: + limits: + cpu: 2 + memory: 2Gi + requests: + cpu: 1 + memory: 2Gi + dashboard-ui: + hpa: + enabled: true + minReplicas: 2 + maxReplicas: 5 + targetCPUUtilizationPercentage: 80 + replicaCount: 2 + resources: + limits: + cpu: 1 + memory: 512Mi + requests: + cpu: 200m + memory: 256Mi diff --git a/src/harness/override-small.yaml b/src/harness/override-small.yaml index e1ce7a82..be8694c2 100644 --- a/src/harness/override-small.yaml +++ b/src/harness/override-small.yaml @@ -506,4 +506,45 @@ data-platform: memory: "2Gi" limits: cpu: "1" - memory: "2Gi" \ No newline at end of file + memory: "2Gi" + +unified-data-platform: + config-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + onboarding-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + query-service: + enabled: true + replicaCount: 1 + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 500m + memory: 1Gi + dashboard-ui: + replicaCount: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 50m + memory: 64Mi diff --git a/src/harness/values.yaml b/src/harness/values.yaml index 48938048..5782b6b0 100644 --- a/src/harness/values.yaml +++ b/src/harness/values.yaml @@ -55,6 +55,9 @@ global: # -- Enable to install kafka kafka: enabled: false + # -- Enable to install Harness Unified Data Platform (UDP) + unifiedDataPlatform: + enabled: true # -- provide overrides to use in-cluster database or configure to use external databases database: clickhouse: diff --git a/src/modules/unified-data-platform/Chart.yaml b/src/modules/unified-data-platform/Chart.yaml new file mode 100644 index 00000000..4ab7cd12 --- /dev/null +++ b/src/modules/unified-data-platform/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: 0.1.0 +dependencies: +- condition: global.unifiedDataPlatform.enabled + name: config-service + repository: oci://us-west1-docker.pkg.dev/gcr-prod/harness-helm-artifacts + version: 0.1.133 +- condition: global.unifiedDataPlatform.enabled + name: schema-service + repository: oci://us-west1-docker.pkg.dev/gcr-prod/harness-helm-artifacts + version: 0.13.9 +- condition: global.unifiedDataPlatform.enabled + name: onboarding-service + repository: oci://us-west1-docker.pkg.dev/gcr-prod/harness-helm-artifacts + version: 0.8.179 +- condition: global.unifiedDataPlatform.enabled + name: query-service + repository: oci://us-west1-docker.pkg.dev/gcr-prod/harness-helm-artifacts + version: 0.53.7 +- condition: global.unifiedDataPlatform.enabled + name: dashboard-ui + repository: oci://us-west1-docker.pkg.dev/gcr-prod/harness-helm-artifacts + version: 1.17.6 +description: A Helm chart for Harness Unified Data Platform (UDP) services +name: unified-data-platform +type: application +version: 0.42.0 diff --git a/src/modules/unified-data-platform/templates/udp-shared-secret.yaml b/src/modules/unified-data-platform/templates/udp-shared-secret.yaml new file mode 100644 index 00000000..39f9c1fc --- /dev/null +++ b/src/modules/unified-data-platform/templates/udp-shared-secret.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Secret +metadata: + name: udp-shared-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: udp-shared-secret + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/part-of: unified-data-platform + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} +type: Opaque +{{ printf "%s:" "data" }} + AUTHZ_SERVICE_SECRET: {{ .Values.unifiedDataPlatform.authzServiceSecretValueDefault | b64enc | quote }} + UDP_INTERNAL_SECRET: {{ .Values.unifiedDataPlatform.udpInternalSecretValueDefault | b64enc | quote }} diff --git a/src/modules/unified-data-platform/values.yaml b/src/modules/unified-data-platform/values.yaml new file mode 100644 index 00000000..d611419c --- /dev/null +++ b/src/modules/unified-data-platform/values.yaml @@ -0,0 +1,66 @@ +unifiedDataPlatform: + authzServiceSecretValueDefault: "IC04LYMBf1lDP5oeY4hupxd4HJhLmN6azUku3xEbeE3SUx5G3ZYzhbiwVtK4i7AmqyU9OZkwB4v8E9qM" + udpInternalSecretValueDefault: "UdpInternalHmacSharedBetweenQuerySchemaConfigOnboardingUdpServicesAuthKey2026062" + +config-service: + configService: + kafka: + enabled: false + tlsUserSecret: "" + tlsTruststoreSecret: "" + secrets: + udpInternalSecret: + secretName: udp-shared-secret + key: UDP_INTERNAL_SECRET + authzServiceSecret: + secretName: udp-shared-secret + key: AUTHZ_SERVICE_SECRET + optional: true + +schema-service: + schemaService: + kafka: + enabled: false + tlsUserSecret: "" + tlsTruststoreSecret: "" + secrets: + udpInternalSecret: + secretName: udp-shared-secret + key: UDP_INTERNAL_SECRET + authzServiceSecret: + secretName: udp-shared-secret + key: AUTHZ_SERVICE_SECRET + optional: true + +onboarding-service: + onboardingService: + kafka: + enabled: false + tlsUserSecret: "" + tlsTruststoreSecret: "" + secrets: + udpInternalSecret: + secretName: udp-shared-secret + key: UDP_INTERNAL_SECRET + +query-service: + queryService: + serviceAccount: + name: "default" + connectionSecrets: [] + appConfig: + queryService: + kafka: + enabled: false + tlsUserSecret: "" + tlsTruststoreSecret: "" + data: + connections: [] + secrets: + udpInternalSecret: + secretName: udp-shared-secret + key: UDP_INTERNAL_SECRET + authzServiceSecret: + secretName: udp-shared-secret + key: AUTHZ_SERVICE_SECRET + optional: true