Skip to content
This repository was archived by the owner on Oct 10, 2023. It is now read-only.

Commit 1f58e93

Browse files
committed
add CRS for featuregates package
Signed-off-by: Harish Yayi <yharish991@gmail.com>
1 parent a251b9a commit 1f58e93

File tree

3 files changed

+202
-1
lines changed

3 files changed

+202
-1
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
#@ load("@ytt:data", "data")
2+
#@ load("@ytt:yaml", "yaml")
3+
4+
#@ def featuregates_package_install_definition():
5+
---
6+
apiVersion: v1
7+
kind: ServiceAccount
8+
metadata:
9+
name: tanzu-featuregates-package-sa
10+
namespace: tkg-system
11+
---
12+
apiVersion: rbac.authorization.k8s.io/v1
13+
kind: ClusterRole
14+
metadata:
15+
name: tanzu-featuregates-package-cluster-role
16+
rules:
17+
- apiGroups:
18+
- ""
19+
resources:
20+
- configmaps
21+
verbs:
22+
- create
23+
- update
24+
- delete
25+
- get
26+
- list
27+
- watch
28+
- apiGroups:
29+
- ""
30+
resources:
31+
- serviceaccounts
32+
- services
33+
verbs:
34+
- get
35+
- create
36+
- update
37+
- watch
38+
- list
39+
- apiGroups:
40+
- apps
41+
resources:
42+
- deployments
43+
verbs:
44+
- create
45+
- update
46+
- delete
47+
- get
48+
- list
49+
- watch
50+
- apiGroups:
51+
- apiextensions.k8s.io
52+
resources:
53+
- customresourcedefinitions
54+
verbs:
55+
- create
56+
- update
57+
- delete
58+
- get
59+
- list
60+
- watch
61+
- apiGroups:
62+
- cert-manager.io
63+
resources:
64+
- certificates
65+
- issuers
66+
verbs:
67+
- get
68+
- create
69+
- update
70+
- list
71+
- watch
72+
- apiGroups:
73+
- admissionregistration.k8s.io
74+
resources:
75+
- validatingwebhookconfigurations
76+
verbs:
77+
- get
78+
- create
79+
- update
80+
- list
81+
- watch
82+
- apiGroups:
83+
- rbac.authorization.k8s.io
84+
resources:
85+
- clusterroles
86+
- clusterrolebindings
87+
verbs:
88+
- get
89+
- create
90+
- update
91+
- list
92+
- watch
93+
- apiGroups:
94+
- config.tanzu.vmware.com
95+
resources:
96+
- featuregates
97+
verbs:
98+
- create
99+
- delete
100+
- get
101+
- list
102+
- patch
103+
- update
104+
- watch
105+
- apiGroups:
106+
- config.tanzu.vmware.com
107+
resources:
108+
- featuregates/status
109+
verbs:
110+
- get
111+
- patch
112+
- update
113+
- apiGroups:
114+
- config.tanzu.vmware.com
115+
resources:
116+
- features
117+
verbs:
118+
- get
119+
- list
120+
- watch
121+
- apiGroups:
122+
- config.tanzu.vmware.com
123+
resources:
124+
- features/status
125+
verbs:
126+
- get
127+
- patch
128+
- update
129+
- apiGroups:
130+
- ""
131+
resources:
132+
- namespaces
133+
verbs:
134+
- get
135+
- list
136+
- watch
137+
---
138+
apiVersion: rbac.authorization.k8s.io/v1
139+
kind: ClusterRoleBinding
140+
metadata:
141+
name: tanzu-featuregates-package-cluster-rolebinding
142+
roleRef:
143+
apiGroup: rbac.authorization.k8s.io
144+
kind: ClusterRole
145+
name: tanzu-featuregates-package-cluster-role
146+
subjects:
147+
- kind: ServiceAccount
148+
name: tanzu-featuregates-package-sa
149+
namespace: tkg-system
150+
---
151+
apiVersion: packaging.carvel.dev/v1alpha1
152+
kind: PackageInstall
153+
metadata:
154+
name: tanzu-featuregates-manager
155+
namespace: tkg-system
156+
spec:
157+
serviceAccountName: tanzu-featuregates-package-sa
158+
packageRef:
159+
refName: featuregates.tanzu.vmware.com
160+
versionSelection:
161+
prereleases: {}
162+
---
163+
#@ end
164+
165+
#@ if data.values.TKG_CLUSTER_ROLE != "workload":
166+
#@ if data.values.DISABLE_CRS_FOR_ADDON_TYPE and "packages/management-packages" in data.values.DISABLE_CRS_FOR_ADDON_TYPE:
167+
--- #@ featuregates_package_install_definition()
168+
#@ else:
169+
---
170+
apiVersion: addons.cluster.x-k8s.io/v1alpha3
171+
kind: ClusterResourceSet
172+
metadata:
173+
name: #@ "{}-featuregates-package".format(data.values.CLUSTER_NAME)
174+
labels:
175+
cluster.x-k8s.io/cluster-name: #@ data.values.CLUSTER_NAME
176+
annotations:
177+
tkg.tanzu.vmware.com/addon-type: "packages/management-packages"
178+
spec:
179+
strategy: "ApplyOnce"
180+
clusterSelector:
181+
matchLabels:
182+
tkg.tanzu.vmware.com/cluster-name: #@ data.values.CLUSTER_NAME
183+
resources:
184+
- name: #@ "{}-featuregates-package-crs".format(data.values.CLUSTER_NAME)
185+
kind: Secret
186+
---
187+
apiVersion: v1
188+
kind: Secret
189+
metadata:
190+
name: #@ "{}-featuregates-package-crs".format(data.values.CLUSTER_NAME)
191+
type: addons.cluster.x-k8s.io/resource-set
192+
stringData:
193+
value: #@ yaml.encode(featuregates_package_install_definition())
194+
#@ end
195+
#@ end

pkg/v1/tkg/client/upgrade_addon.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,11 @@ func (c *TkgClient) DoUpgradeAddon(regionalClusterClient clusterclient.Client, /
210210
return errors.Errorf("upgrade of '%s' component is only supported on management cluster", addonName)
211211
}
212212
crsDisabledAddon = true
213+
case "packages/management-packages":
214+
if !options.IsRegionalCluster {
215+
return errors.Errorf("upgrade of '%s' component is only supported on management cluster", addonName)
216+
}
217+
crsDisabledAddon = true
213218
default:
214219
return errors.Errorf("upgrade of '%s' component is not supported", addonName)
215220
}

pkg/v1/tkg/client/upgrade_cluster.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,8 @@ func (c *TkgClient) upgradeAddonPreNodeUpgrade(regionalClusterClient clusterclie
348348
"addons-management/tanzu-addons-manager",
349349
"tkr/tkr-controller",
350350
"addons-management/core-package-repo",
351-
"packages/management-package-repo")
351+
"packages/management-package-repo",
352+
"packages/management-packages")
352353
}
353354
upgradeClusterMetadataOptions := &UpgradeAddonOptions{
354355
AddonNames: addonsToBeUpgraded,

0 commit comments

Comments
 (0)