-
Notifications
You must be signed in to change notification settings - Fork 33
/
template.go
105 lines (101 loc) · 1.91 KB
/
template.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package core
const podSpec = `
serviceAccountName: $ServiceAccount
dNSPolicy: $DNSPolicy
restartPolicy: $RestartPolicy
containers:
- name: $Name
image: $Image
imagePullPolicy: $ImagePullPolicy
env: $Envs
args: $Args
resources: $Resources
commands: $Commands
ports: $Ports
`
var runTemplates = map[string]string{
DeploymentAppsV1GeneratorName: `apiVersion: apps/v1
kind: Deployment
metadata:
name: $Name
labels: $Labels
spec:
replicas: $Replicas
selector: $LabelSelector
strategy:
rollingUpdate:
maxSurge:
IntVal: 1
Type: 0
maxUnavailable:
IntVal: 1
Type: 0
type: RollingUpdate
template:
metadata:
labels: $Labels
spec: $Spec
`,
RunV1GeneratorName: `apiVersion: v1
kind: ReplicationController
metadata:
name: $Name
labels: $Labels
spec:
replicas: $Replicas
selector: $Labels
template:
metadata:
labels: $Labels
spec: $Spec
`,
RunPodV1GeneratorName: `apiVersion: v1
kind: Pod
metadata:
name: $Name
labels: $Labels
spec: $Spec`,
JobV1GeneratorName: `apiVersion: batch/v1
kind: Job
metadata:
name: $Name
labels: $Labels
spec:
template:
metadata:
labels: $Labels
spec: $Spec`,
CronJobV1Beta1GeneratorName: `apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: $Name
labels: $Labels
spec:
schedule: $Schedule
concurrencyPolicy: AllowConcurrent
selector: $Labels
jobTemplate:
metadata:
labels: $Labels
spec: $Spec
`,
}
var exposeTemplates = map[string]string{
ServiceV1GeneratorName: `apiVersion: v1
kind: Service
metadata:
name: $Name
labels: $Labels
spec:
selector: $Selector
ports: $Ports
clusterIP: $ClusterIP
type: $Type
externalIPs: $ExternalIPs
sessionAffinity: $SessionAffinity
loadBalancerIP: $LoadBalancerIP
externalName: $ExternalName
healthCheckNodePort: $HealthCheckNodePort
sessionAffinityConfig: $SessionAffinityConfig
`,
}