mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-06-26 06:15:20 +08:00
feat: k8s
This commit is contained in:
parent
bb4c44f786
commit
30e88ca766
4
.gitignore
vendored
4
.gitignore
vendored
@ -29,7 +29,7 @@ tmp/
|
|||||||
bin/
|
bin/
|
||||||
output/
|
output/
|
||||||
_output/
|
_output/
|
||||||
deployments/charts/generated-configs/
|
kubernetes/charts/generated-configs/
|
||||||
|
|
||||||
### OpenIM Config ###
|
### OpenIM Config ###
|
||||||
.env
|
.env
|
||||||
@ -37,7 +37,7 @@ config/config.yaml
|
|||||||
config/notification.yaml
|
config/notification.yaml
|
||||||
|
|
||||||
### OpenIM deploy ###
|
### OpenIM deploy ###
|
||||||
deployments/openim-server/charts
|
kubernetes/openim-server/charts
|
||||||
|
|
||||||
# files used by the developer
|
# files used by the developer
|
||||||
.idea.md
|
.idea.md
|
||||||
|
34
build/build.sh
Normal file
34
build/build.sh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CYAN='\033[0;36m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
RED='\033[0;31m'
|
||||||
|
NO_COLOR='\033[0m'
|
||||||
|
|
||||||
|
BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
IMAGE_DIR="$BASE_DIR/images"
|
||||||
|
|
||||||
|
if [[ ! -d "$IMAGE_DIR" ]]; then
|
||||||
|
echo -e "${RED}dir $IMAGE_DIR not exist!${NO_COLOR}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for dir in "$IMAGE_DIR"/*/; do
|
||||||
|
[[ -d "$dir" ]] || continue
|
||||||
|
|
||||||
|
name="$(basename "$dir")"
|
||||||
|
dockerfile="$dir/Dockerfile"
|
||||||
|
|
||||||
|
if [[ -f "$dockerfile" ]]; then
|
||||||
|
echo -e "${CYAN}Building ${name}:test...${NO_COLOR}"
|
||||||
|
build_context="${dir}../../../"
|
||||||
|
if docker build -t "${name}:test" -f "$dockerfile" "$build_context"; then
|
||||||
|
echo -e "${GREEN}Successfully built ${name}:test${NO_COLOR}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}Failed to build ${name}:test${NO_COLOR}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}Skipping ${name}: Dockerfile not found${NO_COLOR}"
|
||||||
|
fi
|
||||||
|
done
|
@ -1,19 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: docker-secret
|
|
||||||
namespace: default
|
|
||||||
type: kubernetes.io/dockerconfigjson
|
|
||||||
data:
|
|
||||||
# {
|
|
||||||
# "auths": {
|
|
||||||
# "your.registry.com": {
|
|
||||||
# "username": "username",
|
|
||||||
# "password": "psw",
|
|
||||||
# "email": "openim@example.com",
|
|
||||||
# "auth": "dXNlcm5hbWU6cHN3"
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
# Base64 encoded .docerconfigjson content
|
|
||||||
.dockerconfigjson: "ewogICJhdXRocyI6IHsKICAgICJ5b3VyLnJlZ2lzdHJ5LmNvbSI6IHsKICAgICAgInVzZXJuYW1lIjogInVzZXJuYW1lIiwKICAgICAgInBhc3N3b3JkIjogInBzdyIsCiAgICAgICJlbWFpbCI6ICAgICJvcGVuaW1AZXhhbXBsZS5jb20iLAogICAgICAiYXV0aCI6ICAgICAiZFhObGNtNWhiV1U2Y0hOMyIKICAgIH0KICB9Cn0="
|
|
@ -1,8 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: openim-minio-secret
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
minio-root-user: cm9vdA== # Base64 encoded "root"
|
|
||||||
minio-root-password: b3BlbklNMTIz # Base64 encoded "openIM123"
|
|
@ -1,8 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: openim-mongo-secret
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
mongo_openim_username: b3BlbklN # base64 for "openIM", this user credentials need in authSource database.
|
|
||||||
mongo_openim_password: b3BlbklNMTIz # base64 for "openIM123"
|
|
@ -12,10 +12,9 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: openim-msgtransfer-server
|
app: openim-msgtransfer-server
|
||||||
spec:
|
spec:
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-secret
|
|
||||||
containers:
|
containers:
|
||||||
- name: openim-msgtransfer-container
|
- name: openim-msgtransfer-container
|
||||||
|
# image: openim/openim-msgtransfer:v3.8.3
|
||||||
image: openim-msgtransfer:test
|
image: openim-msgtransfer:test
|
||||||
env:
|
env:
|
||||||
- name: CONFIG_PATH
|
- name: CONFIG_PATH
|
||||||
@ -35,6 +34,11 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_openim_password
|
key: mongo_openim_password
|
||||||
|
- name: IMENV_KAFKA_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-username
|
||||||
- name: IMENV_KAFKA_PASSWORD
|
- name: IMENV_KAFKA_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: push-rpc-server
|
app: push-rpc-server
|
||||||
spec:
|
spec:
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-secret
|
|
||||||
containers:
|
containers:
|
||||||
- name: push-rpc-server-container
|
- name: push-rpc-server-container
|
||||||
|
# image: openim/openim-push:v3.8.3
|
||||||
image: openim-push:test
|
image: openim-push:test
|
||||||
env:
|
env:
|
||||||
- name: CONFIG_PATH
|
- name: CONFIG_PATH
|
||||||
@ -25,6 +24,11 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-redis-secret
|
name: openim-redis-secret
|
||||||
key: redis-password
|
key: redis-password
|
||||||
|
- name: IMENV_KAFKA_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-username
|
||||||
- name: IMENV_KAFKA_PASSWORD
|
- name: IMENV_KAFKA_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: msg-rpc-server
|
app: msg-rpc-server
|
||||||
spec:
|
spec:
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-secret
|
|
||||||
containers:
|
containers:
|
||||||
- name: msg-rpc-server-container
|
- name: msg-rpc-server-container
|
||||||
|
# image: openim/openim-rpc-msg:v3.8.3
|
||||||
image: openim-rpc-msg:test
|
image: openim-rpc-msg:test
|
||||||
env:
|
env:
|
||||||
- name: CONFIG_PATH
|
- name: CONFIG_PATH
|
||||||
@ -35,6 +34,11 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_openim_password
|
key: mongo_openim_password
|
||||||
|
- name: IMENV_KAFKA_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-username
|
||||||
- name: IMENV_KAFKA_PASSWORD
|
- name: IMENV_KAFKA_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: user-rpc-server
|
app: user-rpc-server
|
||||||
spec:
|
spec:
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-secret
|
|
||||||
containers:
|
containers:
|
||||||
- name: user-rpc-server-container
|
- name: user-rpc-server-container
|
||||||
|
# image: openim/openim-rpc-user:v3.8.3
|
||||||
image: openim-rpc-user:test
|
image: openim-rpc-user:test
|
||||||
env:
|
env:
|
||||||
- name: CONFIG_PATH
|
- name: CONFIG_PATH
|
||||||
@ -35,6 +34,11 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_openim_password
|
key: mongo_openim_password
|
||||||
|
- name: IMENV_KAFKA_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-username
|
||||||
- name: IMENV_KAFKA_PASSWORD
|
- name: IMENV_KAFKA_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
18
kubernetes/deploy/secrets/docker-secret.yml
Normal file
18
kubernetes/deploy/secrets/docker-secret.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: docker-secret
|
||||||
|
namespace: default
|
||||||
|
type: kubernetes.io/dockerconfigjson
|
||||||
|
stringData:
|
||||||
|
.dockerconfigjson: |
|
||||||
|
{
|
||||||
|
"auths": {
|
||||||
|
"your.registry.com": {
|
||||||
|
"username": "username",
|
||||||
|
"password": "psw",
|
||||||
|
"email": "openim@example.com",
|
||||||
|
"auth": "dXNlcm5hbWU6cHN3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -3,5 +3,8 @@ kind: Secret
|
|||||||
metadata:
|
metadata:
|
||||||
name: openim-kafka-secret
|
name: openim-kafka-secret
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
stringData:
|
||||||
|
inter-broker-user: ""
|
||||||
|
inter-broker-password: ""
|
||||||
|
kafka-username: ""
|
||||||
kafka-password: ""
|
kafka-password: ""
|
8
kubernetes/deploy/secrets/minio-secret.yml
Normal file
8
kubernetes/deploy/secrets/minio-secret.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: openim-minio-secret
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
minio-root-user: root
|
||||||
|
minio-root-password: openIM123
|
11
kubernetes/deploy/secrets/mongo-secret.yml
Normal file
11
kubernetes/deploy/secrets/mongo-secret.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: openim-mongo-secret
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
mongo_initdb_root_username: root
|
||||||
|
mongo_initdb_root_password: openIM123
|
||||||
|
mongo_initdb_database: openim_v3
|
||||||
|
mongo_openim_username: openIM
|
||||||
|
mongo_openim_password: openIM123
|
@ -3,5 +3,5 @@ kind: Secret
|
|||||||
metadata:
|
metadata:
|
||||||
name: openim-redis-secret
|
name: openim-redis-secret
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
stringData:
|
||||||
redis-password: b3BlbklNMTIz # "openIM123" in base64
|
redis-password: openIM123
|
@ -4,6 +4,6 @@ metadata:
|
|||||||
name: openim-api-tls
|
name: openim-api-tls
|
||||||
namespace: default
|
namespace: default
|
||||||
type: kubernetes.io/tls
|
type: kubernetes.io/tls
|
||||||
data:
|
stringData:
|
||||||
tls.crt: <base64-encoded-tls.crt>
|
tls.crt: <tls.crt>
|
||||||
tls.key: <base64-encoded-tls.key>
|
tls.key: <tls.key>
|
@ -49,6 +49,26 @@ spec:
|
|||||||
value: "CONTROLLER"
|
value: "CONTROLLER"
|
||||||
- name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE
|
- name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE
|
||||||
value: "true"
|
value: "true"
|
||||||
|
- name: KAFKA_INTER_BROKER_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: inter-broker-user
|
||||||
|
- name: KAFKA_INTER_BROKER_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: inter-broker-password
|
||||||
|
- name: KAFKA_CLIENT_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-username
|
||||||
|
- name: KAFKA_CLIENT_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: openim-kafka-secret
|
||||||
|
key: kafka-password
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: kafka-data
|
- name: kafka-data
|
||||||
mountPath: /bitnami/kafka
|
mountPath: /bitnami/kafka
|
@ -47,27 +47,27 @@ spec:
|
|||||||
- name: MONGO_INITDB_ROOT_USERNAME
|
- name: MONGO_INITDB_ROOT_USERNAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-init-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_initdb_root_username
|
key: mongo_initdb_root_username
|
||||||
- name: MONGO_INITDB_ROOT_PASSWORD
|
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-init-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_initdb_root_password
|
key: mongo_initdb_root_password
|
||||||
- name: MONGO_INITDB_DATABASE
|
- name: MONGO_INITDB_DATABASE
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-init-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_initdb_database
|
key: mongo_initdb_database
|
||||||
- name: MONGO_OPENIM_USERNAME
|
- name: MONGO_OPENIM_USERNAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-init-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_openim_username
|
key: mongo_openim_username
|
||||||
- name: MONGO_OPENIM_PASSWORD
|
- name: MONGO_OPENIM_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: openim-mongo-init-secret
|
name: openim-mongo-secret
|
||||||
key: mongo_openim_password
|
key: mongo_openim_password
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "Asia/Shanghai"
|
value: "Asia/Shanghai"
|
||||||
@ -94,15 +94,3 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: openim-mongo-init-secret
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
mongo_initdb_root_username: cm9vdA== # base64 for "root"
|
|
||||||
mongo_initdb_root_password: b3BlbklNMTIz # base64 for "openIM123"
|
|
||||||
mongo_initdb_database: b3BlbmltX3Yz # base64 for "openim_v3"
|
|
||||||
mongo_openim_username: b3BlbklN # base64 for "openIM"
|
|
||||||
mongo_openim_password: b3BlbklNMTIz # base64 for "openIM123"
|
|
@ -2,10 +2,8 @@ apiVersion: apps/v1
|
|||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
metadata:
|
metadata:
|
||||||
name: redis-statefulset
|
name: redis-statefulset
|
||||||
labels:
|
|
||||||
app: redis
|
|
||||||
spec:
|
spec:
|
||||||
serviceName: "redis-service"
|
serviceName: "redis"
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
@ -20,7 +18,6 @@ spec:
|
|||||||
image: redis:7.0.0
|
image: redis:7.0.0
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 6379
|
- containerPort: 6379
|
||||||
name: redis
|
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: "Asia/Shanghai"
|
value: "Asia/Shanghai"
|
||||||
@ -33,18 +30,26 @@ spec:
|
|||||||
- name: redis-data
|
- name: redis-data
|
||||||
mountPath: /data
|
mountPath: /data
|
||||||
command:
|
command:
|
||||||
- /bin/sh
|
[
|
||||||
- -c
|
"/bin/sh",
|
||||||
- |
|
"-c",
|
||||||
redis-server \
|
'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes',
|
||||||
--requirepass "$REDIS_PASSWORD" \
|
]
|
||||||
--appendonly yes \
|
volumes:
|
||||||
--dir /data
|
- name: redis-config-volume
|
||||||
volumeClaimTemplates:
|
configMap:
|
||||||
- metadata:
|
name: openim-config
|
||||||
name: redis-data
|
- name: redis-data
|
||||||
spec:
|
persistentVolumeClaim:
|
||||||
accessModes: ["ReadWriteOnce"]
|
claimName: redis-pvc
|
||||||
resources:
|
---
|
||||||
requests:
|
apiVersion: v1
|
||||||
storage: 5Gi
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: redis-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 5Gi
|
Loading…
x
Reference in New Issue
Block a user