...
1
2
3
4 package e2e
5
6 import (
7 "strings"
8 )
9
10 var deployment1 = []byte(strings.TrimSpace(`
11 apiVersion: apps/v1
12 kind: Deployment
13 metadata:
14 name: nginx-deployment
15 spec:
16 replicas: 4
17 selector:
18 matchLabels:
19 app: nginx
20 template:
21 metadata:
22 labels:
23 app: nginx
24 spec:
25 containers:
26 - name: nginx
27 image: nginx:1.19.6
28 ports:
29 - containerPort: 80
30 `))
31
32 var apiservice1 = []byte(strings.TrimSpace(`
33 apiVersion: apiregistration.k8s.io/v1
34 kind: APIService
35 metadata:
36 name: v1beta1.custom.metrics.k8s.io
37 spec:
38 insecureSkipTLSVerify: true
39 group: custom.metrics.k8s.io
40 groupPriorityMinimum: 100
41 versionPriority: 100
42 service:
43 name: custom-metrics-stackdriver-adapter
44 namespace: custom-metrics
45 version: v1beta1
46 `))
47
48 var invalidCrd = []byte(strings.TrimSpace(`
49 apiVersion: apiextensions.k8s.io/v1
50 kind: CustomResourceDefinition
51 metadata:
52 name: invalidexamples.cli-utils.example.io
53 spec:
54 conversion:
55 strategy: None
56 group: cli-utils.example.io
57 names:
58 kind: InvalidExample
59 listKind: InvalidExampleList
60 plural: invalidexamples
61 singular: invalidexample
62 scope: Cluster
63 `))
64
65 var pod1 = []byte(strings.TrimSpace(`
66 kind: Pod
67 apiVersion: v1
68 metadata:
69 name: pod1
70 spec:
71 containers:
72 - name: kubernetes-pause
73 image: k8s.gcr.io/pause:2.0
74 `))
75
76 var pod2 = []byte(strings.TrimSpace(`
77 kind: Pod
78 apiVersion: v1
79 metadata:
80 name: pod2
81 spec:
82 containers:
83 - name: kubernetes-pause
84 image: k8s.gcr.io/pause:2.0
85 `))
86
87 var pod3 = []byte(strings.TrimSpace(`
88 kind: Pod
89 apiVersion: v1
90 metadata:
91 name: pod3
92 spec:
93 containers:
94 - name: kubernetes-pause
95 image: k8s.gcr.io/pause:2.0
96 `))
97
98 var podATemplate = `
99 kind: Pod
100 apiVersion: v1
101 metadata:
102 name: pod-a
103 namespace: {{.Namespace}}
104 annotations:
105 config.kubernetes.io/apply-time-mutation: |
106 - sourceRef:
107 kind: Pod
108 name: pod-b
109 namespace: {{.Namespace}}
110 sourcePath: $.status.podIP
111 targetPath: $.spec.containers[?(@.name=="nginx")].env[?(@.name=="SERVICE_HOST")].value
112 token: ${pob-b-ip}
113 - sourceRef:
114 kind: Pod
115 name: pod-b
116 namespace: {{.Namespace}}
117 sourcePath: $.spec.containers[?(@.name=="nginx")].ports[?(@.name=="tcp")].containerPort
118 targetPath: $.spec.containers[?(@.name=="nginx")].env[?(@.name=="SERVICE_HOST")].value
119 token: ${pob-b-port}
120 spec:
121 containers:
122 - name: nginx
123 image: nginx:1.21
124 ports:
125 - name: tcp
126 containerPort: 80
127 env:
128 - name: SERVICE_HOST
129 value: "${pob-b-ip}:${pob-b-port}"
130 `
131
132 var podBTemplate = `
133 kind: Pod
134 apiVersion: v1
135 metadata:
136 name: pod-b
137 namespace: {{.Namespace}}
138 spec:
139 containers:
140 - name: nginx
141 image: nginx:1.21
142 ports:
143 - name: tcp
144 containerPort: 80
145 `
146
147 var invalidMutationPodBTemplate = `
148 kind: Pod
149 apiVersion: v1
150 metadata:
151 name: pod-b
152 namespace: {{.Namespace}}
153 annotations:
154 config.kubernetes.io/apply-time-mutation: |
155 - sourceRef:
156 kind: Pod
157 name: pod-a # cyclic dependency
158 namespace: {{.Namespace}}
159 sourcePath: $.status.podIP
160 targetPath: $.spec.containers[?(@.name=="nginx")].env[?(@.name=="SERVICE_HOST")].value
161 token: ${pob-b-ip}
162 - sourceRef:
163 kind: Pod
164 name: pod-a
165 namespace: "" # empty namespace on a namespaced type
166 sourcePath: $.spec.containers[?(@.name=="nginx")].ports[?(@.name=="tcp")].containerPort
167 targetPath: $.spec.containers[?(@.name=="nginx")].env[?(@.name=="SERVICE_HOST")].value
168 token: ${pob-b-port}
169 spec:
170 containers:
171 - name: nginx
172 image: nginx:1.21
173 ports:
174 - name: tcp
175 containerPort: 80
176 env:
177 - name: SERVICE_HOST
178 value: "${pob-b-ip}:${pob-b-port}"
179 `
180
181 var invalidPodTemplate = `
182 kind: Pod
183 apiVersion: v1
184 metadata:
185 # missing name
186 namespace: {{.Namespace}}
187 spec:
188 containers:
189 - name: nginx
190 image: nginx:1.21
191 ports:
192 - name: tcp
193 containerPort: 80
194 `
195
196 var namespaceTemplate = `
197 apiVersion: v1
198 kind: Namespace
199 metadata:
200 name: {{.Namespace}}
201 `
202
View as plain text