mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
docs: improve helm ci & document (#2902)
This commit is contained in:
1
.github/helm/affine-cloud/.gitignore
vendored
Normal file
1
.github/helm/affine-cloud/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
charts/
|
||||||
2
.github/helm/affine-cloud/.helmignore
vendored
2
.github/helm/affine-cloud/.helmignore
vendored
@@ -20,4 +20,4 @@
|
|||||||
.project
|
.project
|
||||||
.idea/
|
.idea/
|
||||||
*.tmproj
|
*.tmproj
|
||||||
.vscode/
|
.vscode/
|
||||||
Binary file not shown.
30
.github/helm/affine-cloud/readme.md
vendored
Normal file
30
.github/helm/affine-cloud/readme.md
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Helm Chart Configuration
|
||||||
|
|
||||||
|
The following table lists the configurable parameters of this Helm chart and their default values.
|
||||||
|
|
||||||
|
## AFFiNE Cloud Server parameters
|
||||||
|
|
||||||
|
| Parameter | Description | Default |
|
||||||
|
| ------------------------------ | -------------------------------------------------- | ------------------ |
|
||||||
|
| `affineCloud.tag` | The Docker tag of the AffineCloud image to be used | `'nightly-latest'` |
|
||||||
|
| `affineCloud.resources.cpu` | The CPU resources allocated for AffineCloud | `'250m'` |
|
||||||
|
| `affineCloud.resources.memory` | The memory resources allocated for AffineCloud | `'0.5Gi'` |
|
||||||
|
| `affineCloud.signKey` | The key used to sign the JWT tokens | `'c2VjcmV0'` |
|
||||||
|
| `affineCloud.service.type` | The type of the Kubernetes service | `'ClusterIP'` |
|
||||||
|
| `affineCloud.service.port` | The port of the Kubernetes service | `'http'` |
|
||||||
|
| `affineCloud.mail.account` | The email account used to send emails | `''` |
|
||||||
|
| `affineCloud.mail.password` | The password of the email account | `''` |
|
||||||
|
|
||||||
|
## PostgreSQL parameters
|
||||||
|
|
||||||
|
| Parameter | Description | Default |
|
||||||
|
| -------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ |
|
||||||
|
| `postgresql.auth.username` | Username for the PostgreSQL database | `'affine'` |
|
||||||
|
| `postgresql.auth.password` | Password for the PostgreSQL database. Please change this for production environments. | `'password'` |
|
||||||
|
| `postgresql.auth.database` | The name of the default database that will be created on image startup | `'affine'` |
|
||||||
|
| `postgresql.primary.resources.limits.cpu` | The CPU resources allocated for the PostgreSQL primary node | `'500m'` |
|
||||||
|
| `postgresql.primary.resources.limits.memory` | The memory resources allocated for the PostgreSQL primary node | `'0.5Gi'` |
|
||||||
|
|
||||||
|
For more postgres parameters, please refer to: https://artifacthub.io/packages/helm/bitnami/postgresql
|
||||||
|
|
||||||
|
Please note that for the `postgresql.auth.password`, you should provide your own password for production environments. The default value is provided only for demonstration purposes.
|
||||||
51
.github/helm/affine-cloud/templates/_helper.tpl
vendored
Normal file
51
.github/helm/affine-cloud/templates/_helper.tpl
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "affine-cloud.name" -}}
|
||||||
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a default fully qualified app name.
|
||||||
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||||
|
If release name contains chart name it will be used as a full name.
|
||||||
|
*/}}
|
||||||
|
{{- define "affine-cloud.fullname" -}}
|
||||||
|
{{- if .Values.fullnameOverride }}
|
||||||
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||||
|
{{- if contains $name .Release.Name }}
|
||||||
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create chart name and version as used by the chart label.
|
||||||
|
*/}}
|
||||||
|
{{- define "affine-cloud.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "affine-cloud.labels" -}}
|
||||||
|
helm.sh/chart: {{ include "affine-cloud.chart" . }}
|
||||||
|
{{ include "affine-cloud.selectorLabels" . }}
|
||||||
|
{{- if .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "affine-cloud.selectorLabels" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "affine-cloud.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: affine-cloud
|
name: "{{ include "affine-cloud.fullname" . }}"
|
||||||
|
labels:
|
||||||
|
{{- include "affine-cloud.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
@@ -30,7 +32,7 @@ spec:
|
|||||||
- name: PG_HOST
|
- name: PG_HOST
|
||||||
value: "{{ .Release.Name }}-postgresql"
|
value: "{{ .Release.Name }}-postgresql"
|
||||||
- name: DATABASE_URL
|
- name: DATABASE_URL
|
||||||
value: "{{ default "postgresql://$(PG_USER):$(PG_PASS)@$(PG_HOST)/$(PG_DATABASE)" .Values.affineCloud.databaseUrl }}"
|
value: "{{ .Values.affineCloud.databaseUrl | default "postgresql://$(PG_USER):$(PG_PASS)@$(PG_HOST)/$(PG_DATABASE)" }}"
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: affine-cloud-secret
|
name: affine-cloud-secret
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ metadata:
|
|||||||
name: affine-cloud-secret
|
name: affine-cloud-secret
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
# only for demo, please modify it at prod env
|
SIGN_KEY: "{{ .Values.affineCloud.signKey }}"
|
||||||
SIGN_KEY: TUFtdFdzQTJhdGJuem01TA==
|
MAIL_ACCOUNT: "{{ .Values.affineCloud.mail.account }}"
|
||||||
# MAIL_ACCOUNT: XXXX
|
MAIL_PASSWORD: "{{ .Values.affineCloud.mail.password }}"
|
||||||
# MAIL_PASSWORD: XXXX
|
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: affine-cloud
|
name: "{{ include "affine-cloud.fullname" . }}"
|
||||||
|
labels:
|
||||||
|
{{- include "affine-cloud.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: "{{ .Values.affineCloud.service.type }}"
|
||||||
selector:
|
|
||||||
app: affine-cloud
|
|
||||||
ports:
|
ports:
|
||||||
- name: affine-cloud
|
- name: http
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
port: 3000
|
port: {{ .Values.affineCloud.service.port }}
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
|
selector:
|
||||||
|
{{- include "affine-cloud.selectorLabels" . | nindent 4 }}
|
||||||
|
|||||||
10
.github/helm/affine-cloud/values.yaml
vendored
10
.github/helm/affine-cloud/values.yaml
vendored
@@ -1,5 +1,13 @@
|
|||||||
affineCloud:
|
affineCloud:
|
||||||
tag: 'nightly-latest'
|
tag: 'nightly-latest'
|
||||||
|
# databaseUrl: 'postgresql://affine:password@affine-cloud-postgresql:5432/affine'
|
||||||
|
signKey: TUFtdFdzQTJhdGJuem01TA==
|
||||||
|
mail:
|
||||||
|
account: ''
|
||||||
|
password: ''
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 80
|
||||||
resources:
|
resources:
|
||||||
cpu: '250m'
|
cpu: '250m'
|
||||||
memory: 0.5Gi
|
memory: 0.5Gi
|
||||||
@@ -7,7 +15,7 @@ postgresql:
|
|||||||
auth:
|
auth:
|
||||||
# only for demo, please modify it at prod env
|
# only for demo, please modify it at prod env
|
||||||
username: affine
|
username: affine
|
||||||
password: XJYMLnuBJS27a2du
|
password: password
|
||||||
database: affine
|
database: affine
|
||||||
primary:
|
primary:
|
||||||
initdb:
|
initdb:
|
||||||
|
|||||||
@@ -39,19 +39,23 @@ jobs:
|
|||||||
- name: Package charts
|
- name: Package charts
|
||||||
working-directory: .helm-chart-repo
|
working-directory: .helm-chart-repo
|
||||||
run: |
|
run: |
|
||||||
set -ex
|
|
||||||
git config --local user.name "$GITHUB_ACTOR"
|
|
||||||
git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
||||||
mkdir -p .cr-index
|
mkdir -p .cr-index
|
||||||
owner=$(cut -d '/' -f 1 <<< '${{ github.repository }}')
|
|
||||||
repo=helm-charts
|
|
||||||
git_hash=$(git rev-parse HEAD)
|
|
||||||
echo $git_hash
|
|
||||||
|
|
||||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
helm repo update
|
helm repo update
|
||||||
|
|
||||||
|
helm dependencies build ../.github/helm/affine-cloud
|
||||||
cr package ../.github/helm/affine-cloud
|
cr package ../.github/helm/affine-cloud
|
||||||
|
|
||||||
|
- name: Package charts
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
working-directory: .helm-chart-repo
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
git config --local user.name "$GITHUB_ACTOR"
|
||||||
|
git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
owner=$(cut -d '/' -f 1 <<< '${{ github.repository }}')
|
||||||
|
repo=helm-charts
|
||||||
|
git_hash=$(git rev-parse HEAD)
|
||||||
cr upload --commit "$git_hash" \
|
cr upload --commit "$git_hash" \
|
||||||
--git-repo "$repo" --owner "$owner" \
|
--git-repo "$repo" --owner "$owner" \
|
||||||
--token '${{ secrets.HELM_RELEASER_TOKEN }}' \
|
--token '${{ secrets.HELM_RELEASER_TOKEN }}' \
|
||||||
Reference in New Issue
Block a user