Skip to content

Commit

Permalink
perf: 支持 Sentinel
Browse files Browse the repository at this point in the history
  • Loading branch information
wojiushixiaobai committed Dec 27, 2023
1 parent c096643 commit 9418b4e
Show file tree
Hide file tree
Showing 15 changed files with 327 additions and 26 deletions.
19 changes: 18 additions & 1 deletion charts/jumpserver/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,14 @@ helm repo add jumpserver https://jumpserver.github.io/helm-charts

### 总览

`global.imageRegistry``global.imageOwner` 用于指定镜像仓库地址和用户名,如果使用私有仓库,还需要需要设置 `global.imagePullSecrets` 参数,用于指定私有仓库认证凭据。

| 参数 | 描述 | 默认值 |
| ------------------------- | ------------------ | ----------- |
| `nameOveride` | name override | `nil` |
| `fullNameOveride` | full name override | `nil` |
| `global.imageRegistry` | 仓库地址 | `docker.io` |
| `global.imageOwner` | 仓库用户名 | `jumpserver` |
| `global.imagePullSecrets` | 私有仓库认证凭据 | `nil` |
| `global.storageClass` | 存储 sc | `nil` |
| `ingress.enabled` | 开启 ingress | `true` |
Expand All @@ -44,6 +47,8 @@ helm repo add jumpserver https://jumpserver.github.io/helm-charts

### 必填

如果 `global` 中的参数和其他组件中的参数同时存在,将优先使用 `global` 中的参数。

| 参数 | 描述 | 默认值 |
| ------------------------------ | ---------------------------------------------| ---------------------- |
| `global.storageClass` | 持久化存储 | `nil` |
Expand All @@ -59,13 +64,25 @@ helm repo add jumpserver https://jumpserver.github.io/helm-charts
| `externalRedis.port` | redis 端口 | `6379` |
| `externalRedis.password` | redis 密码 | `nil` |

### Redis Sentinel

配置 `externalSentinel` 参数后,将优先使用 `Sentinel``Redis` 即使配置也不会使用。
注意:`Sentinel` 密码和 `Redis` 密码需要分别设置。

| 参数 | 描述 | 默认值 |
| -------------------------------- | ---------------------------------------------| --------------------- |
| `externalSentinel.hosts` | Sentinel 地址池 | `nil` |
| `externalSentinel.password` | Sentinel 认证密码 | `6379` |
| `externalRedis.password` | redis 密码 | `nil` |
| `externalSentinel.socketTimeout` | Sentinel 超时时间,单位 秒(s) | `5` |

### 其他

| 参数 | 描述 | 默认值 |
| --------------------- | --------------------------------------------------------- | ------- |
| `log.level` | 日志等级 | `INFO` |
| `replicaCount` | 副本数量 | `1` |
| `persistence` | 持久化存储相关设置 | `nil` |
| `persistence` | 持久化存储相关设置 | `nil` |

`helm install` 时通过 `--set key=value[,key=value]` 指定参数. 举例:

Expand Down
28 changes: 28 additions & 0 deletions charts/jumpserver/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,28 @@ Define JumpServer database.
{{- .Values.externalDatabase.database -}}
{{- end -}}

{{/*
Define JumpServer sentinel.
*/}}

{{- define "jumpserver.sentinel.hosts" -}}
{{- if .Values.externalSentinel.hosts -}}
{{- .Values.externalSentinel.hosts -}}
{{- end -}}
{{- end -}}

{{- define "jumpserver.sentinel.password" -}}
{{- if .Values.externalSentinel.password -}}
{{- .Values.externalSentinel.password -}}
{{- end -}}
{{- end -}}

{{- define "jumpserver.sentinel.socketTimeout" -}}
{{- if .Values.externalSentinel.socketTimeout -}}
{{- .Values.externalSentinel.socketTimeout -}}
{{- end -}}
{{- end -}}

{{/*
Define JumpServer redis.
*/}}
Expand All @@ -98,16 +120,22 @@ Define JumpServer redis.
{{- end -}}

{{- define "jumpserver.redis.host" -}}
{{- if .Values.externalRedis.host -}}
{{- .Values.externalRedis.host -}}
{{- end -}}
{{- end -}}

{{- define "jumpserver.redis.port" -}}
{{- if .Values.externalRedis.port -}}
{{- .Values.externalRedis.port -}}
{{- end -}}
{{- end -}}

{{- define "jumpserver.redis.password" -}}
{{- if .Values.externalRedis.password -}}
{{- .Values.externalRedis.password -}}
{{- end -}}
{{- end -}}

