Skip to content

Commit c68d174

Browse files
author
Scott Nichols
authored
Adding broker cleaner script to post-0.16.0 install (#3439)
* adding broker cleaner script to post-0.16.0 install * lint * lint * make script a bit more clear based on feedback. Testing * rename to broker-cleanup * update deps.
1 parent 888f88c commit c68d174

File tree

8 files changed

+554
-2
lines changed

8 files changed

+554
-2
lines changed

cmd/v0.16/broker-cleanup/README.md

+195
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# Broker cleanup post-0.16.0 install
2+
3+
The following is a log of testing commands to try out this job.
4+
5+
The job's log is the yaml of all resources that were deleted. The job uses
6+
eventing's service account.
7+
8+
---
9+
10+
## kind start cluster:
11+
12+
```
13+
cat <<EOF | kind create cluster --name broker --config=-
14+
kind: Cluster
15+
apiVersion: kind.x-k8s.io/v1alpha4
16+
nodes:
17+
- role: control-plane
18+
image: kindest/node:v1.16.9@sha256:7175872357bc85847ec4b1aba46ed1d12fa054c83ac7a8a11f5c268957fd5765
19+
- role: worker
20+
image: kindest/node:v1.16.9@sha256:7175872357bc85847ec4b1aba46ed1d12fa054c83ac7a8a11f5c268957fd5765
21+
EOF
22+
```
23+
24+
## install knative eventing 0.14:
25+
26+
```
27+
kubectl apply --selector knative.dev/crd-install=true --filename https://github.com/knative/eventing/releases/download/v0.14.0/eventing.yaml
28+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.14.0/eventing.yaml
29+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.14.0/in-memory-channel.yaml
30+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.14.0/channel-broker.yaml
31+
kubectl label namespace default knative-eventing-injection=enabled
32+
```
33+
34+
## monitor
35+
36+
```
37+
watch kubectl get broker,trigger,pingsource,deployments,rolebindings,serviceaccounts,roles
38+
```
39+
40+
## app install
41+
42+
```
43+
cat <<EOF | kubectl apply -f -
44+
apiVersion: sources.knative.dev/v1alpha2
45+
kind: PingSource
46+
metadata:
47+
name: test-ping-source
48+
spec:
49+
schedule: "*/1 * * * *"
50+
jsonData: '{"message": "OG- 0.14 Broker"}'
51+
sink:
52+
ref:
53+
# Deliver events to Broker.
54+
apiVersion: eventing.knative.dev/v1alpha1
55+
kind: Broker
56+
name: default
57+
---
58+
apiVersion: apps/v1
59+
kind: Deployment
60+
metadata:
61+
name: event-display
62+
spec:
63+
replicas: 1
64+
selector:
65+
matchLabels: &labels
66+
app: event-display
67+
template:
68+
metadata:
69+
labels: *labels
70+
spec:
71+
containers:
72+
- name: event-display
73+
image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display
74+
---
75+
kind: Service
76+
apiVersion: v1
77+
metadata:
78+
name: event-display
79+
spec:
80+
selector:
81+
app: event-display
82+
ports:
83+
- protocol: TCP
84+
port: 80
85+
targetPort: 8080
86+
---
87+
apiVersion: eventing.knative.dev/v1beta1
88+
kind: Trigger
89+
metadata:
90+
annotations:
91+
knative-eventing-injection: enabled
92+
name: testevents-trigger0
93+
namespace: default
94+
spec:
95+
broker: default
96+
filter:
97+
attributes:
98+
type: dev.knative.sources.ping
99+
subscriber:
100+
ref:
101+
apiVersion: v1
102+
kind: Service
103+
name: event-display
104+
EOF
105+
```
106+
107+
Add a broker.
108+
109+
```
110+
cat <<-EOF | kubectl apply -f -
111+
apiVersion: eventing.knative.dev/v1beta1
112+
kind: Broker
113+
metadata:
114+
name: fourteen
115+
spec: {}
116+
EOF
117+
```
118+
119+
## Upgrade to Eventing 0.15
120+
121+
```
122+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.0/storage-version-migration-v0.15.0.yaml
123+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.1/eventing.yaml
124+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.0/in-memory-channel.yaml
125+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.0/channel-broker.yaml
126+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.0/mt-channel-broker.yaml
127+
kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.15.0/upgrade-to-v0.15.0.yaml
128+
```
129+
130+
Add a broker.
131+
132+
```
133+
cat <<-EOF | kubectl apply -f -
134+
apiVersion: eventing.knative.dev/v1beta1
135+
kind: Broker
136+
metadata:
137+
name: fifteen
138+
spec: {}
139+
EOF
140+
```
141+
142+
# upgrade to Eventing 0.16 (nightly)
143+
144+
```
145+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/pre-install-to-v0.16.0.yaml
146+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/eventing.yaml
147+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/in-memory-channel.yaml
148+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/channel-broker.yaml
149+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/mt-channel-broker.yaml
150+
151+
rel-ko apply -f ./config/post-install/v0.16.0/
152+
or
153+
kubectl apply --filename https://storage.googleapis.com/knative-nightly/eventing/latest/post-install-to-v0.16.0.yaml
154+
```
155+
156+
Add a broker.
157+
158+
```
159+
cat <<-EOF | kubectl apply -f -
160+
apiVersion: eventing.knative.dev/v1beta1
161+
kind: Broker
162+
metadata:
163+
name: sixteen
164+
spec: {}
165+
EOF
166+
```
167+
168+
# clean up
169+
170+
```
171+
kind delete cluster --name broker
172+
```
173+
174+
## Notes:
175+
176+
What needs to be cleaned up:
177+
178+
### in knative-eventing
179+
180+
```
181+
broker-controller 0/0 0 0 10m
182+
broker-filter 0/0 0 0 10m
183+
broker-ingress 0/0 0 0 10m
184+
```
185+
186+
#### in your namespace:
187+
188+
```
189+
deployment.apps/default-broker-filter 1/1 1 1 10m
190+
deployment.apps/default-broker-ingress 1/1 1 1 10m
191+
serviceaccount/eventing-broker-filter 1 10m
192+
serviceaccount/eventing-broker-ingress 1 10m
193+
rolebinding.rbac.authorization.k8s.io/eventing-broker-filter 11m
194+
rolebinding.rbac.authorization.k8s.io/eventing-broker-ingress 11m
195+
```

cmd/v0.16/broker-cleanup/injection.go

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
Copyright 2020 The Knative Authors
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
http://www.apache.org/licenses/LICENSE-2.0
7+
Unless required by applicable law or agreed to in writing, software
8+
distributed under the License is distributed on an "AS IS" BASIS,
9+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10+
See the License for the specific language governing permissions and
11+
limitations under the License.
12+
*/
13+
14+
package main
15+
16+
import (
17+
"context"
18+
"fmt"
19+
20+
"knative.dev/pkg/controller"
21+
"knative.dev/pkg/injection"
22+
"knative.dev/pkg/injection/sharedmain"
23+
"knative.dev/pkg/signals"
24+
)
25+
26+
func injectionEnabled() context.Context {
27+
ctx := signals.NewContext()
28+
cfg := sharedmain.ParseAndGetConfigOrDie()
29+
ctx, informers := injection.Default.SetupInformers(ctx, cfg)
30+
31+
// Start the injection clients and informers.
32+
go func(ctx context.Context) {
33+
if err := controller.StartInformers(ctx.Done(), informers...); err != nil {
34+
panic(fmt.Sprintf("Failed to start informers - %s", err))
35+
}
36+
<-ctx.Done()
37+
}(ctx)
38+
39+
return ctx
40+
}

0 commit comments

Comments
 (0)