parent
4e4c49405d
commit
810f3d2928
@ -0,0 +1,70 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
namespace: social
|
||||||
|
name: minio
|
||||||
|
labels:
|
||||||
|
app: minio
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: minio
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: minio
|
||||||
|
labels:
|
||||||
|
app: minio
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: minio
|
||||||
|
image: minio/minio
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
env:
|
||||||
|
- name: MINIO_ROOT_USER
|
||||||
|
value: "root"
|
||||||
|
- name: MINIO_ROOT_PASSWORD
|
||||||
|
value: "openIM123"
|
||||||
|
args:
|
||||||
|
- server
|
||||||
|
- --console-address
|
||||||
|
- :9001
|
||||||
|
- /data
|
||||||
|
ports:
|
||||||
|
- containerPort: 9000
|
||||||
|
- containerPort: 9001
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /minio/health/ready
|
||||||
|
port: 9000
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
periodSeconds: 20
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /minio/health/live
|
||||||
|
port: 9000
|
||||||
|
initialDelaySeconds: 120
|
||||||
|
periodSeconds: 20
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: social
|
||||||
|
namespace: social
|
||||||
|
labels:
|
||||||
|
name: social
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: social
|
||||||
|
ports:
|
||||||
|
- name: minio-dashboard
|
||||||
|
port: 30046
|
||||||
|
targetPort: 9001
|
||||||
|
nodePort: 30046
|
||||||
|
- name: rpc
|
||||||
|
port: 30047
|
||||||
|
targetPort: 9000
|
||||||
|
nodePort: 30047
|
||||||
|
type: NodePort
|
@ -0,0 +1,58 @@
|
|||||||
|
# mongo
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
namespace: social
|
||||||
|
name: mongo
|
||||||
|
labels:
|
||||||
|
app: mongo
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: mongo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: mongo
|
||||||
|
labels:
|
||||||
|
app: mongo
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: mongo
|
||||||
|
image: mongo:6.0.2
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 27017
|
||||||
|
protocol: TCP
|
||||||
|
env:
|
||||||
|
- name: MONGO_INITDB_ROOT_USERNAME
|
||||||
|
value: root
|
||||||
|
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||||
|
value: openIM123
|
||||||
|
- name: MONGO_INITDB_DATABASE
|
||||||
|
value: openIM_v3
|
||||||
|
- name: MONGO_USERNAME
|
||||||
|
value: root
|
||||||
|
- name: MONGO_PASSWORD
|
||||||
|
value: openIM123
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: mongo
|
||||||
|
namespace: social
|
||||||
|
labels:
|
||||||
|
name: mongo
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: mongo
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 30007
|
||||||
|
targetPort: 27017
|
||||||
|
nodePort: 30007
|
||||||
|
type: NodePort
|
||||||
|
sessionAffinity: None
|
@ -0,0 +1,50 @@
|
|||||||
|
#mysql
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: mysql
|
||||||
|
labels:
|
||||||
|
app: mysql
|
||||||
|
namespace: social
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: mysql
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: mysql
|
||||||
|
labels:
|
||||||
|
app: mysql
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: mysql
|
||||||
|
image: mysql:5.7
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 3306
|
||||||
|
protocol: TCP
|
||||||
|
env:
|
||||||
|
- name: MYSQL_ROOT_PASSWORD
|
||||||
|
value: "openIM123"
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: mysql
|
||||||
|
namespace: social
|
||||||
|
labels:
|
||||||
|
name: mysql
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: mysql
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 30006
|
||||||
|
targetPort: 3306
|
||||||
|
nodePort: 30006
|
||||||
|
type: NodePort
|
||||||
|
sessionAffinity: None
|
@ -0,0 +1,179 @@
|
|||||||
|
create DATABASE if not exists openIM_v3;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `blacks` (
|
||||||
|
`owner_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`block_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`add_source` int(11) DEFAULT NULL,
|
||||||
|
`operator_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`owner_user_id`,`block_user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `chat_logs` (
|
||||||
|
`server_msg_id` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`client_msg_id` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`send_id` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`recv_id` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`sender_platform_id` int(11) DEFAULT NULL,
|
||||||
|
`sender_nick_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`sender_face_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`session_type` int(11) DEFAULT NULL,
|
||||||
|
`msg_from` int(11) DEFAULT NULL,
|
||||||
|
`content_type` int(11) DEFAULT NULL,
|
||||||
|
`content` varchar(3000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`status` int(11) DEFAULT NULL,
|
||||||
|
`send_time` datetime(3) DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
KEY `sendTime` (`send_time`),
|
||||||
|
KEY `send_id` (`send_time`,`send_id`),
|
||||||
|
KEY `recv_id` (`send_time`,`recv_id`),
|
||||||
|
KEY `session_type` (`send_time`,`session_type`),
|
||||||
|
KEY `session_type_alone` (`session_type`),
|
||||||
|
KEY `content_type` (`send_time`,`content_type`),
|
||||||
|
KEY `content_type_alone` (`content_type`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `conversations` (
|
||||||
|
`owner_user_id` char(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`conversation_id` char(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`conversation_type` int(11) DEFAULT NULL,
|
||||||
|
`user_id` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`group_id` char(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`recv_msg_opt` int(11) DEFAULT NULL,
|
||||||
|
`is_pinned` tinyint(1) DEFAULT NULL,
|
||||||
|
`is_private_chat` tinyint(1) DEFAULT NULL,
|
||||||
|
`burn_duration` int(11) DEFAULT '30',
|
||||||
|
`group_at_type` int(11) DEFAULT NULL,
|
||||||
|
`attached_info` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`max_seq` bigint(20) DEFAULT NULL,
|
||||||
|
`min_seq` bigint(20) DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`is_msg_destruct` tinyint(1) DEFAULT '0',
|
||||||
|
`msg_destruct_time` bigint(20) DEFAULT '604800',
|
||||||
|
`latest_msg_destruct_time` datetime(3) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`owner_user_id`,`conversation_id`),
|
||||||
|
KEY `create_time` (`create_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `friend_requests` (
|
||||||
|
`from_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`to_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`handle_result` int(11) DEFAULT NULL,
|
||||||
|
`req_msg` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`handler_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`handle_msg` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`handle_time` datetime(3) DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`from_user_id`,`to_user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `friends` (
|
||||||
|
`owner_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`friend_user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`remark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`add_source` int(11) DEFAULT NULL,
|
||||||
|
`operator_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`owner_user_id`,`friend_user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `group_members` (
|
||||||
|
`group_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`nickname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`user_group_face_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`role_level` int(11) DEFAULT NULL,
|
||||||
|
`join_time` datetime(3) DEFAULT NULL,
|
||||||
|
`join_source` int(11) DEFAULT NULL,
|
||||||
|
`inviter_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`operator_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`mute_end_time` datetime(3) DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`group_id`,`user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `group_requests` (
|
||||||
|
`user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`group_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`handle_result` int(11) DEFAULT NULL,
|
||||||
|
`req_msg` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`handle_msg` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`req_time` datetime(3) DEFAULT NULL,
|
||||||
|
`handle_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`handle_time` datetime(3) DEFAULT NULL,
|
||||||
|
`join_source` int(11) DEFAULT NULL,
|
||||||
|
`inviter_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`user_id`,`group_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `groups` (
|
||||||
|
`group_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`notification` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`introduction` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`face_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`ex` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`status` int(11) DEFAULT NULL,
|
||||||
|
`creator_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`group_type` int(11) DEFAULT NULL,
|
||||||
|
`need_verification` int(11) DEFAULT NULL,
|
||||||
|
`look_member_info` int(11) DEFAULT NULL,
|
||||||
|
`apply_member_friend` int(11) DEFAULT NULL,
|
||||||
|
`notification_update_time` datetime(3) DEFAULT NULL,
|
||||||
|
`notification_user_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`group_id`),
|
||||||
|
KEY `create_time` (`create_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `object_hash` (
|
||||||
|
`hash` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`engine` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`size` bigint(20) DEFAULT NULL,
|
||||||
|
`bucket` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`name` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`hash`,`engine`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `object_info` (
|
||||||
|
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`hash` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`content_type` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`valid_time` datetime(3) DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`name`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `object_put` (
|
||||||
|
`put_id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`hash` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`path` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`name` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`content_type` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`object_size` bigint(20) DEFAULT NULL,
|
||||||
|
`fragment_size` bigint(20) DEFAULT NULL,
|
||||||
|
`put_urls_hash` longtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`valid_time` datetime(3) DEFAULT NULL,
|
||||||
|
`effective_time` datetime(3) DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`put_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE if not EXISTS `users` (
|
||||||
|
`user_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`face_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
|
`create_time` datetime(3) DEFAULT NULL,
|
||||||
|
`app_manger_level` int(11) DEFAULT '18',
|
||||||
|
`global_recv_msg_opt` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`user_id`),
|
||||||
|
KEY `create_time` (`create_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
@ -0,0 +1,52 @@
|
|||||||
|
# redis
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
namespace: social
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: redis
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: redis
|
||||||
|
image: redis:7.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
protocol: TCP
|
||||||
|
# env:
|
||||||
|
# - name: REDIS_PASSWORD
|
||||||
|
# value: "openIM123"
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
namespace: social
|
||||||
|
labels:
|
||||||
|
name: redis
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: redis
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 30029
|
||||||
|
targetPort: 6379
|
||||||
|
nodePort: 30029
|
||||||
|
type: NodePort
|
||||||
|
sessionAffinity: None
|
||||||
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
#zk
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: zookeeper
|
||||||
|
labels:
|
||||||
|
app: zookeeper
|
||||||
|
namespace: social
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: zookeeper
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: zookeeper
|
||||||
|
labels:
|
||||||
|
app: zookeeper
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: zookeeper:latest
|
||||||
|
image: wurstmeister/zookeeper
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 2181
|
||||||
|
protocol: TCP
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: zookeeper
|
||||||
|
namespace: social
|
||||||
|
labels:
|
||||||
|
name: zookeeper
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: zookeeper
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 30001
|
||||||
|
targetPort: 2181
|
||||||
|
nodePort: 30001
|
||||||
|
type: NodePort
|
||||||
|
sessionAffinity: None
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make api
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10002
|
||||||
|
CMD ["./bin/openim-api","--port", "10002"]
|
@ -0,0 +1,20 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt && make tidy
|
||||||
|
RUN make gateway
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
#Copy binary files to the blank image
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10140
|
||||||
|
EXPOSE 10001
|
||||||
|
CMD ["./bin/openim-rpc-msg-gateway","--port", "10140","--ws_port", "10001"]
|
@ -0,0 +1,18 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt && make tidy
|
||||||
|
RUN make transfer
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
#Copy binary files to the blank image
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
CMD ["./bin/openim-msgtransfer"]
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make push
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10170
|
||||||
|
CMD ["./bin/openim-push","--port", "10170"]
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make auth
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10002
|
||||||
|
CMD ["./bin/openim-api","--port", "10160"]
|
@ -0,0 +1,20 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make conversation
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10230
|
||||||
|
CMD ["./bin/openim-rpc-conversation","--port", "10230"]
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make friend
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10002
|
||||||
|
CMD ["./bin/openim-api","--port", "10120"]
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make group
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10150
|
||||||
|
CMD ["./bin/openim-rpc-group","--port", "10150"]
|
@ -0,0 +1,20 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make msg
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10130
|
||||||
|
CMD ["./bin/openim-rpc-msg","--port", "10130"]
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make third
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10002
|
||||||
|
CMD ["./bin/openim-api","--port", "10200"]
|
@ -0,0 +1,20 @@
|
|||||||
|
FROM golang:1.18.0 as build
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make fmt \
|
||||||
|
&& make tidy
|
||||||
|
RUN make user
|
||||||
|
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
WORKDIR /openim
|
||||||
|
VOLUME ["/openim/logs","/openim/bin"]
|
||||||
|
|
||||||
|
COPY --from=build /openim/bin /openim/bin
|
||||||
|
COPY --from=build /openim/config /openim/config
|
||||||
|
|
||||||
|
EXPOSE 10110
|
||||||
|
CMD ["./bin/openim-rpc-user","--port", "10110"]
|
||||||
|
|
@ -0,0 +1,129 @@
|
|||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
// agent {
|
||||||
|
// node {
|
||||||
|
// label 'jnlp-slave'
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
environment {
|
||||||
|
JOB_ENV = "social" // namespace
|
||||||
|
DEPLOYMENT_NAME = "api" // k8s deploy name
|
||||||
|
CONFIGMAP_NAME = "${DEPLOYMENT_NAME}-conf" // runtime conf
|
||||||
|
JOB_NAME = "${JOB_NAME}" // jenkins job name
|
||||||
|
GIT_URL = "https://github.com/truongpx396/k8s-jenkins" // gitlab or github codebase
|
||||||
|
CREDENTIALS_ID = "GitHub" // need configure it in jenkins, will use it's username and password to pull codebase
|
||||||
|
HARBOR_URL = "truongpx396" // docker harbor url
|
||||||
|
HARBOR_ID = "" // docker harbor id, will use it to login
|
||||||
|
DOCKER_CPU = "100m"
|
||||||
|
DOCKER_MEM = "200Mi"
|
||||||
|
BASEDIR = "."
|
||||||
|
BUILD_NUM = "${BUILD_NUMBER}"
|
||||||
|
CONF_PATH = "/openim/config/"
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
gitParameter(
|
||||||
|
branch: '',
|
||||||
|
branchFilter: 'origin/(.*)',
|
||||||
|
defaultValue: 'main',
|
||||||
|
description: '',
|
||||||
|
name: 'RELEASE_BRANCH',
|
||||||
|
quickFilterEnabled: false,
|
||||||
|
selectedValue: 'NONE',
|
||||||
|
sortMode: 'NONE',
|
||||||
|
tagFilter: '*',
|
||||||
|
type: 'PT_BRANCH'
|
||||||
|
)
|
||||||
|
extendedChoice(
|
||||||
|
name: "RELEASE_PROJECTS",
|
||||||
|
type: "PT_RADIO",
|
||||||
|
multiSelectDelimiter: " ",
|
||||||
|
value: """api,msg_gateway,msg_transfer,push,rpc_conversation,rpc_group,rpc_msg,rpc_user""",
|
||||||
|
defaultValue: "",
|
||||||
|
description: "please choice projects to deploy"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Git') {
|
||||||
|
steps {
|
||||||
|
checkout([$class: 'GitSCM',
|
||||||
|
branches: [[name: "${params.RELEASE_BRANCH}"]],
|
||||||
|
doGenerateSubmoduleConfigurations: false,
|
||||||
|
extensions: [],
|
||||||
|
gitTool: 'Default',
|
||||||
|
submoduleCfg: [],
|
||||||
|
userRemoteConfigs: [[url: "${GIT_URL}", credentialsId: "${CREDENTIALS_ID}"]]
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('CommitHash') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.CommitHash = sh (script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Check Param') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
def releaseParams = "${params.RELEASE_PROJECTS}"
|
||||||
|
def tag = "${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}"
|
||||||
|
def selectEnv = "${params.SERVICE_ENV}"
|
||||||
|
if(releaseParams) {
|
||||||
|
echo "============================================="
|
||||||
|
echo "projects: $releaseParams"
|
||||||
|
echo "tag: $tag"
|
||||||
|
echo "selectEnv: $selectEnv"
|
||||||
|
echo "============================================="
|
||||||
|
} else {
|
||||||
|
echo "============================================="
|
||||||
|
echo "invalid release projects!!! stop now!!!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Docker Build') {
|
||||||
|
steps {
|
||||||
|
// container ('docker') {
|
||||||
|
// withCredentials([usernamePassword(credentialsId: "${HARBOR_ID}", passwordVariable: 'password', usernameVariable: 'username')]) {
|
||||||
|
// sh """
|
||||||
|
// docker build -t ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} -f ${BASEDIR}/deploy/dockerfile/${params.RELEASE_PROJECTS}.Dockerfile .
|
||||||
|
// docker tag ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
|
||||||
|
// docker login -u ${username} -p ${password} ${HARBOR_URL}
|
||||||
|
|
||||||
|
// docker push ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
// docker rmi ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
// docker rmi ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
// """
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
withDockerRegistry([ credentialsId: "DockerHub", url: "" ]){
|
||||||
|
sh """
|
||||||
|
echo `Build image ...`
|
||||||
|
docker build -t ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} -f ${BASEDIR}/dockerfile/${params.RELEASE_PROJECTS}.Dockerfile .
|
||||||
|
docker tag ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
|
||||||
|
echo `Push image ...`
|
||||||
|
docker push ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
|
||||||
|
echo `Start removing image ...1.`
|
||||||
|
docker rmi ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
docker rmi ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
echo `Done removing image!`
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// stage('Deploy') {
|
||||||
|
// steps {
|
||||||
|
// container ('helm-kubectl') {
|
||||||
|
// sh """
|
||||||
|
// envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-configMap-test.yaml | kubectl apply -f -
|
||||||
|
// envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-namespace-test.yaml | kubectl apply -f -
|
||||||
|
// envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/api.yaml | kubectl apply -f - && kubectl rollout status -f -
|
||||||
|
// """
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
node {
|
||||||
|
label 'jnlp-slave'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
JOB_ENV = "social" // namespace
|
||||||
|
DEPLOYMENT_NAME = "gateway" // k8s deploy name
|
||||||
|
CONFIGMAP_NAME = "${DEPLOYMENT_NAME}-conf" // runtime conf
|
||||||
|
JOB_NAME = "${JOB_NAME}" // jenkins job name
|
||||||
|
GIT_URL = "" // gitlab or github codebase
|
||||||
|
CREDENTIALS_ID = "" // need configure it in jenkins, will use it's username and password to pull codebase
|
||||||
|
HARBOR_URL = "" // docker harbor url
|
||||||
|
HARBOR_ID = "" // docker harbor id, will use it to login
|
||||||
|
DOCKER_CPU = "100m"
|
||||||
|
DOCKER_MEM = "200Mi"
|
||||||
|
BASEDIR = "."
|
||||||
|
BUILD_NUM = "${BUILD_NUMBER}"
|
||||||
|
CONF_PATH = "/openim/config/"
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
gitParameter(
|
||||||
|
branch: '',
|
||||||
|
branchFilter: 'origin/(.*)',
|
||||||
|
defaultValue: 'main',
|
||||||
|
description: '',
|
||||||
|
name: 'RELEASE_BRANCH',
|
||||||
|
quickFilterEnabled: false,
|
||||||
|
selectedValue: 'NONE',
|
||||||
|
sortMode: 'NONE',
|
||||||
|
tagFilter: '*',
|
||||||
|
type: 'PT_BRANCH'
|
||||||
|
)
|
||||||
|
extendedChoice(
|
||||||
|
name: "RELEASE_PROJECTS",
|
||||||
|
type: "PT_RADIO",
|
||||||
|
multiSelectDelimiter: " ",
|
||||||
|
value: """api,msg_gateway,msg_transfer,push,rpc_conversation,rpc_group,rpc_msg,rpc_user""",
|
||||||
|
defaultValue: "",
|
||||||
|
description: "please choice projects to deploy"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Git') {
|
||||||
|
steps {
|
||||||
|
checkout([$class: 'GitSCM',
|
||||||
|
branches: [[name: "${params.RELEASE_BRANCH}"]],
|
||||||
|
doGenerateSubmoduleConfigurations: false,
|
||||||
|
extensions: [],
|
||||||
|
gitTool: 'Default',
|
||||||
|
submoduleCfg: [],
|
||||||
|
userRemoteConfigs: [[url: "${GIT_URL}", credentialsId: "${CREDENTIALS_ID}"]]
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('CommitHash') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.CommitHash = sh (script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Check Param') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
def releaseParams = "${params.RELEASE_PROJECTS}"
|
||||||
|
def tag = "${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}"
|
||||||
|
def selectEnv = "${params.SERVICE_ENV}"
|
||||||
|
if(releaseParams) {
|
||||||
|
echo "============================================="
|
||||||
|
echo "projects: $releaseParams"
|
||||||
|
echo "tag: $tag"
|
||||||
|
echo "selectEnv: $selectEnv"
|
||||||
|
echo "============================================="
|
||||||
|
} else {
|
||||||
|
echo "============================================="
|
||||||
|
echo "invalid release projects!!! stop now!!!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Docker Build') {
|
||||||
|
steps {
|
||||||
|
container ('docker') {
|
||||||
|
withCredentials([usernamePassword(credentialsId: "${HARBOR_ID}", passwordVariable: 'password', usernameVariable: 'username')]) {
|
||||||
|
sh """
|
||||||
|
docker build -t ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} -f ${BASEDIR}/deploy/dockerfile/${params.RELEASE_PROJECTS}.Dockerfile .
|
||||||
|
docker tag ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
|
||||||
|
docker login -u ${username} -p ${password} ${HARBOR_URL}
|
||||||
|
|
||||||
|
docker push ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
docker rmi ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
docker rmi ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Deploy') {
|
||||||
|
steps {
|
||||||
|
container ('helm-kubectl') {
|
||||||
|
sh """
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-configMap-test.yaml | kubectl apply -f -
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-namespace-test.yaml | kubectl apply -f -
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/msg_gateway.yaml | kubectl apply -f - && kubectl rollout status -f -
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,114 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
node {
|
||||||
|
label 'jnlp-slave'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
JOB_ENV = "social" // namespace
|
||||||
|
DEPLOYMENT_NAME = "" // rpc server k8s deploy name, like user
|
||||||
|
CONFIGMAP_NAME = "${DEPLOYMENT_NAME}-conf" // runtime conf
|
||||||
|
JOB_NAME = "${JOB_NAME}" // jenkins job name
|
||||||
|
GIT_URL = "" // gitlab or github codebase
|
||||||
|
CREDENTIALS_ID = "" // need configure it in jenkins, will use it's username and password to pull codebase
|
||||||
|
HARBOR_URL = "" // docker harbor url
|
||||||
|
HARBOR_ID = "" // docker harbor id, will use it to login
|
||||||
|
DOCKER_CPU = "100m"
|
||||||
|
DOCKER_MEM = "200Mi"
|
||||||
|
BASEDIR = "."
|
||||||
|
BUILD_NUM = "${BUILD_NUMBER}"
|
||||||
|
CONF_PATH = "/openim/config/"
|
||||||
|
EXPOSED_PORT = "10110" // server port,will be container expose port
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
gitParameter(
|
||||||
|
branch: '',
|
||||||
|
branchFilter: 'origin/(.*)',
|
||||||
|
defaultValue: 'main',
|
||||||
|
description: '',
|
||||||
|
name: 'RELEASE_BRANCH',
|
||||||
|
quickFilterEnabled: false,
|
||||||
|
selectedValue: 'NONE',
|
||||||
|
sortMode: 'NONE',
|
||||||
|
tagFilter: '*',
|
||||||
|
type: 'PT_BRANCH'
|
||||||
|
)
|
||||||
|
extendedChoice(
|
||||||
|
name: "RELEASE_PROJECTS",
|
||||||
|
type: "PT_RADIO",
|
||||||
|
multiSelectDelimiter: " ",
|
||||||
|
value: """api,msg_gateway,msg_transfer,push,rpc_conversation,rpc_group,rpc_msg,rpc_user""",
|
||||||
|
defaultValue: "",
|
||||||
|
description: "please choice projects to deploy"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Git') {
|
||||||
|
steps {
|
||||||
|
checkout([$class: 'GitSCM',
|
||||||
|
branches: [[name: "${params.RELEASE_BRANCH}"]],
|
||||||
|
doGenerateSubmoduleConfigurations: false,
|
||||||
|
extensions: [],
|
||||||
|
gitTool: 'Default',
|
||||||
|
submoduleCfg: [],
|
||||||
|
userRemoteConfigs: [[url: "${GIT_URL}", credentialsId: "${CREDENTIALS_ID}"]]
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('CommitHash') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
env.CommitHash = sh (script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Check Param') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
def releaseParams = "${params.RELEASE_PROJECTS}"
|
||||||
|
def tag = "${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}"
|
||||||
|
def selectEnv = "${params.SERVICE_ENV}"
|
||||||
|
if(releaseParams) {
|
||||||
|
echo "============================================="
|
||||||
|
echo "projects: $releaseParams"
|
||||||
|
echo "tag: $tag"
|
||||||
|
echo "selectEnv: $selectEnv"
|
||||||
|
echo "============================================="
|
||||||
|
} else {
|
||||||
|
echo "============================================="
|
||||||
|
echo "invalid release projects!!! stop now!!!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Docker Build') {
|
||||||
|
steps {
|
||||||
|
container ('docker') {
|
||||||
|
withCredentials([usernamePassword(credentialsId: "${HARBOR_ID}", passwordVariable: 'password', usernameVariable: 'username')]) {
|
||||||
|
sh """
|
||||||
|
docker build -t ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} -f ${BASEDIR}/deploy/dockerfile/${params.RELEASE_PROJECTS}.Dockerfile .
|
||||||
|
docker tag ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM} ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
|
||||||
|
docker login -u ${username} -p ${password} ${HARBOR_URL}
|
||||||
|
|
||||||
|
docker push ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
docker rmi ${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
docker rmi ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Deploy') {
|
||||||
|
steps {
|
||||||
|
container ('helm-kubectl') {
|
||||||
|
sh """
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-configMap-test.yaml | kubectl apply -f -
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/default-namespace-test.yaml | kubectl apply -f -
|
||||||
|
envsubst < ${BASEDIR}/deploy/k8sdeployment_dev/rpc_deployment.yaml | kubectl apply -f - && kubectl rollout status -f -
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
# api.yaml
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: api
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: api
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: api
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: api
|
||||||
|
image: ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
imagePullPolicy: Always
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "500Mi"
|
||||||
|
cpu: "80m"
|
||||||
|
requests:
|
||||||
|
memory: "200Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
ports:
|
||||||
|
- containerPort: 10002
|
||||||
|
name: api
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- name: localtime
|
||||||
|
mountPath: /etc/localtime
|
||||||
|
- name: config
|
||||||
|
mountPath: ${CONF_PATH}
|
||||||
|
volumes:
|
||||||
|
- name: localtime
|
||||||
|
hostPath:
|
||||||
|
path: /usr/share/zoneinfo/UTC
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: ${CONFIGMAP_NAME}
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
---
|
||||||
|
# 外部访问的服务
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: api
|
||||||
|
name: api
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: api
|
||||||
|
port: 10002
|
||||||
|
targetPort: 10002
|
||||||
|
nodePort: 30020
|
||||||
|
selector:
|
||||||
|
name: api
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: ${JOB_ENV}
|
@ -0,0 +1,66 @@
|
|||||||
|
# msg-gateway.yaml
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: msg-gateway
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: msg-gateway
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: msg-gateway
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: msg-gateway
|
||||||
|
image: ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
imagePullPolicy: Always
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
requests:
|
||||||
|
memory: "500Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
ports:
|
||||||
|
- containerPort: 10001
|
||||||
|
name: ws
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 10140
|
||||||
|
name: rpc
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- name: localtime
|
||||||
|
mountPath: /etc/localtime
|
||||||
|
- name: config
|
||||||
|
mountPath: ${CONF_PATH}
|
||||||
|
volumes:
|
||||||
|
- name: localtime
|
||||||
|
hostPath:
|
||||||
|
path: /usr/share/zoneinfo/UTC
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: ${CONFIGMAP_NAME}
|
||||||
|
restartPolicy: Always
|
||||||
|
---
|
||||||
|
# 外部访问的服务
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: msg-gateway
|
||||||
|
name: msg-gateway
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: msg-gateway-ws
|
||||||
|
port: 10001
|
||||||
|
targetPort: 10001
|
||||||
|
nodePort: 30031
|
||||||
|
selector:
|
||||||
|
name: msg-gateway
|
@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: ${DEPLOYMENT_NAME}
|
||||||
|
image: ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
imagePullPolicy: Always
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: ${DOCKER_MEM}
|
||||||
|
cpu: ${DOCKER_CPU}
|
||||||
|
requests:
|
||||||
|
memory: 100Mi
|
||||||
|
cpu: 80m
|
||||||
|
ports:
|
||||||
|
- containerPort: ${EXPOSED_PORT}
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: ${EXPOSED_PORT}
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 5
|
||||||
|
periodSeconds: 300
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: ${EXPOSED_PORT}
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 5
|
||||||
|
periodSeconds: 60
|
||||||
|
volumeMounts:
|
||||||
|
- name: localtime
|
||||||
|
mountPath: /etc/localtime
|
||||||
|
- name: config
|
||||||
|
mountPath: ${CONF_PATH}
|
||||||
|
volumes:
|
||||||
|
- name: localtime
|
||||||
|
hostPath:
|
||||||
|
path: /usr/share/zoneinfo/UTC
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: ${CONFIGMAP_NAME}
|
||||||
|
restartPolicy: Always
|
@ -0,0 +1,41 @@
|
|||||||
|
# transfer don't need port, please handle it separately
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
namespace: ${JOB_ENV}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: ${DEPLOYMENT_NAME}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: ${DEPLOYMENT_NAME}
|
||||||
|
image: ${HARBOR_URL}/${JOB_ENV}/${JOB_NAME}:${CommitHash}-${BUILD_NUM}
|
||||||
|
imagePullPolicy: Always
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: ${DOCKER_MEM}
|
||||||
|
cpu: ${DOCKER_CPU}
|
||||||
|
requests:
|
||||||
|
memory: 100Mi
|
||||||
|
cpu: 80m
|
||||||
|
volumeMounts:
|
||||||
|
- name: localtime
|
||||||
|
mountPath: /etc/localtime
|
||||||
|
- name: config
|
||||||
|
mountPath: ${CONF_PATH}
|
||||||
|
volumes:
|
||||||
|
- name: localtime
|
||||||
|
hostPath:
|
||||||
|
path: /usr/share/zoneinfo/UTC
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: ${CONFIGMAP_NAME}
|
||||||
|
restartPolicy: Always
|
Loading…
Reference in new issue