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/
|
||||
output/
|
||||
_output/
|
||||
deployments/charts/generated-configs/
|
||||
kubernetes/charts/generated-configs/
|
||||
|
||||
### OpenIM Config ###
|
||||
.env
|
||||
@ -37,7 +37,7 @@ config/config.yaml
|
||||
config/notification.yaml
|
||||
|
||||
### OpenIM deploy ###
|
||||
deployments/openim-server/charts
|
||||
kubernetes/openim-server/charts
|
||||
|
||||
# files used by the developer
|
||||
.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:
|
||||
app: openim-msgtransfer-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: docker-secret
|
||||
containers:
|
||||
- name: openim-msgtransfer-container
|
||||
# image: openim/openim-msgtransfer:v3.8.3
|
||||
image: openim-msgtransfer:test
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
@ -35,6 +34,11 @@ spec:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-username
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
||||
labels:
|
||||
app: push-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: docker-secret
|
||||
containers:
|
||||
- name: push-rpc-server-container
|
||||
# image: openim/openim-push:v3.8.3
|
||||
image: openim-push:test
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
@ -25,6 +24,11 @@ spec:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_KAFKA_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-username
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
||||
labels:
|
||||
app: msg-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: docker-secret
|
||||
containers:
|
||||
- name: msg-rpc-server-container
|
||||
# image: openim/openim-rpc-msg:v3.8.3
|
||||
image: openim-rpc-msg:test
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
@ -35,6 +34,11 @@ spec:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-username
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
@ -12,10 +12,9 @@ spec:
|
||||
labels:
|
||||
app: user-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: docker-secret
|
||||
containers:
|
||||
- name: user-rpc-server-container
|
||||
# image: openim/openim-rpc-user:v3.8.3
|
||||
image: openim-rpc-user:test
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
@ -35,6 +34,11 @@ spec:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-username
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
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:
|
||||
name: openim-kafka-secret
|
||||
type: Opaque
|
||||
data:
|
||||
stringData:
|
||||
inter-broker-user: ""
|
||||
inter-broker-password: ""
|
||||
kafka-username: ""
|
||||
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:
|
||||
name: openim-redis-secret
|
||||
type: Opaque
|
||||
data:
|
||||
redis-password: b3BlbklNMTIz # "openIM123" in base64
|
||||
stringData:
|
||||
redis-password: openIM123
|
@ -4,6 +4,6 @@ metadata:
|
||||
name: openim-api-tls
|
||||
namespace: default
|
||||
type: kubernetes.io/tls
|
||||
data:
|
||||
tls.crt: <base64-encoded-tls.crt>
|
||||
tls.key: <base64-encoded-tls.key>
|
||||
stringData:
|
||||
tls.crt: <tls.crt>
|
||||
tls.key: <tls.key>
|
@ -49,6 +49,26 @@ spec:
|
||||
value: "CONTROLLER"
|
||||
- name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE
|
||||
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:
|
||||
- name: kafka-data
|
||||
mountPath: /bitnami/kafka
|
@ -47,27 +47,27 @@ spec:
|
||||
- name: MONGO_INITDB_ROOT_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
name: openim-mongo-secret
|
||||
key: mongo_initdb_root_username
|
||||
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
name: openim-mongo-secret
|
||||
key: mongo_initdb_root_password
|
||||
- name: MONGO_INITDB_DATABASE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
name: openim-mongo-secret
|
||||
key: mongo_initdb_database
|
||||
- name: MONGO_OPENIM_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: MONGO_OPENIM_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
@ -94,15 +94,3 @@ spec:
|
||||
requests:
|
||||
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
|
||||
metadata:
|
||||
name: redis-statefulset
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
serviceName: "redis-service"
|
||||
serviceName: "redis"
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
@ -20,7 +18,6 @@ spec:
|
||||
image: redis:7.0.0
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: redis
|
||||
env:
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
@ -33,18 +30,26 @@ spec:
|
||||
- name: redis-data
|
||||
mountPath: /data
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
redis-server \
|
||||
--requirepass "$REDIS_PASSWORD" \
|
||||
--appendonly yes \
|
||||
--dir /data
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: redis-data
|
||||
spec:
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
[
|
||||
"/bin/sh",
|
||||
"-c",
|
||||
'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes',
|
||||
]
|
||||
volumes:
|
||||
- name: redis-config-volume
|
||||
configMap:
|
||||
name: openim-config
|
||||
- name: redis-data
|
||||
persistentVolumeClaim:
|
||||
claimName: redis-pvc
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: redis-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
Loading…
x
Reference in New Issue
Block a user