{{/*
Define JumpServer StorageClass.
Expand Down
23 changes: 21 additions & 2 deletions charts/jumpserver/templates/celery/deployment-celery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-celery" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $mysqlPort := printf "%s" (include "jumpserver.magnus.mysql.port" $) }}
{{- $mariadbPort := printf "%s" (include "jumpserver.magnus.mariadb.port" $) }}
{{- $redisPort := printf "%s" (include "jumpserver.magnus.redis.port" $) }}
{{- $postgresqlPort := printf "%s" (include "jumpserver.magnus.postgresql.port" $) }}
{{- $oraclePorts := printf "%s" (include "jumpserver.magnus.oracle.ports" $) }}
{{- $imageName := $.Values.xpack.enabled | ternary "jumpserver/core-ee" "jumpserver/core-ce" }}
{{- $imageName := $.Values.xpack.enabled | ternary "core-ee" "core-ce" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -69,12 +70,30 @@ spec:
value: {{ include "jumpserver.database.password" $ | quote }}
- name: DB_NAME
value: {{ include "jumpserver.database.database" $ | quote }}
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
- name: MAGNUS_MYSQL_PORT
value: {{ $mysqlPort | quote }}
- name: MAGNUS_MARIADB_PORT
Expand Down
29 changes: 27 additions & 2 deletions charts/jumpserver/templates/chen/deployment-chen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-chen" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageName := "jumpserver/chen" }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $imageName := "chen" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -50,6 +51,30 @@ spec:
value: {{ .config.log.level | quote }}
- name: listening_port
value: {{ .service.web.port | quote }}
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
{{- range $key, $val := .env }}
- name: {{ $key }}
value: {{ $val | quote }}
Expand Down
23 changes: 21 additions & 2 deletions charts/jumpserver/templates/core/deployment-core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-core" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $mysqlPort := printf "%s" (include "jumpserver.magnus.mysql.port" $) }}
{{- $mariadbPort := printf "%s" (include "jumpserver.magnus.mariadb.port" $) }}
{{- $redisPort := printf "%s" (include "jumpserver.magnus.redis.port" $) }}
{{- $postgresqlPort := printf "%s" (include "jumpserver.magnus.postgresql.port" $) }}
{{- $oraclePorts := printf "%s" (include "jumpserver.magnus.oracle.ports" $) }}
{{- $imageName := $.Values.xpack.enabled | ternary "jumpserver/core-ee" "jumpserver/core-ce" }}
{{- $imageName := $.Values.xpack.enabled | ternary "core-ee" "core-ce" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -72,12 +73,30 @@ spec:
value: {{ include "jumpserver.database.password" $ | quote }}
- name: DB_NAME
value: {{ include "jumpserver.database.database" $ | quote }}
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
- name: MAGNUS_MYSQL_PORT
value: {{ $mysqlPort | quote }}
- name: MAGNUS_MARIADB_PORT
Expand Down
23 changes: 21 additions & 2 deletions charts/jumpserver/templates/kael/deployment-kael.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-kael" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageName := "jumpserver/kael" }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $imageName := "kael" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -59,12 +60,30 @@ spec:
value: {{ .service.web.port | quote }}
- name: SHARE_ROOM_TYPE
value: "redis"
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
{{- range $key, $val := .env }}
- name: {{ $key }}
value: {{ $val | quote }}
Expand Down
23 changes: 21 additions & 2 deletions charts/jumpserver/templates/koko/deployment-koko.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-koko" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageName := "jumpserver/koko" }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $imageName := "koko" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -63,12 +64,30 @@ spec:
value: "false"
- name: SHARE_ROOM_TYPE
value: "redis"
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
{{- range $key, $val := .env }}
- name: {{ $key }}
value: {{ $val | quote }}
Expand Down
23 changes: 21 additions & 2 deletions charts/jumpserver/templates/lion/deployment-lion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
{{- $fullName := include "jumpserver.fullname" $ }}
{{- $containerName := "jms-lion" }}
{{- $registryName := $.Values.global.imageRegistry | default .image.registry }}
{{- $imageName := "jumpserver/lion" }}
{{- $imageOwner := $.Values.global.imageOwner | default "jumpserver" }}
{{- $imageName := "lion" }}
{{- $imageTag := "v3.10.0" }}
{{- $imageWithTag := printf "%s/%s:%s" $registryName $imageName $imageTag | quote }}
{{- $imageWithTag := printf "%s/%s/%s:%s" $registryName $imageOwner $imageName $imageTag | quote }}

apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -56,12 +57,30 @@ spec:
value: {{ .service.web.port | quote }}
- name: SHARE_ROOM_TYPE
value: "redis"
{{- if include "jumpserver.sentinel.hosts" $ }}
- name: REDIS_SENTINEL_HOSTS
value: {{ include "jumpserver.sentinel.hosts" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.password" $ }}
- name: REDIS_SENTINEL_PASSWORD
value: {{ include "jumpserver.sentinel.password" $ | quote }}
{{- end }}
{{- if include "jumpserver.sentinel.socketTimeout" $ }}
- name: REDIS_SENTINEL_SOCKET_TIMEOUT
value: {{ include "jumpserver.sentinel.socketTimeout" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.host" $ }}
- name: REDIS_HOST
value: {{ include "jumpserver.redis.host" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.port" $ }}
- name: REDIS_PORT
value: {{ include "jumpserver.redis.port" $ | quote }}
{{- end }}
{{- if include "jumpserver.redis.password" $ }}
- name: REDIS_PASSWORD
value: {{ include "jumpserver.redis.password" $ | quote }}
{{- end }}
{{- range $key, $val := .env }}
- name: {{ $key }}
value: {{ $val | quote }}
Expand Down
Loading

0 comments on commit 9418b4e

Please sign in to comment.