This is an automated email from the ASF dual-hosted git repository. warren pushed a commit to branch feat-comment-pg in repository https://gitbox.apache.org/repos/asf/incubator-devlake-helm-chart.git
commit b6967ee648f2d92621886e9195c8ac6e6d3bbcb8 Author: Yingchu Chen <[email protected]> AuthorDate: Wed Mar 8 11:41:22 2023 +0800 comment out pg and issue 0.15.1-beta6 --- .github/workflows/deploy-test.yml | 27 +++-- HelmSetup.md | 93 +++++++-------- charts/devlake/Chart.yaml | 4 +- charts/devlake/templates/_helpers.tpl | 28 ----- charts/devlake/templates/configmaps.yaml | 38 +++--- charts/devlake/templates/deployments.yaml | 2 - charts/devlake/templates/services.yaml | 36 +++--- charts/devlake/templates/statefulsets.yaml | 180 ++++++++++++++--------------- charts/devlake/values.yaml | 92 +++++++-------- 9 files changed, 231 insertions(+), 269 deletions(-) diff --git a/.github/workflows/deploy-test.yml b/.github/workflows/deploy-test.yml index 36d77dc..be3ff5c 100644 --- a/.github/workflows/deploy-test.yml +++ b/.github/workflows/deploy-test.yml @@ -37,7 +37,10 @@ jobs: strategy: fail-fast: false matrix: - database_type: ["mysql-builtin", "mysql-external", "pgsql-builtin"] + database_type: ["mysql-builtin", +# "pgsql-builtin", + "mysql-external" + ] steps: - name: Creating kind cluster uses: container-tools/kind-action@v1 @@ -80,17 +83,17 @@ jobs: kubectl get pods -o wide kubectl get services -o wide - - name: Helm install devlake - if: matrix.database_type == 'pgsql-builtin' - run: | - export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") - echo Node IP: ${NODE_IP} - helm install --wait --timeout 300s deploy-test charts/devlake \ - --set service.uiPort=30000 \ - --set option.database=pgsql \ - --set option.localtime="" - kubectl get pods -o wide - kubectl get services -o wide +# - name: Helm install devlake +# if: matrix.database_type == 'pgsql-builtin' +# run: | +# export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") +# echo Node IP: ${NODE_IP} +# helm install --wait --timeout 300s deploy-test charts/devlake \ +# --set service.uiPort=30000 \ +# --set option.database=pgsql \ +# --set option.localtime="" +# kubectl get pods -o wide +# kubectl get services -o wide # TODO: using some e2e test code to replace it - name: Curl with endpoints diff --git a/HelmSetup.md b/HelmSetup.md index 69539fb..72ec85b 100644 --- a/HelmSetup.md +++ b/HelmSetup.md @@ -112,59 +112,48 @@ After deployed, visit devlake: https://devlake-0.example.com:8443, and grafana a Some useful parameters for the chart, you could also check them in values.yaml -| Parameter | Description | Default | -| ----------------------------- | ---------------------------------------------------------- | -------------------------- | -| replicaCount | Replica Count for devlake, currently not used | 1 | -| imageTag | The version tag for all images | see Values.yaml | -| mysql.useExternal | If use external mysql server, set true | false | -| mysql.externalServer | External mysql server address | 127.0.0.1 | -| mysql.externalPort | External mysql server port | 3306 | -| mysql.username | username for mysql | merico | -| mysql.password | password for mysql | merico | -| mysql.database | database for mysql | lake | -| mysql.rootPassword | root password for mysql | admin | -| mysql.storage.class | storage class for mysql's volume | "" | -| mysql.storage.size | volume size for mysql's data | 5Gi | -| mysql.image.repository | repository for mysql's image | mysql | -| mysql.image.tag | image tag for mysql's image | 8 | -| mysql.image.pullPolicy | pullPolicy for mysql's image | IfNotPresent | -| pgsql.useExternal | If use external pgsql server, set true | false | -| pgsql.externalServer | External pgsql server address | 127.0.0.1 | -| pgsql.externalPort | External pgsql server port | 3306 | -| pgsql.username | username for pgsql | merico | -| pgsql.password | password for pgsql | merico | -| pgsql.database | database for pgsql | lake | -| pgsql.storage.class | storage class for pgsql's volume | "" | -| pgsql.storage.size | volume size for pgsql's data | 5Gi | -| pgsql.image.repository | repository for pgsql's image | postgres | -| pgsql.image.tag | image tag for pgsql's image | 14.5 | -| pgsql.image.pullPolicy | pullPolicy for pgsql's image | IfNotPresent | -| grafana.image.repository | repository for grafana's image | apache/devlake-dashboard | -| grafana.image.pullPolicy | pullPolicy for grafana's image | Always | -| lake.storage.class | storage class for lake's volume | "" | -| lake.storage.size | volume size for lake's data | 100Mi | -| lake.image.repository | repository for lake's image | apache/devlake | -| lake.image.pullPolicy | pullPolicy for lake's image | Always | -| lake.loggingDir | log dir for the lake server | /app/logs | -| lake.loggingLevel | log level for the lake server | info | -| lake.dotenv | initial configurations for injecting to lake's .env | see Values.yaml | -| ui.image.repository | repository for ui's image | apache/devlake-config-ui | -| ui.image.pullPolicy | pullPolicy for ui's image | Always | -| ui.basicAuth.enabled | If the basic auth in ui is enabled | false | -| ui.basicAuth.user | The user name for the basic auth | "admin" | -| ui.basicAuth.password | The password for the basic auth | "admin" | -| service.type | Service type for exposed service | NodePort | -| service.uiPort | Node port for config ui | 32001 | -| service.ingress.enabled | If enable ingress | false | -| service.ingress.enableHttps | If enable https | false | +| Parameter | Description | Default | +| ----------------------------- | -------------------------------------------------------- | -------------------------- | +| replicaCount | Replica Count for devlake, currently not used | 1 | +| imageTag | The version tag for all images | see Values.yaml | +| mysql.useExternal | If use external mysql server, set true | false | +| mysql.externalServer | External mysql server address | 127.0.0.1 | +| mysql.externalPort | External mysql server port | 3306 | +| mysql.username | username for mysql | merico | +| mysql.password | password for mysql | merico | +| mysql.database | database for mysql | lake | +| mysql.rootPassword | root password for mysql | admin | +| mysql.storage.class | storage class for mysql's volume | "" | +| mysql.storage.size | volume size for mysql's data | 5Gi | +| mysql.image.repository | repository for mysql's image | mysql | +| mysql.image.tag | image tag for mysql's image | 8 | +| mysql.image.pullPolicy | pullPolicy for mysql's image | IfNotPresent | +| grafana.image.repository | repository for grafana's image | apache/devlake-dashboard | +| grafana.image.pullPolicy | pullPolicy for grafana's image | Always | +| lake.storage.class | storage class for lake's volume | "" | +| lake.storage.size | volume size for lake's data | 100Mi | +| lake.image.repository | repository for lake's image | apache/devlake | +| lake.image.pullPolicy | pullPolicy for lake's image | Always | +| lake.loggingDir | log dir for the lake server | /app/logs | +| lake.loggingLevel | log level for the lake server | info | +| lake.dotenv | initial configurations for injecting to lake's .env | see Values.yaml | +| ui.image.repository | repository for ui's image | apache/devlake-config-ui | +| ui.image.pullPolicy | pullPolicy for ui's image | Always | +| ui.basicAuth.enabled | If the basic auth in ui is enabled | false | +| ui.basicAuth.user | The user name for the basic auth | "admin" | +| ui.basicAuth.password | The password for the basic auth | "admin" | +| service.type | Service type for exposed service | NodePort | +| service.uiPort | Node port for config ui | 32001 | +| service.ingress.enabled | If enable ingress | false | +| service.ingress.enableHttps | If enable https | false | | service.ingress.className | Class name for ingressClass. leave empty for using default | "" | -| service.ingress.hostname | The hostname/domainname for ingress | localhost | -| service.ingress.prefix | The prefix for endpoints, currently not used | / | -| service.ingress.tlsSecretName | The secret name for tls's certificate for https | "" | -| service.ingress.httpPort | The http port for ingress | 80 | -| service.ingress.httpsPort | The https port for ingress | 443 | -| option.localtime | The hostpath for mount as /etc/localtime | /etc/localtime | -| option.database | The database type, valids: mysql, pgsql | mysql | +| service.ingress.hostname | The hostname/domainname for ingress | localhost | +| service.ingress.prefix | The prefix for endpoints, currently not used | / | +| service.ingress.tlsSecretName | The secret name for tls's certificate for https | "" | +| service.ingress.httpPort | The http port for ingress | 80 | +| service.ingress.httpsPort | The https port for ingress | 443 | +| option.localtime | The hostpath for mount as /etc/localtime | /etc/localtime | +| option.database | The database type, valids: mysql | mysql | ## FAQ 1. Can I use a managed Cloud database service instead of running database in docker? diff --git a/charts/devlake/Chart.yaml b/charts/devlake/Chart.yaml index d3f4fc9..0601076 100644 --- a/charts/devlake/Chart.yaml +++ b/charts/devlake/Chart.yaml @@ -29,7 +29,7 @@ type: application # Chart version -version: 0.15.1-beta5 +version: 0.15.1-beta6 # devlake version -appVersion: v0.15.1-beta5 +appVersion: v0.15.1-beta6 diff --git a/charts/devlake/templates/_helpers.tpl b/charts/devlake/templates/_helpers.tpl index b4562c3..a121738 100644 --- a/charts/devlake/templates/_helpers.tpl +++ b/charts/devlake/templates/_helpers.tpl @@ -119,28 +119,6 @@ The mysql port {{- end }} {{- end }} -{{/* -The pgsql server -*/}} -{{- define "pgsql.server" -}} -{{- if .Values.pgsql.useExternal }} -{{- .Values.pgsql.externalServer }} -{{- else }} -{{- print (include "devlake.fullname" . ) "-pgsql" }} -{{- end }} -{{- end }} - - -{{/* -The pgsql port -*/}} -{{- define "pgsql.port" -}} -{{- if .Values.pgsql.useExternal }} -{{- .Values.pgsql.externalPort }} -{{- else }} -{{- 5432 }} -{{- end }} -{{- end }} {{/* @@ -149,8 +127,6 @@ The database server {{- define "database.server" -}} {{- if eq .Values.option.database "mysql" }} {{- include "mysql.server" . }} -{{- else if eq .Values.option.database "pgsql" }} -{{- include "pgsql.server" . }} {{- end }} {{- end }} @@ -161,8 +137,6 @@ The database port {{- define "database.port" -}} {{- if eq .Values.option.database "mysql" }} {{- include "mysql.port" . }} -{{- else if eq .Values.option.database "pgsql" }} -{{- include "pgsql.port" . }} {{- end }} {{- end }} @@ -173,8 +147,6 @@ The database url {{- define "database.url" -}} {{- if eq .Values.option.database "mysql" -}} mysql://{{ .Values.mysql.username }}:{{ .Values.mysql.password }}@{{ include "mysql.server" . }}:{{ include "mysql.port" . }}/{{ .Values.mysql.database }}?charset=utf8mb4&parseTime=True -{{- else if eq .Values.option.database "pgsql" -}} -postgres://{{ .Values.pgsql.username }}:{{ .Values.pgsql.password }}@{{ include "pgsql.server" . }}:{{ include "pgsql.port" . }}/{{ .Values.pgsql.database }} {{- end }} {{- end }} diff --git a/charts/devlake/templates/configmaps.yaml b/charts/devlake/templates/configmaps.yaml index 3161099..3d73180 100644 --- a/charts/devlake/templates/configmaps.yaml +++ b/charts/devlake/templates/configmaps.yaml @@ -25,10 +25,10 @@ data: MYSQL_PASSWORD: "{{ .Values.mysql.password }}" MYSQL_DATABASE: "{{ .Values.mysql.database }}" MYSQL_ROOT_PASSWORD: "{{ .Values.mysql.rootPassword }}" -{{- else if eq .Values.option.database "pgsql" }} - POSTGRES_USER: "{{ .Values.pgsql.username }}" - POSTGRES_PASSWORD: "{{ .Values.pgsql.password }}" - POSTGRES_DB: "{{ .Values.pgsql.database }}" +#{{- else if eq .Values.option.database "pgsql" }} +# POSTGRES_USER: "{{ .Values.pgsql.username }}" +# POSTGRES_PASSWORD: "{{ .Values.pgsql.password }}" +# POSTGRES_DB: "{{ .Values.pgsql.database }}" {{- end }} LOGGING_DIR: "{{ .Values.lake.loggingDir }}" LOGGING_LEVEL: "{{ .Values.lake.loggingLevel }}" @@ -55,19 +55,19 @@ data: secureJsonData: password: $MYSQL_PASSWORD editable: false -{{- else if eq .Values.option.database "pgsql" }} - grafana-datasource.yml: | - apiVersion: 1 - datasources: - - name: postgres - type: postgres - url: $POSTGRES_URL - database: $POSTGRES_DB - user: $POSTGRES_USER - secureJsonData: - password: $POSTGRES_PASSWORD - jsonData: - sslmode: 'disable' - postgresVersion: 1000 # support pgsql 10.0 and above - timescaledb: false +#{{- else if eq .Values.option.database "pgsql" }} +# grafana-datasource.yml: | +# apiVersion: 1 +# datasources: +# - name: postgres +# type: postgres +# url: $POSTGRES_URL +# database: $POSTGRES_DB +# user: $POSTGRES_USER +# secureJsonData: +# password: $POSTGRES_PASSWORD +# jsonData: +# sslmode: 'disable' +# postgresVersion: 1000 # support pgsql 10.0 and above +# timescaledb: false {{- end }} diff --git a/charts/devlake/templates/deployments.yaml b/charts/devlake/templates/deployments.yaml index 2dedefb..e64a226 100644 --- a/charts/devlake/templates/deployments.yaml +++ b/charts/devlake/templates/deployments.yaml @@ -65,8 +65,6 @@ spec: value: "%(protocol)s://%(domain)s:%(http_port)s/grafana/" - name: MYSQL_URL value: {{ include "mysql.server" . }}:{{ include "mysql.port" . }} - - name: POSTGRES_URL - value: {{ include "pgsql.server" . }}:{{ include "pgsql.port" . }} {{- with .Values.grafana.resources }} resources: {{- toYaml . | nindent 12 }} diff --git a/charts/devlake/templates/services.yaml b/charts/devlake/templates/services.yaml index 0c9f50d..9784360 100644 --- a/charts/devlake/templates/services.yaml +++ b/charts/devlake/templates/services.yaml @@ -35,24 +35,24 @@ spec: port: 3306 targetPort: 3306 {{- end }} -{{- else if eq .Values.option.database "pgsql" }} -{{- if not .Values.pgsql.useExternal }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "devlake.fullname" . }}-pgsql - labels: - {{- include "devlake.labels" . | nindent 4 }} -spec: - selector: - {{- include "devlake.selectorLabels" . | nindent 4 }} - devlakeComponent: pgsql - ports: - - protocol: TCP - name: pgsql - port: 5432 - targetPort: 5432 -{{- end }} +#{{- else if eq .Values.option.database "pgsql" }} +#{{- if not .Values.pgsql.useExternal }} +#apiVersion: v1 +#kind: Service +#metadata: +# name: {{ include "devlake.fullname" . }}-pgsql +# labels: +# {{- include "devlake.labels" . | nindent 4 }} +#spec: +# selector: +# {{- include "devlake.selectorLabels" . | nindent 4 }} +# devlakeComponent: pgsql +# ports: +# - protocol: TCP +# name: pgsql +# port: 5432 +# targetPort: 5432 +#{{- end }} {{- end }} # grafana services diff --git a/charts/devlake/templates/statefulsets.yaml b/charts/devlake/templates/statefulsets.yaml index c23c4fc..3ab7c0c 100644 --- a/charts/devlake/templates/statefulsets.yaml +++ b/charts/devlake/templates/statefulsets.yaml @@ -105,96 +105,96 @@ spec: resources: requests: storage: "{{ .Values.mysql.storage.size }}" -{{- end }} -{{- else if eq .Values.option.database "pgsql" }} -{{- if not .Values.pgsql.useExternal }} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ include "devlake.fullname" . }}-pgsql - labels: - {{- include "devlake.labels" . | nindent 4 }} -spec: - replicas: 1 - serviceName: {{ include "devlake.fullname" . }}-pgsql - selector: - matchLabels: - {{- include "devlake.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "devlake.selectorLabels" . | nindent 8 }} - devlakeComponent: pgsql - spec: - containers: - - name: pgsql - image: "{{ .Values.pgsql.image.repository }}:{{ .Values.pgsql.image.tag }}" - imagePullPolicy: {{ .Values.pgsql.image.pullPolicy }} - ports: - - name: pgsql - containerPort: 5432 - protocol: TCP - livenessProbe: - exec: - command: - - "sh" - - "-c" - - "pg_isready -U postgres -h 127.0.0.1 -p 5432" - initialDelaySeconds: 60 - timeoutSeconds: 30 - readinessProbe: - exec: - command: - - "sh" - - "-c" - - "pg_isready -U postgres -h 127.0.0.1 -p 5432" - initialDelaySeconds: 5 - timeoutSeconds: 10 - {{- with .Values.pgsql.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - envFrom: - - configMapRef: - name: {{ include "devlake.fullname" . }}-config - volumeMounts: - - mountPath: /var/lib/postgresql - name: {{ include "devlake.fullname" . }}-pgsql-data - {{- if ne .Values.option.localtime "" }} - - name: {{ include "devlake.fullname" . }}-pgsql-localtime - mountPath: /etc/localtime - readOnly: true - {{- end }} - {{- with .Values.pgsql.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.pgsql.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.pgsql.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - volumes: - {{- if ne .Values.option.localtime "" }} - - name: {{ include "devlake.fullname" . }}-pgsql-localtime - hostPath: - path: {{ .Values.option.localtime }} - type: File - {{- end }} - volumeClaimTemplates: - - metadata: - name: {{ include "devlake.fullname" . }}-pgsql-data - spec: - accessModes: ["ReadWriteOnce"] - {{- with .Values.pgsql.storage.class }} - storageClassName: "{{ . }}" - {{- end }} - resources: - requests: - storage: "{{ .Values.pgsql.storage.size }}" +#{{- end }} +#{{- else if eq .Values.option.database "pgsql" }} +#{{- if not .Values.pgsql.useExternal }} +#apiVersion: apps/v1 +#kind: StatefulSet +#metadata: +# name: {{ include "devlake.fullname" . }}-pgsql +# labels: +# {{- include "devlake.labels" . | nindent 4 }} +#spec: +# replicas: 1 +# serviceName: {{ include "devlake.fullname" . }}-pgsql +# selector: +# matchLabels: +# {{- include "devlake.selectorLabels" . | nindent 6 }} +# template: +# metadata: +# labels: +# {{- include "devlake.selectorLabels" . | nindent 8 }} +# devlakeComponent: pgsql +# spec: +# containers: +# - name: pgsql +# image: "{{ .Values.pgsql.image.repository }}:{{ .Values.pgsql.image.tag }}" +# imagePullPolicy: {{ .Values.pgsql.image.pullPolicy }} +# ports: +# - name: pgsql +# containerPort: 5432 +# protocol: TCP +# livenessProbe: +# exec: +# command: +# - "sh" +# - "-c" +# - "pg_isready -U postgres -h 127.0.0.1 -p 5432" +# initialDelaySeconds: 60 +# timeoutSeconds: 30 +# readinessProbe: +# exec: +# command: +# - "sh" +# - "-c" +# - "pg_isready -U postgres -h 127.0.0.1 -p 5432" +# initialDelaySeconds: 5 +# timeoutSeconds: 10 +# {{- with .Values.pgsql.resources }} +# resources: +# {{- toYaml . | nindent 12 }} +# {{- end }} +# envFrom: +# - configMapRef: +# name: {{ include "devlake.fullname" . }}-config +# volumeMounts: +# - mountPath: /var/lib/postgresql +# name: {{ include "devlake.fullname" . }}-pgsql-data +# {{- if ne .Values.option.localtime "" }} +# - name: {{ include "devlake.fullname" . }}-pgsql-localtime +# mountPath: /etc/localtime +# readOnly: true +# {{- end }} +# {{- with .Values.pgsql.nodeSelector }} +# nodeSelector: +# {{- toYaml . | nindent 8 }} +# {{- end }} +# {{- with .Values.pgsql.affinity }} +# affinity: +# {{- toYaml . | nindent 8 }} +# {{- end }} +# {{- with .Values.pgsql.tolerations }} +# tolerations: +# {{- toYaml . | nindent 8 }} +# {{- end }} +# volumes: +# {{- if ne .Values.option.localtime "" }} +# - name: {{ include "devlake.fullname" . }}-pgsql-localtime +# hostPath: +# path: {{ .Values.option.localtime }} +# type: File +# {{- end }} +# volumeClaimTemplates: +# - metadata: +# name: {{ include "devlake.fullname" . }}-pgsql-data +# spec: +# accessModes: ["ReadWriteOnce"] +# {{- with .Values.pgsql.storage.class }} +# storageClassName: "{{ . }}" +# {{- end }} +# resources: +# requests: +# storage: "{{ .Values.pgsql.storage.size }}" {{- end }} {{- end }} diff --git a/charts/devlake/values.yaml b/charts/devlake/values.yaml index 837d59e..f21840a 100644 --- a/charts/devlake/values.yaml +++ b/charts/devlake/values.yaml @@ -17,7 +17,7 @@ # replica count for dev replicaCount: 1 -imageTag: v0.15.1-beta5 +imageTag: v0.15.1-beta6 mysql: # if use external mysql server, please set true @@ -46,7 +46,7 @@ mysql: storage: # the storage class for pv, leave empty will using default class: "" - size: 5Gi + size: 50Gi # image for mysql image: @@ -66,49 +66,49 @@ mysql: # affinity config for mysql if have affinity: {} -pgsql: - # if use external pgsql server, please set true - # by default using false, chart will create a single pgsql instance - useExternal: false - - # the external pgsql server address - externalServer: 127.0.0.1 - - # external pgsql port - externalPort: 5432 - - # the username for devlake database - username: merico - - # the password for devlake database - password: merico - - # the database for devlake - database: lake - - # storage for pgsql - storage: - # the storage class for pv, leave empty will using default - class: "" - size: 5Gi - - # image for pgsql - image: - repository: postgres - tag: 14.5 - pullPolicy: IfNotPresent - - # resources config for pgsql if have - resources: {} - - # nodeSelector config for pgsql if have - nodeSelector: {} - - # tolerations config for pgsql if have - tolerations: [] - - # affinity config for pgsql if have - affinity: {} +#pgsql: +# # if use external pgsql server, please set true +# # by default using false, chart will create a single pgsql instance +# useExternal: false +# +# # the external pgsql server address +# externalServer: 127.0.0.1 +# +# # external pgsql port +# externalPort: 5432 +# +# # the username for devlake database +# username: merico +# +# # the password for devlake database +# password: merico +# +# # the database for devlake +# database: lake +# +# # storage for pgsql +# storage: +# # the storage class for pv, leave empty will using default +# class: "" +# size: 5Gi +# +# # image for pgsql +# image: +# repository: postgres +# tag: 14.5 +# pullPolicy: IfNotPresent +# +# # resources config for pgsql if have +# resources: {} +# +# # nodeSelector config for pgsql if have +# nodeSelector: {} +# +# # tolerations config for pgsql if have +# tolerations: [] +# +# # affinity config for pgsql if have +# affinity: {} grafana: # image for grafana @@ -211,5 +211,5 @@ option: # localtime zone info from host path. localtime: /etc/localtime - # database type, supported: [mysql, pgsql] + # database type, supported: [mysql] database: mysql
