Skip to content

Commit

Permalink
auto generate deploy
Browse files Browse the repository at this point in the history
  • Loading branch information
blademainer committed Dec 14, 2020
1 parent e2fd684 commit 1a2bf74
Show file tree
Hide file tree
Showing 8 changed files with 136 additions and 4 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/kubectl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@ jobs:
# Runs a set of commands using the runners shell
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
COMMIT_SHORT=${GITHUB_SHA:0:7}
export version="sha-${COMMIT_SHORT}"
./scripts/generate_deploys.sh
- uses: actions-hub/kubectl@master
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
with:
args: apply -f ./deployments/kubernetes/deploy
args: apply -f ./generated-deployments
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -225,4 +225,5 @@ go.sum
test.data
conf/discovery.json*.prof.svg
/deployments/kubernetes/mysql-cm.yaml
/conf/discovery.json
/conf/discovery.json
/generated-deployments
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ protos: generate_proto
generate_proto:
sh scripts/generate_proto.sh "go" "./" "./go"

generate_deploy:
sh scripts/generate_deploys.sh

golangci_lint:
bash scripts/golangci_lint.sh
Expand Down
23 changes: 23 additions & 0 deletions deployments/kubernetes/channel-tpl/channel-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{channel}}
labels:
app: {{channel}}
spec:
replicas: 1
template:
metadata:
name: {{channel}}
labels:
app: {{channel}}
spec:
containers:
- name: {{channel}}
image: pjoc/pay-gateway:{{version}}
command: [ "bash", "-c", "/app/{{channel}} --listen-http=:8080 --listen=:9090 --log-level=debug" ]
imagePullPolicy: Always
restartPolicy: Always
selector:
matchLabels:
app: {{channel}}
11 changes: 11 additions & 0 deletions deployments/kubernetes/channel-tpl/channel-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: {{channel}}
spec:
selector:
app: {{channel}}
ports:
- port: 9090
name: grpc
type: ClusterIP
29 changes: 29 additions & 0 deletions deployments/kubernetes/deploy-tpl/database-service-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: database-service
labels:
app: database-service
spec:
replicas: 1
template:
metadata:
name: database-service
labels:
app: database-service
spec:
containers:
- name: database-service
image: pjoc/pay-gateway:{{version}}
command: [ "bash", "-c", "/app/database-service --listen-http=8080 --listen=9090 --log-level=debug --url=${DSN_URL}" ]
imagePullPolicy: IfNotPresent
env:
- name: DSN_URL
valueFrom:
configMapKeyRef:
key: dsn
name: pay-mysql-cm
restartPolicy: Always
selector:
matchLabels:
app: database-service
23 changes: 23 additions & 0 deletions deployments/kubernetes/deploy-tpl/pay-gateway-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: pay-gateway
labels:
app: pay-gateway
spec:
replicas: 1
template:
metadata:
name: pay-gateway
labels:
app: pay-gateway
spec:
containers:
- name: pay-gateway
image: pjoc/pay-gateway:{{version}}
command: [ "bash", "-c", "/app/main --listen-http=8080 --listen=:9090 --log-level=debug" ]
imagePullPolicy: Always
restartPolicy: Always
selector:
matchLabels:
app: pay-gateway
42 changes: 42 additions & 0 deletions scripts/generate_deploys.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env bash

params="${1:-version}"
echo "replace params: ${params}"

function sedFile() {
pattern="${1}"
file="${2}"
[[ -z "${pattern}" ]] && echo "pattern is null!" && exit 1
[[ -z "${file}" ]] && echo "file is null!" && exit 1
now=$(date +'%Y%m%d%H%M%S')
sed "${pattern}" "${file}" > "${file}.${now}.tmp";
mv "${file}.${now}.tmp" "${file}";
}

CUR_SCRIPT_DIR="$(dirname "$0")"
WORK_HOME="./${CUR_SCRIPT_DIR}/.."
if [[ -z "${CUR_SCRIPT_DIR}" ]];then
WORK_HOME="./"
fi

ls ${WORK_HOME}/cmd/channels | while read channel; do
mkdir -p ${WORK_HOME}/generated-deployments;
ls ${WORK_HOME}/deployments/kubernetes/channel-tpl | while read f; do
filename="${f%.*}-$channel"
ext="${f##*.}"
file="${filename}.${ext}"
sed "s/{{channel}}/$channel/g" ${WORK_HOME}/deployments/kubernetes/channel-tpl/$f > ${WORK_HOME}/generated-deployments/$file;
done;
done

# 生成服务器部署模板
cp -R ${WORK_HOME}/deployments/kubernetes/deploy-tpl/* ${WORK_HOME}/generated-deployments/

# 渠道服务部署模板
ls ${WORK_HOME}/generated-deployments/ | while read f; do
echo "$params" | tr " " "\n" | while read param; do
echo "replace {{${param}}} to ${!param}"
sedFile "s/{{${param}}}/${!param}/g" ${WORK_HOME}/generated-deployments/$f;
done
done

0 comments on commit 1a2bf74

Please sign in to comment.