Skip to content

Commit 355b1bc

Browse files
committed
Extend tests to cover health checking.
1 parent a088793 commit 355b1bc

File tree

5 files changed

+282
-20
lines changed

5 files changed

+282
-20
lines changed

pkg/test/testreconciler/simpletest/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2828
"sigs.k8s.io/controller-runtime/pkg/source"
2929
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/addon"
30-
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/addon/pkg/status"
3130
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/declarative"
3231
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/declarative/pkg/applier"
3332

@@ -48,6 +47,7 @@ type SimpleTestReconciler struct {
4847
manifestController declarative.ManifestController
4948

5049
applier applier.Applier
50+
status declarative.Status
5151
}
5252

5353
func (r *SimpleTestReconciler) setupReconciler(mgr ctrl.Manager) error {
@@ -61,7 +61,7 @@ func (r *SimpleTestReconciler) setupReconciler(mgr ctrl.Manager) error {
6161
declarative.WithObjectTransform(declarative.AddLabels(labels)),
6262
declarative.WithOwner(declarative.SourceAsOwner),
6363
declarative.WithLabels(r.watchLabels),
64-
declarative.WithStatus(status.NewBasic(mgr.GetClient())),
64+
declarative.WithStatus(r.status),
6565

6666
// TODO: Readd prune
6767
//declarative.WithApplyPrune(),

pkg/test/testreconciler/simpletest/controller_test.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import (
1818

1919
"sigs.k8s.io/kubebuilder-declarative-pattern/mockkubeapiserver"
2020
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/addon/pkg/loaders"
21+
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/addon/pkg/status"
22+
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/declarative"
2123
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/declarative/pkg/applier"
2224
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/restmapper"
2325
"sigs.k8s.io/kubebuilder-declarative-pattern/pkg/test/httprecorder"
@@ -30,26 +32,29 @@ func TestSimpleReconciler(t *testing.T) {
3032
appliers := []struct {
3133
Key string
3234
Applier applier.Applier
35+
Status declarative.Status
3336
}{
3437
{
3538
Key: "direct",
3639
Applier: applier.NewDirectApplier(),
40+
Status: status.NewBasic(nil),
3741
},
3842
{
3943
Key: "ssa",
4044
Applier: applier.NewApplySetApplier(metav1.PatchOptions{FieldManager: "kdp-test"}),
45+
Status: status.NewKstatusCheck(nil, nil),
4146
},
4247
}
4348
for _, applier := range appliers {
4449
t.Run(applier.Key, func(t *testing.T) {
4550
testharness.RunGoldenTests(t, "testdata/reconcile/"+applier.Key+"/", func(h *testharness.Harness, testdir string) {
46-
testSimpleReconciler(h, testdir, applier.Applier)
51+
testSimpleReconciler(h, testdir, applier.Applier, applier.Status)
4752
})
4853
})
4954
}
5055
}
5156

52-
func testSimpleReconciler(h *testharness.Harness, testdir string, applier applier.Applier) {
57+
func testSimpleReconciler(h *testharness.Harness, testdir string, applier applier.Applier, status declarative.Status) {
5358
ctx := context.Background()
5459

5560
k8s, err := mockkubeapiserver.NewMockKubeAPIServer(":0")
@@ -60,6 +65,7 @@ func testSimpleReconciler(h *testharness.Harness, testdir string, applier applie
6065
k8s.RegisterType(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Namespace"}, "namespaces", meta.RESTScopeRoot)
6166
k8s.RegisterType(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ConfigMap"}, "configmaps", meta.RESTScopeNamespace)
6267
k8s.RegisterType(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Event"}, "events", meta.RESTScopeNamespace)
68+
k8s.RegisterType(schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "Deployment"}, "deployments", meta.RESTScopeNamespace)
6369
k8s.RegisterType(schema.GroupVersionKind{Group: "addons.example.org", Version: "v1alpha1", Kind: "SimpleTest"}, "simpletests", meta.RESTScopeNamespace)
6470

6571
defer func() {
@@ -110,6 +116,7 @@ func testSimpleReconciler(h *testharness.Harness, testdir string, applier applie
110116
Client: mgr.GetClient(),
111117
Scheme: mgr.GetScheme(),
112118
applier: applier,
119+
status: status,
113120
}
114121

115122
mc, err := loaders.NewManifestLoader("testdata/channels")

pkg/test/testreconciler/simpletest/testdata/channels/packages/simpletest/0.1.0/manifest.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,21 @@ metadata:
66
l1: v1
77
data:
88
k1: v1
9+
---
10+
apiVersion: apps/v1
11+
kind: Deployment
12+
metadata:
13+
name: mydeployment
14+
spec:
15+
replicas: 3
16+
selector:
17+
matchLabels:
18+
app: bar
19+
template:
20+
metadata:
21+
labels:
22+
app: bar
23+
spec:
24+
containers:
25+
- name: main
26+
image: registry.k8s.io/pause:3.9

pkg/test/testreconciler/simpletest/testdata/reconcile/direct/create/expected-http.yaml

Lines changed: 126 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ Date: (removed)
4949

5050
---
5151

52+
GET http://kube-apiserver/apis/apps/v1?timeout=32s
53+
Accept: application/json, */*
54+
55+
200 OK
56+
Cache-Control: no-cache, private
57+
Content-Length: 831
58+
Content-Type: application/json
59+
Date: (removed)
60+
61+
{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"apps/v1","resources":[{"name":"controllerrevisions","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"ControllerRevision","verbs":null},{"name":"daemonsets","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"DaemonSet","verbs":null},{"name":"deployments","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"Deployment","verbs":null},{"name":"deployments","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"Deployment","verbs":null},{"name":"replicasets","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"ReplicaSet","verbs":null},{"name":"statefulsets","singularName":"","namespaced":true,"group":"apps","version":"v1","kind":"StatefulSet","verbs":null}]}
62+
63+
---
64+
5265
GET http://kube-apiserver/api/v1/namespaces/ns1/configmaps/foo
5366
Accept: application/json
5467

@@ -61,6 +74,20 @@ X-Content-Type-Options: nosniff
6174
Not Found
6275

6376

77+
---
78+
79+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
80+
Accept: application/json
81+
82+
404 Not Found
83+
Content-Length: 10
84+
Content-Type: text/plain; charset=utf-8
85+
Date: (removed)
86+
X-Content-Type-Options: nosniff
87+
88+
Not Found
89+
90+
6491
---
6592

6693
GET http://kube-apiserver/api/v1/configmaps?allowWatchBookmarks=true&labelSelector=addons.example.org%2Fsimpletest%3Dsimple1&watch=true
@@ -75,6 +102,18 @@ Date: (removed)
75102

76103
---
77104

105+
GET http://kube-apiserver/apis/apps/v1/deployments?allowWatchBookmarks=true&labelSelector=addons.example.org%2Fsimpletest%3Dsimple1&watch=true
106+
Accept: application/json
107+
108+
200 OK
109+
Cache-Control: no-cache, private
110+
Content-Type: application/json
111+
Date: (removed)
112+
113+
<streaming response not included>
114+
115+
---
116+
78117
GET http://kube-apiserver/api/v1/namespaces/ns1/configmaps/foo
79118
Accept: application/json
80119

@@ -119,20 +158,77 @@ Date: (removed)
119158

120159
---
121160

161+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
162+
Accept: application/json
163+
164+
404 Not Found
165+
Content-Length: 10
166+
Content-Type: text/plain; charset=utf-8
167+
Date: (removed)
168+
X-Content-Type-Options: nosniff
169+
170+
Not Found
171+
172+
173+
---
174+
175+
GET http://kube-apiserver/api/v1/namespaces/ns1
176+
Accept: application/json
177+
178+
200 OK
179+
Cache-Control: no-cache, private
180+
Content-Length: 286
181+
Content-Type: application/json
182+
Date: (removed)
183+
184+
{"apiVersion":"v1","kind":"Namespace","metadata":{"creationTimestamp":"2022-01-01T00:00:00Z","labels":{"kubernetes.io/metadata.name":"ns1"},"name":"ns1","resourceVersion":"1","uid":"00000000-0000-0000-0000-000000000001"},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}}
185+
186+
---
187+
188+
POST http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments?fieldManager=kubectl-client-side-apply&fieldValidation=Strict
189+
Accept: application/json
190+
Content-Type: application/json
191+
192+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}]},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}
193+
194+
195+
200 OK
196+
Cache-Control: no-cache, private
197+
Content-Length: 1397
198+
Content-Type: application/json
199+
Date: (removed)
200+
201+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"creationTimestamp":"2022-01-01T00:00:03Z","labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}],"resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000004"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}
202+
203+
---
204+
205+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
206+
Accept: application/json
207+
208+
200 OK
209+
Cache-Control: no-cache, private
210+
Content-Length: 1397
211+
Content-Type: application/json
212+
Date: (removed)
213+
214+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"creationTimestamp":"2022-01-01T00:00:03Z","labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}],"resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000004"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}
215+
216+
---
217+
122218
PUT http://kube-apiserver/apis/addons.example.org/v1alpha1/namespaces/ns1/simpletests/simple1/status
123219
Accept: application/json, */*
124220
Content-Type: application/json
125221

126-
{"kind":"SimpleTest","apiVersion":"addons.example.org/v1alpha1","metadata":{"name":"simple1","namespace":"ns1","uid":"00000000-0000-0000-0000-000000000002","resourceVersion":"2","creationTimestamp":"2022-01-01T00:00:01Z"},"spec":{"channel":"stable"},"status":{"healthy":true}}
222+
{"kind":"SimpleTest","apiVersion":"addons.example.org/v1alpha1","metadata":{"name":"simple1","namespace":"ns1","uid":"00000000-0000-0000-0000-000000000002","resourceVersion":"2","creationTimestamp":"2022-01-01T00:00:01Z"},"spec":{"channel":"stable"},"status":{"healthy":false,"errors":["deployment does not meet condition: Available"]}}
127223

128224

129225
200 OK
130226
Cache-Control: no-cache, private
131-
Content-Length: 276
227+
Content-Length: 336
132228
Content-Type: application/json
133229
Date: (removed)
134230

135-
{"apiVersion":"addons.example.org/v1alpha1","kind":"SimpleTest","metadata":{"creationTimestamp":"2022-01-01T00:00:01Z","name":"simple1","namespace":"ns1","resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000002"},"spec":{"channel":"stable"},"status":{"healthy":true}}
231+
{"apiVersion":"addons.example.org/v1alpha1","kind":"SimpleTest","metadata":{"creationTimestamp":"2022-01-01T00:00:01Z","name":"simple1","namespace":"ns1","resourceVersion":"5","uid":"00000000-0000-0000-0000-000000000002"},"spec":{"channel":"stable"},"status":{"errors":["deployment does not meet condition: Available"],"healthy":false}}
136232

137233
---
138234

@@ -149,6 +245,19 @@ Date: (removed)
149245

150246
---
151247

248+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
249+
Accept: application/json
250+
251+
200 OK
252+
Cache-Control: no-cache, private
253+
Content-Length: 1397
254+
Content-Type: application/json
255+
Date: (removed)
256+
257+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"creationTimestamp":"2022-01-01T00:00:03Z","labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}],"resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000004"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}
258+
259+
---
260+
152261
GET http://kube-apiserver/api/v1/namespaces/ns1/configmaps/foo
153262
Accept: application/json
154263

@@ -162,17 +271,26 @@ Date: (removed)
162271

163272
---
164273

165-
PUT http://kube-apiserver/apis/addons.example.org/v1alpha1/namespaces/ns1/simpletests/simple1/status
166-
Accept: application/json, */*
274+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
275+
Accept: application/json
276+
277+
200 OK
278+
Cache-Control: no-cache, private
279+
Content-Length: 1397
167280
Content-Type: application/json
281+
Date: (removed)
168282

169-
{"kind":"SimpleTest","apiVersion":"addons.example.org/v1alpha1","metadata":{"name":"simple1","namespace":"ns1","uid":"00000000-0000-0000-0000-000000000002","resourceVersion":"4","creationTimestamp":"2022-01-01T00:00:01Z"},"spec":{"channel":"stable"},"status":{"healthy":true}}
283+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"creationTimestamp":"2022-01-01T00:00:03Z","labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}],"resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000004"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}
170284

285+
---
286+
287+
GET http://kube-apiserver/apis/apps/v1/namespaces/ns1/deployments/mydeployment
288+
Accept: application/json
171289

172290
200 OK
173291
Cache-Control: no-cache, private
174-
Content-Length: 276
292+
Content-Length: 1397
175293
Content-Type: application/json
176294
Date: (removed)
177295

178-
{"apiVersion":"addons.example.org/v1alpha1","kind":"SimpleTest","metadata":{"creationTimestamp":"2022-01-01T00:00:01Z","name":"simple1","namespace":"ns1","resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000002"},"spec":{"channel":"stable"},"status":{"healthy":true}}
296+
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"addons.example.org/simpletest\":\"simple1\",\"example-app\":\"simpletest\"},\"name\":\"mydeployment\",\"namespace\":\"ns1\",\"ownerReferences\":[{\"apiVersion\":\"addons.example.org/v1alpha1\",\"blockOwnerDeletion\":true,\"controller\":true,\"kind\":\"SimpleTest\",\"name\":\"simple1\",\"uid\":\"00000000-0000-0000-0000-000000000002\"}]},\"spec\":{\"replicas\":3,\"selector\":{\"matchLabels\":{\"app\":\"bar\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"bar\"}},\"spec\":{\"containers\":[{\"image\":\"registry.k8s.io/pause:3.9\",\"name\":\"main\"}]}}}}\n"},"creationTimestamp":"2022-01-01T00:00:03Z","labels":{"addons.example.org/simpletest":"simple1","example-app":"simpletest"},"name":"mydeployment","namespace":"ns1","ownerReferences":[{"apiVersion":"addons.example.org/v1alpha1","blockOwnerDeletion":true,"controller":true,"kind":"SimpleTest","name":"simple1","uid":"00000000-0000-0000-0000-000000000002"}],"resourceVersion":"4","uid":"00000000-0000-0000-0000-000000000004"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"bar"}},"template":{"metadata":{"labels":{"app":"bar"}},"spec":{"containers":[{"image":"registry.k8s.io/pause:3.9","name":"main"}]}}}}

0 commit comments

Comments
 (0)