From 5275ff54932f03a4a20353db4051870ae10a58cf Mon Sep 17 00:00:00 2001 From: DarkSky <25152247+darkskygit@users.noreply.github.com> Date: Tue, 27 Jun 2023 21:00:41 +0800 Subject: [PATCH] feat: add affine cloud helm config (#2870) --- .github/helm/affine-cloud/.helmignore | 23 ++++++++ .github/helm/affine-cloud/Chart.lock | 6 +++ .github/helm/affine-cloud/Chart.yaml | 12 +++++ .../affine-cloud/charts/postgresql-12.5.8.tgz | Bin 0 -> 56368 bytes .../affine-cloud/templates/deployment.yaml | 49 ++++++++++++++++++ .../helm/affine-cloud/templates/secret.yaml | 10 ++++ .../helm/affine-cloud/templates/services.yaml | 13 +++++ .github/helm/affine-cloud/values.yaml | 21 ++++++++ 8 files changed, 134 insertions(+) create mode 100644 .github/helm/affine-cloud/.helmignore create mode 100644 .github/helm/affine-cloud/Chart.lock create mode 100644 .github/helm/affine-cloud/Chart.yaml create mode 100644 .github/helm/affine-cloud/charts/postgresql-12.5.8.tgz create mode 100644 .github/helm/affine-cloud/templates/deployment.yaml create mode 100644 .github/helm/affine-cloud/templates/secret.yaml create mode 100644 .github/helm/affine-cloud/templates/services.yaml create mode 100644 .github/helm/affine-cloud/values.yaml diff --git a/.github/helm/affine-cloud/.helmignore b/.github/helm/affine-cloud/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/.github/helm/affine-cloud/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/.github/helm/affine-cloud/Chart.lock b/.github/helm/affine-cloud/Chart.lock new file mode 100644 index 0000000000..e43c19b00a --- /dev/null +++ b/.github/helm/affine-cloud/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 12.5.8 +digest: sha256:c91c0dc1370e879538dc9d6e435e731a726ef99d6a3b081372318483792b48a7 +generated: "2023-06-27T18:34:12.683806+08:00" diff --git a/.github/helm/affine-cloud/Chart.yaml b/.github/helm/affine-cloud/Chart.yaml new file mode 100644 index 0000000000..fa4e1695e6 --- /dev/null +++ b/.github/helm/affine-cloud/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: affine-cloud +description: A Helm chart for AFFiNE Cloud + +type: application +version: 0.6.0 +appVersion: '0.6.0' + +dependencies: + - name: postgresql + version: 12.5.8 + repository: https://charts.bitnami.com/bitnami diff --git a/.github/helm/affine-cloud/charts/postgresql-12.5.8.tgz b/.github/helm/affine-cloud/charts/postgresql-12.5.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1c2df405105ac1344361d98a4155730ff9fe2171 GIT binary patch literal 56368 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μ-Y@iG=k56Q-(PIsqO{T{>`PweDo`d1?c7_fo% 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 literal 0 HcmV?d00001 diff --git a/.github/helm/affine-cloud/templates/deployment.yaml b/.github/helm/affine-cloud/templates/deployment.yaml new file mode 100644 index 0000000000..37acfc45fa --- /dev/null +++ b/.github/helm/affine-cloud/templates/deployment.yaml @@ -0,0 +1,49 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: affine-cloud +spec: + replicas: 1 + selector: + matchLabels: + app: affine-cloud + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 2 + template: + metadata: + labels: + app: affine-cloud + spec: + restartPolicy: Always + containers: + - name: affine-cloud + image: "ghcr.io/toeverything/cloud-self-hosted:{{ .Values.affineCloud.tag | default .Chart.AppVersion }}" + env: + - name: PG_USER + value: "{{ .Values.postgresql.auth.username }}" + - name: PG_PASS + value: "{{ .Values.postgresql.auth.password }}" + - name: PG_DATABASE + value: "{{ .Values.postgresql.auth.database }}" + - name: PG_HOST + value: "{{ .Release.Name }}-postgresql" + - name: DATABASE_URL + value: "{{ default "postgresql://$(PG_USER):$(PG_PASS)@$(PG_HOST)/$(PG_DATABASE)" .Values.affineCloud.databaseUrl }}" + envFrom: + - secretRef: + name: affine-cloud-secret + ports: + - containerPort: 3000 + livenessProbe: + httpGet: + path: /api/healthz + port: 3000 + failureThreshold: 1 + initialDelaySeconds: 10 + periodSeconds: 10 + resources: + limits: + cpu: "{{ .Values.affineCloud.resources.cpu }}" + memory: "{{ .Values.affineCloud.resources.memory }}" diff --git a/.github/helm/affine-cloud/templates/secret.yaml b/.github/helm/affine-cloud/templates/secret.yaml new file mode 100644 index 0000000000..170a5b90d1 --- /dev/null +++ b/.github/helm/affine-cloud/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: affine-cloud-secret +type: Opaque +data: + # only for demo, please modify it at prod env + SIGN_KEY: TUFtdFdzQTJhdGJuem01TA== +# MAIL_ACCOUNT: XXXX +# MAIL_PASSWORD: XXXX diff --git a/.github/helm/affine-cloud/templates/services.yaml b/.github/helm/affine-cloud/templates/services.yaml new file mode 100644 index 0000000000..ec0b2f8c72 --- /dev/null +++ b/.github/helm/affine-cloud/templates/services.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: affine-cloud +spec: + type: ClusterIP + selector: + app: affine-cloud + ports: + - name: affine-cloud + protocol: TCP + port: 3000 + targetPort: 3000 diff --git a/.github/helm/affine-cloud/values.yaml b/.github/helm/affine-cloud/values.yaml new file mode 100644 index 0000000000..e1bad387ea --- /dev/null +++ b/.github/helm/affine-cloud/values.yaml @@ -0,0 +1,21 @@ +affineCloud: + tag: 'nightly-latest' + resources: + cpu: '250m' + memory: 0.5Gi +postgresql: + auth: + # only for demo, please modify it at prod env + username: affine + password: XJYMLnuBJS27a2du + database: affine + primary: + initdb: + scripts: + 01-init.sql: | + CREATE DATABASE affine_binary; + GRANT ALL PRIVILEGES ON DATABASE affine_binary TO affine; + resources: + limits: + cpu: '500m' + memory: 0.5Gi