From f2aa6b9c96ba4874f11a1c939f1080af36bfd40d Mon Sep 17 00:00:00 2001 From: chisaato Date: Mon, 20 May 2024 04:12:18 +0800 Subject: [PATCH 1/7] feat: add PostgreSQL Support tested with CrunchyData PGO Signed-off-by: chisaato --- .github/workflows/lint-test.yml | 2 +- charts/dragonfly/Chart.yaml | 4 ++ charts/dragonfly/README.md | 19 +++++++++ .../templates/manager/manager-configmap.yaml | 24 ++++++++++++ .../templates/manager/manager-deployment.yaml | 8 +++- charts/dragonfly/values.yaml | 39 +++++++++++++++++++ 6 files changed, 94 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint-test.yml b/.github/workflows/lint-test.yml index 69666533..6095e49f 100644 --- a/.github/workflows/lint-test.yml +++ b/.github/workflows/lint-test.yml @@ -39,7 +39,7 @@ jobs: - name: Set up Helm uses: azure/setup-helm@v4 with: - version: v3.7.2 + version: v3.15.3 - uses: actions/setup-python@v5 with: diff --git a/charts/dragonfly/Chart.yaml b/charts/dragonfly/Chart.yaml index 47f83ff6..d89988aa 100644 --- a/charts/dragonfly/Chart.yaml +++ b/charts/dragonfly/Chart.yaml @@ -57,3 +57,7 @@ dependencies: version: 19.5.5 repository: https://charts.bitnami.com/bitnami condition: redis.enable + - name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 15.3.3 + condition: postgresql.enable diff --git a/charts/dragonfly/README.md b/charts/dragonfly/README.md index a65f48ec..65c4ff9b 100644 --- a/charts/dragonfly/README.md +++ b/charts/dragonfly/README.md @@ -227,6 +227,13 @@ helm delete dragonfly --namespace dragonfly-system | externalMysql.password | string | `"dragonfly"` | External mysql password. | | externalMysql.port | int | `3306` | External mysql port. | | externalMysql.username | string | `"dragonfly"` | External mysql username. | +| externalPostgresql.database | string | `"manager"` | External postgresql database name. | +| externalPostgresql.host | string | `nil` | External postgresql hostname. | +| externalPostgresql.migrate | bool | `false` | Running GORM migration. | +| externalPostgresql.password | string | `"dragonfly"` | External postgresql password. | +| externalPostgresql.port | int | `5432` | External postgresql port. | +| externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | +| externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | | externalRedis.addrs | list | `["redis.example.com:6379"]` | External redis server addresses. | | externalRedis.backendDB | int | `2` | External redis backend db. | | externalRedis.brokerDB | int | `1` | External redis broker db. | @@ -342,6 +349,16 @@ helm delete dragonfly --namespace dragonfly-system | mysql.primary.service.port | int | `3306` | Mysql port. | | nameOverride | string | `""` | Override dragonfly name. | | namespaceOverride | string | `""` | Override dragonfly namespace. | +| postgresql.auth.database | string | `"manager"` | Create dragonfly manager db. | +| postgresql.auth.enablePostgresUser | bool | `true` | | +| postgresql.auth.password | string | `"dragonfly"` | | +| postgresql.auth.postgresPassword | string | `"dragonfly"` | | +| postgresql.auth.username | string | `"dragonfly"` | Create dragonfly user. | +| postgresql.clusterDomain | string | `"cluster.local"` | Cluster domain. | +| postgresql.enable | bool | `false` | Enable postgresql with docker container. | +| postgresql.migrate | bool | `true` | Running GORM migration. | +| postgresql.primary.persistence.enabled | bool | `true` | | +| postgresql.primary.service.port | int | `5432` | postgresql port. | | redis.auth.enabled | bool | `true` | Enable password authentication. | | redis.auth.password | string | `"dragonfly"` | Redis password. | | redis.clusterDomain | string | `"cluster.local"` | Cluster domain. | @@ -539,4 +556,6 @@ helm delete dragonfly --namespace dragonfly-system | Repository | Name | Version | |------------|------|---------| | https://charts.bitnami.com/bitnami | mysql | 10.1.1 | +| https://charts.bitnami.com/bitnami | postgresql | 15.3.3 | | https://charts.bitnami.com/bitnami | redis | 19.5.5 | +| https://jaegertracing.github.io/helm-charts | jaeger | 0.66.1 | diff --git a/charts/dragonfly/templates/manager/manager-configmap.yaml b/charts/dragonfly/templates/manager/manager-configmap.yaml index 4d02484a..2112b03c 100644 --- a/charts/dragonfly/templates/manager/manager-configmap.yaml +++ b/charts/dragonfly/templates/manager/manager-configmap.yaml @@ -32,6 +32,8 @@ data: auth: {{ toYaml .Values.manager.config.auth | indent 6 }} database: + {{- if or .Values.mysql.enable .Values.externalMysql.host }} + type: mysql mysql: {{- if and .Values.mysql.enable (empty .Values.externalMysql.host)}} user: {{ .Values.mysql.auth.username }} @@ -48,6 +50,28 @@ data: dbname: {{ .Values.externalMysql.database }} migrate: {{ .Values.externalMysql.migrate }} {{- end }} + {{- end }} + {{- if or .Values.postgresql.enable .Values.externalPostgresql.host}} + type: postgres + postgres: + {{- if and .Values.postgresql.enable (empty .Values.externalPostgresql.host)}} + user: {{ .Values.postgresql.auth.username }} + password: {{ .Values.postgresql.auth.password }} + host: {{ .Release.Name }}-{{ default "postgresql" .Values.postgresql.fullname }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} + port: {{ .Values.postgresql.primary.service.port }} + dbname: {{ .Values.postgresql.auth.database }} + migrate: {{ .Values.postgresql.migrate }} + {{- else }} + user: {{ .Values.externalPostgresql.username }} + password: {{ .Values.externalPostgresql.password }} + host: {{ .Values.externalPostgresql.host }} + port: {{ .Values.externalPostgresql.port }} + dbname: {{ .Values.externalPostgresql.database }} + migrate: {{ .Values.externalPostgresql.migrate }} + sslMode: {{ .Values.externalPostgresql.sslMode }} + {{- end }} + timezone: UTC + {{- end }} redis: {{- if .Values.redis.enable }} addrs: diff --git a/charts/dragonfly/templates/manager/manager-deployment.yaml b/charts/dragonfly/templates/manager/manager-deployment.yaml index 91ae7fff..336c5ff2 100644 --- a/charts/dragonfly/templates/manager/manager-deployment.yaml +++ b/charts/dragonfly/templates/manager/manager-deployment.yaml @@ -65,7 +65,7 @@ spec: hostAliases: {{ toYaml .Values.manager.hostAliases | indent 8 }} {{- end }} - {{- if or .Values.redis.enable .Values.mysql.enable }} + {{- if or .Values.redis.enable .Values.mysql.enable .Values.postgresql.enable}} initContainers: {{- if .Values.redis.enable }} - name: wait-for-redis @@ -83,6 +83,12 @@ spec: resources: {{ toYaml .Values.manager.initContainer.resources | indent 12 }} {{- end }} + {{- if .Values.postgresql.enable }} + - name: wait-for-postgresql + image: {{ template "manager.initContainer.image" . }} + imagePullPolicy: {{ .Values.manager.initContainer.image.pullPolicy }} + command: ['sh', '-c', 'until nslookup {{ .Release.Name }}-{{ default "postgresql" .Values.postgresql.fullname }}.{{ $.Release.Namespace }}.svc.{{ $.Values.clusterDomain }} && nc -vz {{ .Release.Name }}-{{ default "postgresql" .Values.postgresql.fullname }}.{{ $.Release.Namespace }}.svc.{{ $.Values.clusterDomain }} {{ .Values.postgresql.primary.service.port }}; do echo waiting for postgresql; sleep 2; done;'] + {{- end }} {{- end }} containers: - name: manager diff --git a/charts/dragonfly/values.yaml b/charts/dragonfly/values.yaml index 79b5289e..66df4847 100644 --- a/charts/dragonfly/values.yaml +++ b/charts/dragonfly/values.yaml @@ -1445,6 +1445,45 @@ externalMysql: # -- External mysql port. port: 3306 +postgresql: + # -- Enable postgresql with docker container. + enable: false + # -- Cluster domain. + clusterDomain: "cluster.local" + # -- Running GORM migration. + migrate: true + auth: + enablePostgresUser: true + postgresPassword: "dragonfly" + # -- Create dragonfly user. + username: "dragonfly" + password: "dragonfly" + # -- Create dragonfly manager db. + database: "manager" + primary: + service: + # -- postgresql port. + port: 5432 + persistence: + enabled: true + # storageClass: "" + +externalPostgresql: + # -- Running GORM migration. + migrate: false + # -- External postgresql hostname. + host: + # -- External postgresql username. + username: dragonfly + # -- External postgresql password. + password: dragonfly + # -- External postgresql database name. + database: manager + # -- External postgresql ssl mode. + sslMode: disable + # -- External postgresql port. + port: 5432 + redis: # -- Enable redis cluster with docker container. enable: true From f5736986968498edfd73cb4584b1bb0f80decfbf Mon Sep 17 00:00:00 2001 From: chisaato Date: Wed, 22 May 2024 17:24:10 +0800 Subject: [PATCH 2/7] =?UTF-8?q?docs:=20add=20docs=20=E7=9C=8B=E7=9C=8B?= =?UTF-8?q?=E8=83=BD=E4=B8=8D=E8=83=BD=E8=BF=87=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chisaato --- charts/dragonfly/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/charts/dragonfly/README.md b/charts/dragonfly/README.md index 65c4ff9b..e1f36880 100644 --- a/charts/dragonfly/README.md +++ b/charts/dragonfly/README.md @@ -235,6 +235,13 @@ helm delete dragonfly --namespace dragonfly-system | externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | | externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | | externalRedis.addrs | list | `["redis.example.com:6379"]` | External redis server addresses. | +| externalPostgresql.database | string | `"manager"` | External postgresql database name. | +| externalPostgresql.host | string | `nil` | External postgresql hostname. | +| externalPostgresql.migrate | bool | `false` | Running GORM migration. | +| externalPostgresql.password | string | `"dragonfly"` | External postgresql password. | +| externalPostgresql.port | int | `5432` | External postgresql port. | +| externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | +| externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | | externalRedis.backendDB | int | `2` | External redis backend db. | | externalRedis.brokerDB | int | `1` | External redis broker db. | | externalRedis.db | int | `0` | External redis db. | @@ -348,7 +355,6 @@ helm delete dragonfly --namespace dragonfly-system | mysql.migrate | bool | `true` | Running GORM migration. | | mysql.primary.service.port | int | `3306` | Mysql port. | | nameOverride | string | `""` | Override dragonfly name. | -| namespaceOverride | string | `""` | Override dragonfly namespace. | | postgresql.auth.database | string | `"manager"` | Create dragonfly manager db. | | postgresql.auth.enablePostgresUser | bool | `true` | | | postgresql.auth.password | string | `"dragonfly"` | | From c6a7a0a5228c57acf5549147dcf62ff49a757f98 Mon Sep 17 00:00:00 2001 From: chisaato Date: Wed, 22 May 2024 17:41:07 +0800 Subject: [PATCH 3/7] fix: trigger ci Signed-off-by: chisaato --- charts/dragonfly/templates/manager/manager-configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/dragonfly/templates/manager/manager-configmap.yaml b/charts/dragonfly/templates/manager/manager-configmap.yaml index 2112b03c..7984027a 100644 --- a/charts/dragonfly/templates/manager/manager-configmap.yaml +++ b/charts/dragonfly/templates/manager/manager-configmap.yaml @@ -35,7 +35,7 @@ data: {{- if or .Values.mysql.enable .Values.externalMysql.host }} type: mysql mysql: - {{- if and .Values.mysql.enable (empty .Values.externalMysql.host)}} + {{- if and .Values.mysql.enable (empty .Values.externalMysql.host) }} user: {{ .Values.mysql.auth.username }} password: {{ .Values.mysql.auth.password }} host: {{ .Release.Name }}-{{ default "mysql" .Values.mysql.fullname }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} From 556a9d51846d1e72c721f4307792c00b383a3532 Mon Sep 17 00:00:00 2001 From: chisaato Date: Wed, 22 May 2024 17:44:59 +0800 Subject: [PATCH 4/7] fix: update docs and CI lints Signed-off-by: chisaato --- charts/dragonfly/README.md | 1 + charts/dragonfly/templates/manager/manager-configmap.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/charts/dragonfly/README.md b/charts/dragonfly/README.md index e1f36880..757bcec1 100644 --- a/charts/dragonfly/README.md +++ b/charts/dragonfly/README.md @@ -242,6 +242,7 @@ helm delete dragonfly --namespace dragonfly-system | externalPostgresql.port | int | `5432` | External postgresql port. | | externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | | externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | +| externalRedis.addrs | list | `["redis.example.com:6379"]` | External redis server addresses. | | externalRedis.backendDB | int | `2` | External redis backend db. | | externalRedis.brokerDB | int | `1` | External redis broker db. | | externalRedis.db | int | `0` | External redis db. | diff --git a/charts/dragonfly/templates/manager/manager-configmap.yaml b/charts/dragonfly/templates/manager/manager-configmap.yaml index 7984027a..b7e41e34 100644 --- a/charts/dragonfly/templates/manager/manager-configmap.yaml +++ b/charts/dragonfly/templates/manager/manager-configmap.yaml @@ -51,10 +51,10 @@ data: migrate: {{ .Values.externalMysql.migrate }} {{- end }} {{- end }} - {{- if or .Values.postgresql.enable .Values.externalPostgresql.host}} + {{- if or .Values.postgresql.enable .Values.externalPostgresql.host }} type: postgres postgres: - {{- if and .Values.postgresql.enable (empty .Values.externalPostgresql.host)}} + {{- if and .Values.postgresql.enable (empty .Values.externalPostgresql.host) }} user: {{ .Values.postgresql.auth.username }} password: {{ .Values.postgresql.auth.password }} host: {{ .Release.Name }}-{{ default "postgresql" .Values.postgresql.fullname }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} From 0305b8b3c7c88328070b3624701b64ef9cb00a51 Mon Sep 17 00:00:00 2001 From: chisaato Date: Tue, 13 Aug 2024 00:48:16 +0800 Subject: [PATCH 5/7] fix: bump version and update README Signed-off-by: chisaato --- charts/dragonfly/Chart.yaml | 2 +- charts/dragonfly/README.md | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/charts/dragonfly/Chart.yaml b/charts/dragonfly/Chart.yaml index d89988aa..57e2599c 100644 --- a/charts/dragonfly/Chart.yaml +++ b/charts/dragonfly/Chart.yaml @@ -3,7 +3,7 @@ name: dragonfly description: Dragonfly is an intelligent P2P based image and file distribution system icon: https://raw.githubusercontent.com/dragonflyoss/Dragonfly2/main/docs/images/logo/dragonfly.svg type: application -version: 1.2.1 +version: 1.2.2 appVersion: 2.1.53 keywords: - dragonfly diff --git a/charts/dragonfly/README.md b/charts/dragonfly/README.md index 757bcec1..08ff3baf 100644 --- a/charts/dragonfly/README.md +++ b/charts/dragonfly/README.md @@ -235,14 +235,6 @@ helm delete dragonfly --namespace dragonfly-system | externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | | externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | | externalRedis.addrs | list | `["redis.example.com:6379"]` | External redis server addresses. | -| externalPostgresql.database | string | `"manager"` | External postgresql database name. | -| externalPostgresql.host | string | `nil` | External postgresql hostname. | -| externalPostgresql.migrate | bool | `false` | Running GORM migration. | -| externalPostgresql.password | string | `"dragonfly"` | External postgresql password. | -| externalPostgresql.port | int | `5432` | External postgresql port. | -| externalPostgresql.sslMode | string | `"disable"` | External postgresql ssl mode. | -| externalPostgresql.username | string | `"dragonfly"` | External postgresql username. | -| externalRedis.addrs | list | `["redis.example.com:6379"]` | External redis server addresses. | | externalRedis.backendDB | int | `2` | External redis backend db. | | externalRedis.brokerDB | int | `1` | External redis broker db. | | externalRedis.db | int | `0` | External redis db. | @@ -356,6 +348,7 @@ helm delete dragonfly --namespace dragonfly-system | mysql.migrate | bool | `true` | Running GORM migration. | | mysql.primary.service.port | int | `3306` | Mysql port. | | nameOverride | string | `""` | Override dragonfly name. | +| namespaceOverride | string | `""` | Override dragonfly namespace. | | postgresql.auth.database | string | `"manager"` | Create dragonfly manager db. | | postgresql.auth.enablePostgresUser | bool | `true` | | | postgresql.auth.password | string | `"dragonfly"` | | @@ -565,4 +558,3 @@ helm delete dragonfly --namespace dragonfly-system | https://charts.bitnami.com/bitnami | mysql | 10.1.1 | | https://charts.bitnami.com/bitnami | postgresql | 15.3.3 | | https://charts.bitnami.com/bitnami | redis | 19.5.5 | -| https://jaegertracing.github.io/helm-charts | jaeger | 0.66.1 | From 960555e71a5a5a6e6e7b61beb73fa26797ca625c Mon Sep 17 00:00:00 2001 From: chisaato Date: Tue, 27 Aug 2024 19:15:47 +0800 Subject: [PATCH 6/7] chore: bump version Signed-off-by: chisaato --- charts/dragonfly/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/dragonfly/Chart.yaml b/charts/dragonfly/Chart.yaml index 57e2599c..c5a37673 100644 --- a/charts/dragonfly/Chart.yaml +++ b/charts/dragonfly/Chart.yaml @@ -3,8 +3,8 @@ name: dragonfly description: Dragonfly is an intelligent P2P based image and file distribution system icon: https://raw.githubusercontent.com/dragonflyoss/Dragonfly2/main/docs/images/logo/dragonfly.svg type: application -version: 1.2.2 -appVersion: 2.1.53 +version: 1.2.6 +appVersion: 2.1.56 keywords: - dragonfly - d7y From 58f2a60910d92d80ad43f3fce018f3c235550658 Mon Sep 17 00:00:00 2001 From: chisaato Date: Tue, 27 Aug 2024 19:19:13 +0800 Subject: [PATCH 7/7] chore: correct verions in bump Signed-off-by: chisaato --- charts/dragonfly/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/dragonfly/Chart.yaml b/charts/dragonfly/Chart.yaml index c5a37673..66ba2902 100644 --- a/charts/dragonfly/Chart.yaml +++ b/charts/dragonfly/Chart.yaml @@ -4,7 +4,7 @@ description: Dragonfly is an intelligent P2P based image and file distribution s icon: https://raw.githubusercontent.com/dragonflyoss/Dragonfly2/main/docs/images/logo/dragonfly.svg type: application version: 1.2.6 -appVersion: 2.1.56 +appVersion: 2.1.55 keywords: - dragonfly - d7y