mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-02 19:58:59 +00:00
feat(nocode): Add datahub-upgrade job to helm chart and set version to v0.8.1 (#2643)
This commit is contained in:
parent
a483933eab
commit
ee454eb5d6
@ -84,10 +84,10 @@ prerequisites-zookeeper-0 1/1 Running 0
|
||||
deploy Datahub by running the following
|
||||
|
||||
```(shell)
|
||||
helm install datahub datahub/ --values datahub/quickstart-values.yaml
|
||||
helm install datahub datahub/
|
||||
```
|
||||
|
||||
Values in [quickstart-values.yaml](https://github.com/linkedin/datahub/tree/master/datahub-kubernetes/datahub/quickstart-values.yaml)
|
||||
Values in [values.yaml](https://github.com/linkedin/datahub/tree/master/datahub-kubernetes/datahub/values.yaml)
|
||||
have been preset to point to the dependencies deployed using the [prerequisites](https://github.com/linkedin/datahub/tree/master/datahub-kubernetes/prerequisites)
|
||||
chart with release name "prerequisites". If you deployed the helm chart using a different release name, update the quickstart-values.yaml file accordingly before installing.
|
||||
|
||||
|
||||
@ -4,10 +4,10 @@ description: A Helm chart for LinkedIn DataHub
|
||||
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.
|
||||
version: 0.1.2
|
||||
version: 0.2.0
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application.
|
||||
appVersion: latest #0.3.1
|
||||
appVersion: 0.8.1 #0.3.1
|
||||
dependencies:
|
||||
- name: datahub-gms
|
||||
version: 0.2.1
|
||||
|
||||
@ -17,44 +17,44 @@ helm install datahub datahub/
|
||||
|-----|------|---------|-------------|
|
||||
| datahub-frontend.enabled | bool | `true` | Enable Datahub Front-end |
|
||||
| datahub-frontend.image.repository | string | `"linkedin/datahub-frontend-react"` | Image repository for datahub-frontend |
|
||||
| datahub-frontend.image.tag | string | `"latest"` | Image tag for datahub-frontend |
|
||||
| datahub-frontend.image.tag | string | `"v0.8.1"` | Image tag for datahub-frontend |
|
||||
| datahub-gms.enabled | bool | `true` | Enable GMS |
|
||||
| datahub-gms.image.repository | string | `"linkedin/datahub-gms"` | Image repository for datahub-gms |
|
||||
| datahub-gms.image.tag | string | `"latest"` | Image tag for datahub-gms |
|
||||
| datahub-gms.image.tag | string | `"v0.8.1"` | Image tag for datahub-gms |
|
||||
| datahub-mae-consumer.enabled | bool | `true` | Enable MAE Consumer |
|
||||
| datahub-mae-consumer.image.repository | string | `"linkedin/datahub-mae-consumer"` | Image repository for datahub-mae-consumer |
|
||||
| datahub-mae-consumer.image.tag | string | `"latest"` | Image tag for datahub-mae-consumer |
|
||||
| datahub-mae-consumer.image.tag | string | `"v0.8.1"` | Image tag for datahub-mae-consumer |
|
||||
| datahub-mce-consumer.enabled | bool | `true` | Enable MCE Consumer |
|
||||
| datahub-mce-consumer.image.repository | string | `"linkedin/datahub-mce-consumer"` | Image repository for datahub-mce-consumer |
|
||||
| datahub-mce-consumer.image.tag | string | `"latest"` | Image tag for datahub-mce-consumer |
|
||||
| datahub-mce-consumer.image.tag | string | `"v0.8.1"` | Image tag for datahub-mce-consumer |
|
||||
| datahub-ingestion-cron.enabled | bool | `false` | Enable cronjob for periodic ingestion |
|
||||
| elasticsearchSetupJob.enabled | bool | `true` | Enable setup job for elasicsearch |
|
||||
| elasticsearchSetupJob.image.repository | string | `"linkedin/datahub-elasticsearch-setup"` | Image repository for elasticsearchSetupJob |
|
||||
| elasticsearchSetupJob.image.tag | string | `"latest"` | Image repository for elasticsearchSetupJob |
|
||||
| elasticsearchSetupJob.image.tag | string | `"v0.8.1"` | Image repository for elasticsearchSetupJob |
|
||||
| kafkaSetupJob.enabled | bool | `true` | Enable setup job for kafka |
|
||||
| kafkaSetupJob.image.repository | string | `"linkedin/datahub-kafka-setup"` | Image repository for kafkaSetupJob |
|
||||
| kafkaSetupJob.image.tag | string | `"latest"` | Image repository for kafkaSetupJob |
|
||||
| kafkaSetupJob.image.tag | string | `"v0.8.1"` | Image repository for kafkaSetupJob |
|
||||
| mysqlSetupJob.enabled | bool | `false` | Enable setup job for mysql |
|
||||
| mysqlSetupJob.image.repository | string | `""` | Image repository for mysqlSetupJob |
|
||||
| mysqlSetupJob.image.tag | string | `""` | Image repository for mysqlSetupJob |
|
||||
| global.datahub_analytics_enabled | boolean | true | Enable datahub usage analytics |
|
||||
| global.datahub.appVersion | string | `"1.0"` | App version for annotation |
|
||||
| global.datahub.gms.port | string | `"8080"` | Port of GMS service |
|
||||
| global.elasticsearch.host | string | `"elasticsearch"` | Elasticsearch host name (endpoint) |
|
||||
| global.elasticsearch.host | string | `"elasticsearch-master"` | Elasticsearch host name (endpoint) |
|
||||
| global.elasticsearch.port | string | `"9200"` | Elasticsearch port |
|
||||
| global.kafka.bootstrap.server | string | `"broker:9092"` | Kafka bootstrap servers (with port) |
|
||||
| global.kafka.zookeeper.server | string | `"zookeeper:2181"` | Kafka zookeeper servers (with port) |
|
||||
| global.kafka.schemaregistry.url | string | `"http://schema-registry:8081"` | URL to kafka schema registry |
|
||||
| global.neo4j.host | string | `"neo4j:7474"` | Neo4j host address (with port) |
|
||||
| global.neo4j.uri | string | `"bolt://neo4j"` | Neo4j URI |
|
||||
| global.kafka.bootstrap.server | string | `"prerequisites-broker:9092"` | Kafka bootstrap servers (with port) |
|
||||
| global.kafka.zookeeper.server | string | `"prerequisites-zookeeper:2181"` | Kafka zookeeper servers (with port) |
|
||||
| global.kafka.schemaregistry.url | string | `"http://prerequisites-cp-schema-registry:8081"` | URL to kafka schema registry |
|
||||
| global.neo4j.host | string | `"prerequisites-neo4j:7474"` | Neo4j host address (with port) |
|
||||
| global.neo4j.uri | string | `"bolt://prerequisites-neo4j"` | Neo4j URI |
|
||||
| global.neo4j.username | string | `"neo4j"` | Neo4j user name |
|
||||
| global.neo4j.password.secretRef | string | `"neo4j-secrets"` | Secret that contains the Neo4j password |
|
||||
| global.neo4j.password.secretKey | string | `"neo4j-password"` | Secret key that contains the Neo4j password |
|
||||
| global.sql.datasource.driver | string | `"com.mysql.jdbc.Driver"` | Driver for the SQL database |
|
||||
| global.sql.datasource.host | string | `"mysql:3306"` | SQL database host (with port) |
|
||||
| global.sql.datasource.hostForMysqlClient | string | `"mysql"` | SQL database host (without port) |
|
||||
| global.sql.datasource.url | string | `"jdbc:mysql://mysql:3306/datahub?verifyServerCertificate=false\u0026useSSL=true"` | URL to access SQL database |
|
||||
| global.sql.datasource.username | string | `"datahub"` | SQL user name |
|
||||
| global.sql.datasource.host | string | `"prerequisites-mysql:3306"` | SQL database host (with port) |
|
||||
| global.sql.datasource.hostForMysqlClient | string | `"prerequisites-mysql"` | SQL database host (without port) |
|
||||
| global.sql.datasource.url | string | `"jdbc:mysql://prerequisites-mysql:3306/datahub?verifyServerCertificate=false\u0026useSSL=true"` | URL to access SQL database |
|
||||
| global.sql.datasource.username | string | `"root"` | SQL user name |
|
||||
| global.sql.datasource.password.secretRef | string | `"mysql-secrets"` | Secret that contains the MySQL password |
|
||||
| global.sql.datasource.password.secretKey | string | `"mysql-password"` | Secret key that contains the MySQL password |
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ Current chart version is `0.2.0`
|
||||
| global.datahub.gms.port | string | `"8080"` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"linkedin/datahub-frontend-react"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| image.tag | string | `"v0.8.1"` | |
|
||||
| imagePullSecrets | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
|
||||
@ -6,7 +6,7 @@ replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: linkedin/datahub-frontend-react
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
pullPolicy: Always
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
@ -38,7 +38,7 @@ Current chart version is `0.2.0`
|
||||
| global.sql.datasource.password.secretKey | string | `"mysql-password"` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"linkedin/datahub-gms"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| image.tag | string | `"v0.8.1"` | |
|
||||
| imagePullSecrets | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
|
||||
@ -7,7 +7,7 @@ replicaCount: 1
|
||||
image:
|
||||
repository: linkedin/datahub-gms
|
||||
pullPolicy: Always
|
||||
tag: latest
|
||||
tag: v0.8.1
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
|
||||
@ -8,7 +8,7 @@ A Helm chart for datahub's metadata-ingestion framework with kerberos authentica
|
||||
|-----|------|---------|-------------|
|
||||
| image.pullPolicy | string | `"Always"` | Image pull policy |
|
||||
| image.repository | string | `"linkedin/datahub-ingestion"` | DataHub Ingestion image repository |
|
||||
| image.tag | string | `"latest"` | DataHub Ingestion image tag |
|
||||
| image.tag | string | `"v0.8.1"` | DataHub Ingestion image tag |
|
||||
| imagePullSecrets | array | `[]` (does not add image pull secrets to deployed pods) | Docker registry secret names as an array |
|
||||
| labels | string | `{}` | Metadata labels to be added to each crawling cron job |
|
||||
| crons | type | `{}` | A map of crawling parameters per different technology being crawler, the key in the object will be used as the name for the new cron job |
|
||||
|
||||
@ -28,10 +28,10 @@ spec:
|
||||
- name: {{ $jobName }}-crawler
|
||||
image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag }}"
|
||||
imagePullPolicy: {{ $.Values.image.pullPolicy }}
|
||||
{{- if .extraVolumeMounts }}
|
||||
volumeMounts:
|
||||
- name: recipe
|
||||
mountPath: /etc/recipe
|
||||
{{- if .extraVolumeMounts }}
|
||||
{{- toYaml .extraVolumeMounts | nindent 14 }}
|
||||
{{- end }}
|
||||
command: ["/bin/sh", "-c", {{ default $defaultCommand .command }} ]
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
image:
|
||||
repository: linkedin/datahub-ingestion
|
||||
tag: latest
|
||||
tag: v0.8.1
|
||||
pullPolicy: Always
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
@ -31,7 +31,7 @@ Current chart version is `0.2.0`
|
||||
| global.hostAliases[0].ip | string | `"192.168.0.104"` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"linkedin/datahub-mae-consumer"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| image.tag | string | `"v0.8.1"` | |
|
||||
| imagePullSecrets | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
|
||||
@ -54,17 +54,21 @@ spec:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 9091
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /actuator/health
|
||||
port: 9091
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /actuator/health
|
||||
port: 9091
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" .Release.Name "datahub-mae-consumer" }}
|
||||
labels:
|
||||
{{- include "datahub-mae-consumer.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.global.datahub.mae_consumer.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "datahub-mae-consumer.selectorLabels" . | nindent 4 }}
|
||||
@ -7,7 +7,7 @@ replicaCount: 1
|
||||
image:
|
||||
repository: linkedin/datahub-mae-consumer
|
||||
pullPolicy: Always
|
||||
tag: latest
|
||||
tag: v0.8.1
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
@ -165,6 +165,10 @@ global:
|
||||
secretRef: "neo4j-secrets"
|
||||
secretKey: "neo4j-password"
|
||||
|
||||
datahub:
|
||||
mae_consumer:
|
||||
port: "9091"
|
||||
|
||||
hostAliases:
|
||||
- ip: "192.168.0.104"
|
||||
hostnames:
|
||||
|
||||
@ -24,7 +24,7 @@ Current chart version is `0.2.0`
|
||||
| global.hostAliases[0].ip | string | `"192.168.0.104"` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"linkedin/datahub-mce-consumer"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| image.tag | string | `"v0.8.1"` | |
|
||||
| imagePullSecrets | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
|
||||
@ -7,7 +7,7 @@ replicaCount: 1
|
||||
image:
|
||||
repository: linkedin/datahub-mce-consumer
|
||||
pullPolicy: Always
|
||||
tag: latest
|
||||
tag: v0.8.1
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
|
||||
@ -4,13 +4,13 @@ datahub-gms:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-gms
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-frontend:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-frontend-react
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
# Set up ingress to expose react front-end
|
||||
ingress:
|
||||
enabled: false
|
||||
@ -19,31 +19,37 @@ datahub-mae-consumer:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-mae-consumer
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-mce-consumer:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-mce-consumer
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
elasticsearchSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-elasticsearch-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
kafkaSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-kafka-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
mysqlSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: acryldata/datahub-mysql-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahubUpgrade:
|
||||
enabled: true
|
||||
image:
|
||||
repository: acryldata/datahub-upgrade
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-ingestion-cron:
|
||||
enabled: false
|
||||
@ -53,12 +59,6 @@ global:
|
||||
host: "elasticsearch-master"
|
||||
port: "9200"
|
||||
indexPrefix: demo
|
||||
useSSL: "true"
|
||||
auth:
|
||||
username: test
|
||||
password:
|
||||
secretRef: test
|
||||
secretKey: test
|
||||
|
||||
kafka:
|
||||
bootstrap:
|
||||
@ -91,4 +91,6 @@ global:
|
||||
datahub:
|
||||
gms:
|
||||
port: "8080"
|
||||
mae_consumer:
|
||||
port: "9091"
|
||||
appVersion: "1.0"
|
||||
|
||||
@ -0,0 +1,109 @@
|
||||
{{- if .Values.datahubUpgrade.enabled -}}
|
||||
# Job template for running datahub cleanup
|
||||
# Creates a suspended cronJob that you can use to create an adhoc job when ready to run clean up.
|
||||
# Run the following command to do so
|
||||
# kubectl create job --from=cronjob/<<release-name>>-datahub-cleanup-job-template datahub-cleanup-job
|
||||
apiVersion: batch/v1beta1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-datahub-cleanup-job-template
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
spec:
|
||||
schedule: "* * * * *"
|
||||
suspend: true
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
{{- with .Values.global.hostAliases }}
|
||||
hostAliases:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.datahubUpgrade.serviceAccount }}
|
||||
serviceAccountName: {{ . }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- with .Values.datahubUpgrade.extraVolumes }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
restartPolicy: Never
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
fsGroup: 1000
|
||||
containers:
|
||||
- name: datahub-upgrade-job
|
||||
image: "{{ .Values.datahubUpgrade.image.repository }}:{{ .Values.datahubUpgrade.image.tag }}"
|
||||
args: [ "-u", "NoCodeDataMigrationCleanup" ]
|
||||
env:
|
||||
- name: DATAHUB_GMS_HOST
|
||||
value: {{ printf "%s-%s" .Release.Name "datahub-gms" }}
|
||||
- name: DATAHUB_GMS_PORT
|
||||
value: "{{ .Values.global.datahub.gms.port }}"
|
||||
- name: DATAHUB_MAE_CONSUMER_HOST
|
||||
value: {{ printf "%s-%s" .Release.Name "datahub-mae-consumer" }}
|
||||
- name: DATAHUB_MAE_CONSUMER_PORT
|
||||
value: "{{ .Values.global.datahub.mae_consumer.port }}"
|
||||
- name: EBEAN_DATASOURCE_USERNAME
|
||||
value: "{{ .Values.global.sql.datasource.username }}"
|
||||
- name: EBEAN_DATASOURCE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .Values.global.sql.datasource.password.secretRef }}"
|
||||
key: "{{ .Values.global.sql.datasource.password.secretKey }}"
|
||||
- name: EBEAN_DATASOURCE_HOST
|
||||
value: "{{ .Values.global.sql.datasource.host }}"
|
||||
- name: EBEAN_DATASOURCE_URL
|
||||
value: "{{ .Values.global.sql.datasource.url }}"
|
||||
- name: EBEAN_DATASOURCE_DRIVER
|
||||
value: "{{ .Values.global.sql.datasource.driver }}"
|
||||
- name: KAFKA_BOOTSTRAP_SERVER
|
||||
value: "{{ .Values.global.kafka.bootstrap.server }}"
|
||||
- name: KAFKA_SCHEMAREGISTRY_URL
|
||||
value: "{{ .Values.global.kafka.schemaregistry.url }}"
|
||||
- name: ELASTICSEARCH_HOST
|
||||
value: {{ .Values.global.elasticsearch.host | quote }}
|
||||
- name: ELASTICSEARCH_PORT
|
||||
value: {{ .Values.global.elasticsearch.port | quote }}
|
||||
{{- with .Values.global.elasticsearch.useSSL }}
|
||||
- name: ELASTICSEARCH_USE_SSL
|
||||
value: {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.global.elasticsearch.auth }}
|
||||
- name: ELASTICSEARCH_USERNAME
|
||||
value: {{ .username }}
|
||||
- name: ELASTICSEARCH_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .password.secretRef }}"
|
||||
key: "{{ .password.secretKey }}"
|
||||
{{- end }}
|
||||
- name: NEO4J_HOST
|
||||
value: "{{ .Values.global.neo4j.host }}"
|
||||
- name: NEO4J_URI
|
||||
value: "{{ .Values.global.neo4j.uri }}"
|
||||
- name: NEO4J_USERNAME
|
||||
value: "{{ .Values.global.neo4j.username }}"
|
||||
- name: NEO4J_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .Values.global.neo4j.password.secretRef }}"
|
||||
key: "{{ .Values.global.neo4j.password.secretKey }}"
|
||||
{{- with .Values.datahubUpgrade.extraEnvs }}
|
||||
{{- toYaml . | nindent 16 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- with .Values.datahubUpgrade.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 16 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 256Mi
|
||||
{{- end -}}
|
||||
@ -0,0 +1,107 @@
|
||||
{{- if .Values.datahubUpgrade.enabled -}}
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-datahub-upgrade-job
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
annotations:
|
||||
# This is what defines this resource as a hook. Without this line, the
|
||||
# job is considered part of the release.
|
||||
"helm.sh/hook": post-install,post-upgrade
|
||||
"helm.sh/hook-weight": "-5"
|
||||
"helm.sh/hook-delete-policy": before-hook-creation
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
{{- with .Values.global.hostAliases }}
|
||||
hostAliases:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.datahubUpgrade.serviceAccount }}
|
||||
serviceAccountName: {{ . }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- with .Values.datahubUpgrade.extraVolumes }}
|
||||
{{- toYaml . | nindent 8}}
|
||||
{{- end }}
|
||||
restartPolicy: Never
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
fsGroup: 1000
|
||||
containers:
|
||||
- name: datahub-upgrade-job
|
||||
image: "{{ .Values.datahubUpgrade.image.repository }}:{{ .Values.datahubUpgrade.image.tag }}"
|
||||
args: [ "-u", "NoCodeDataMigration", "-a", "batchSize=1000", "-a", "batchDelayMs=100" ]
|
||||
env:
|
||||
- name: DATAHUB_GMS_HOST
|
||||
value: {{ printf "%s-%s" .Release.Name "datahub-gms" }}
|
||||
- name: DATAHUB_GMS_PORT
|
||||
value: "{{ .Values.global.datahub.gms.port }}"
|
||||
- name: DATAHUB_MAE_CONSUMER_HOST
|
||||
value: {{ printf "%s-%s" .Release.Name "datahub-mae-consumer" }}
|
||||
- name: DATAHUB_MAE_CONSUMER_PORT
|
||||
value: "{{ .Values.global.datahub.mae_consumer.port }}"
|
||||
- name: EBEAN_DATASOURCE_USERNAME
|
||||
value: "{{ .Values.global.sql.datasource.username }}"
|
||||
- name: EBEAN_DATASOURCE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .Values.global.sql.datasource.password.secretRef }}"
|
||||
key: "{{ .Values.global.sql.datasource.password.secretKey }}"
|
||||
- name: EBEAN_DATASOURCE_HOST
|
||||
value: "{{ .Values.global.sql.datasource.host }}"
|
||||
- name: EBEAN_DATASOURCE_URL
|
||||
value: "{{ .Values.global.sql.datasource.url }}"
|
||||
- name: EBEAN_DATASOURCE_DRIVER
|
||||
value: "{{ .Values.global.sql.datasource.driver }}"
|
||||
- name: KAFKA_BOOTSTRAP_SERVER
|
||||
value: "{{ .Values.global.kafka.bootstrap.server }}"
|
||||
- name: KAFKA_SCHEMAREGISTRY_URL
|
||||
value: "{{ .Values.global.kafka.schemaregistry.url }}"
|
||||
- name: ELASTICSEARCH_HOST
|
||||
value: {{ .Values.global.elasticsearch.host | quote }}
|
||||
- name: ELASTICSEARCH_PORT
|
||||
value: {{ .Values.global.elasticsearch.port | quote }}
|
||||
{{- with .Values.global.elasticsearch.useSSL }}
|
||||
- name: ELASTICSEARCH_USE_SSL
|
||||
value: {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- with .Values.global.elasticsearch.auth }}
|
||||
- name: ELASTICSEARCH_USERNAME
|
||||
value: {{ .username }}
|
||||
- name: ELASTICSEARCH_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .password.secretRef }}"
|
||||
key: "{{ .password.secretKey }}"
|
||||
{{- end }}
|
||||
- name: NEO4J_HOST
|
||||
value: "{{ .Values.global.neo4j.host }}"
|
||||
- name: NEO4J_URI
|
||||
value: "{{ .Values.global.neo4j.uri }}"
|
||||
- name: NEO4J_USERNAME
|
||||
value: "{{ .Values.global.neo4j.username }}"
|
||||
- name: NEO4J_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .Values.global.neo4j.password.secretRef }}"
|
||||
key: "{{ .Values.global.neo4j.password.secretKey }}"
|
||||
{{- with .Values.datahubUpgrade.extraEnvs }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- with .Values.datahubUpgrade.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 256Mi
|
||||
{{- end -}}
|
||||
@ -1,94 +1,101 @@
|
||||
# Default values for datahub.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
# Values to start up datahub after starting up the datahub-prerequisites chart with "prerequisites" release name
|
||||
# Copy this chart and change configuration as needed.
|
||||
datahub-gms:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-gms
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-frontend:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-frontend-react
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
# Set up ingress to expose react front-end
|
||||
ingress:
|
||||
enabled: false
|
||||
|
||||
datahub-mae-consumer:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-mae-consumer
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-mce-consumer:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-mce-consumer
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahub-ingestion-cron:
|
||||
enabled: false
|
||||
image:
|
||||
repository: linkedin/datahub-ingestion
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
elasticsearchSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-elasticsearch-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
kafkaSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: linkedin/datahub-kafka-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
mysqlSetupJob:
|
||||
enabled: true
|
||||
image:
|
||||
repository: acryldata/datahub-mysql-setup
|
||||
tag: "latest"
|
||||
tag: "v0.8.1"
|
||||
|
||||
datahubUpgrade:
|
||||
enabled: true
|
||||
image:
|
||||
repository: acryldata/datahub-upgrade
|
||||
tag: "v0.8.1"
|
||||
|
||||
global:
|
||||
datahub_analytics_enabled: true
|
||||
|
||||
elasticsearch:
|
||||
host: "elasticsearch"
|
||||
host: "elasticsearch-master"
|
||||
port: "9200"
|
||||
|
||||
kafka:
|
||||
bootstrap:
|
||||
server: "broker:9092"
|
||||
server: "prerequisites-kafka:9092"
|
||||
zookeeper:
|
||||
server: "zookeeper:2181"
|
||||
server: "prerequisites-zookeeper:2181"
|
||||
schemaregistry:
|
||||
url: "http://schema-registry:8081"
|
||||
url: "http://prerequisites-cp-schema-registry:8081"
|
||||
|
||||
neo4j:
|
||||
host: "neo4j:7474"
|
||||
uri: "bolt://neo4j"
|
||||
host: "prerequisites-neo4j-community:7474"
|
||||
uri: "bolt://prerequisites-neo4j-community"
|
||||
username: "neo4j"
|
||||
password:
|
||||
secretRef: "neo4j-secrets"
|
||||
secretKey: "neo4j-password"
|
||||
secretRef: neo4j-secrets
|
||||
secretKey: neo4j-password
|
||||
|
||||
sql:
|
||||
datasource:
|
||||
host: "mysql:3306"
|
||||
hostForMysqlClient: "mysql"
|
||||
host: "prerequisites-mysql:3306"
|
||||
hostForMysqlClient: "prerequisites-mysql"
|
||||
port: "3306"
|
||||
url: "jdbc:mysql://mysql:3306/datahub?verifyServerCertificate=false&useSSL=true"
|
||||
url: "jdbc:mysql://prerequisites-mysql:3306/datahub?verifyServerCertificate=false&useSSL=true&useUnicode=yes&characterEncoding=UTF-8"
|
||||
driver: "com.mysql.jdbc.Driver"
|
||||
username: "datahub"
|
||||
username: "root"
|
||||
password:
|
||||
secretRef: "mysql-secrets"
|
||||
secretKey: "mysql-password"
|
||||
secretRef: mysql-secrets
|
||||
secretKey: mysql-root-password
|
||||
|
||||
datahub:
|
||||
gms:
|
||||
port: "8080"
|
||||
datahub-mae-consumer:
|
||||
mae_consumer:
|
||||
port: "9091"
|
||||
appVersion: "1.0"
|
||||
|
||||
|
||||
@ -92,11 +92,14 @@ docker images -a | grep acryldata/datahub-upgrade | awk '{print $3}' | xargs doc
|
||||
Upgrade to latest helm charts by running the following after pulling latest master.
|
||||
|
||||
```(shell)
|
||||
helm upgrade datahub datahub/ --values datahub/quickstart-values.yaml
|
||||
helm upgrade datahub datahub/
|
||||
```
|
||||
|
||||
This will upgrade all pods to version 0.8.0, and once all pods are up and ready, datahub-upgrade job will start, running
|
||||
the above docker image to migrate to the new stores.
|
||||
In the latest helm charts, we added a datahub-upgrade-job, which runs the above mentioned docker container to migrate to
|
||||
the new storage layer. Note, the job will fail in the beginning as it waits for GMS and MAE consumer to be deployed with
|
||||
the NoCode code. It will rerun until it runs successfully.
|
||||
|
||||
Once the storage layer has been migrated, subsequent runs of this job will be a noop.
|
||||
|
||||
### Step 3 (Optional): Cleaning Up
|
||||
|
||||
@ -132,7 +135,28 @@ documentation
|
||||
|
||||
#### Helm Deployments
|
||||
|
||||
TODO
|
||||
Assuming the latest helm chart has been deployed in the previous step, datahub-cleanup-job-template cronJob should have
|
||||
been created. You can check by running the following:
|
||||
|
||||
```
|
||||
kubectl get cronjobs
|
||||
```
|
||||
|
||||
You should see an output like below:
|
||||
|
||||
```
|
||||
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
|
||||
datahub-datahub-cleanup-job-template * * * * * True 0 <none> 12m
|
||||
```
|
||||
|
||||
Note that the cronJob has been suspended. It is intended to be run in an adhoc fashion when ready to clean up. Make sure
|
||||
the migration was successful and DataHub is working as expected. Then run the following command to run the clean up job:
|
||||
|
||||
```
|
||||
kubectl create job --from=cronjob/<<release-name>>-datahub-cleanup-job-template datahub-cleanup-job
|
||||
```
|
||||
|
||||
Replace release-name with the name of the helm release. If you followed the kubernetes guide, it should be "datahub".
|
||||
|
||||
## Support
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user