目录
create_deployment_yaml.py
#创建deployment,service脚本,用于创建新项目
create_deployment_yaml.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#########
BASE_YAML='''
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: %(JOB_NAME)s
namespace: apm
labels:
app: %(JOB_NAME)s
spec:
minReadySeconds: 10
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
replicas: %(POD_NUMBER)s
selector:
matchLabels:
app: %(JOB_NAME)s
template:
metadata:
name: %(JOB_NAME)s
labels:
app: %(JOB_NAME)s
version: v1
spec:
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: qcloudregistrykey
containers:
- name: %(JOB_NAME)s
image: %(IMAGE)s
imagePullPolicy: IfNotPresent
env:
- name: PATH
value: /usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- name: JAVA_TOOL_OPTIONS
value: %(JAVA_TOOL_OPTIONS)s
- name: CATALINA_OPTS
value: %(CATALINA_OPTS)s
ports:
- containerPort: %(PORT)s
resources:
limits:
cpu: %(CPU_LIMITS)s
memory: %(MEM_LIMITS)s
requests:
cpu: %(CPU_REQUEST)s
memory: %(MEM_REQUEST)s
livenessProbe:
failureThreshold: 1
initialDelaySeconds: 60
periodSeconds: 3
successThreshold: 1
tcpSocket:
port: %(PORT)s
timeoutSeconds: 2
readinessProbe:
failureThreshold: 1
initialDelaySeconds: 60
periodSeconds: 3
successThreshold: 1
tcpSocket:
port: %(PORT)s
timeoutSeconds: 2
---
apiVersion: v1
kind: Service
metadata:
name: %(JOB_NAME)s
namespace: apm
labels:
app: %(JOB_NAME)s
spec:
selector:
app: %(JOB_NAME)s
type: ClusterIP
ports:
- name: tomcat
port: %(PORT)s
targetPort: %(PORT)s
'''
import os,sys
def create_yaml(BASE_YAML,FILE_PATH,JOB_NAME,POD_NUMBER,IMAGE,PORT,CPU_LIMITS,MEM_LIMITS,CPU_REQUEST,MEM_REQUEST,JAVA_TOOL_OPTIONS,CATALINA_OPTS):
#接收到的将参数传入到BASE_YAML的str中
BASE_YAML = BASE_YAML % {\
"JOB_NAME":str(JOB_NAM