Skip to content

Commit 53f7754

Browse files
authored
Merge pull request #1120 from praveenrewar/update-package-values
Expose values in kapp-controller package
2 parents 75b5f47 + beb89f1 commit 53f7754

19 files changed

+243
-29
lines changed

.github/workflows/kind-action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
3939
source ./hack/version-util.sh
4040
41-
ytt -f config -f config-dev -v dev.version="$(get_kappctrl_ver)+develop" | kbld -f- > kbld.out 2> kbldmeta.out
41+
ytt -f config/config -f config/values-schema.yml -f config-dev -v dev.version="$(get_kappctrl_ver)+develop" | kbld -f- > kbld.out 2> kbldmeta.out
4242
cat kbldmeta.out | tail -n 1 | sed 's/.*final: kapp-controller -> \(.*\)$/\1/p' | tail -n 1 | xargs kind load docker-image --name kinder
4343
kapp deploy -a kc -f kbld.out -c -y
4444

config/0-namespace.yml renamed to config/config/0-namespace.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
#! has Namespace first so that kubectl can can install kc
55
#! (kapp of course perm automatic ordering)
66

7-
#@ if/end data.values.namespace != "default" and data.values.create_namespace:
7+
#@ if/end data.values.namespace != "default" and data.values.createNamespace:
88
---
99
apiVersion: v1
1010
kind: Namespace
1111
metadata:
1212
name: #@ data.values.namespace
1313

14-
#@ if/end data.values.packaging_global_namespace != "" and data.values.create_packaging_namespace:
14+
#@ if/end data.values.packagingGlobalNamespace != "" and data.values.createPackagingNamespace:
1515
---
1616
apiVersion: v1
1717
kind: Namespace
1818
metadata:
19-
name: #@ data.values.packaging_global_namespace
19+
name: #@ data.values.packagingGlobalNamespace
File renamed without changes.
File renamed without changes.

config/deployment.yml renamed to config/config/deployment.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ spec:
2323
- name: kapp-controller
2424
image: kapp-controller
2525
args:
26-
- #@ "-packaging-global-namespace={}".format(data.values.packaging_global_namespace)
27-
#@ if/end data.values.dangerous_enable_pprof:
26+
- #@ "-packaging-global-namespace={}".format(data.values.packagingGlobalNamespace)
27+
#@ if/end data.values.dangerousEnablePprof:
2828
- -dangerous-enable-pprof=true
29-
- #@ "-enable-api-priority-and-fairness={}".format(data.values.enable_api_priority_and_fairness)
30-
- #@ "-tls-cipher-suites={}".format(data.values.tls_cipher_suites)
29+
- #@ "-enable-api-priority-and-fairness={}".format(data.values.enableApiPriorityAndFairness)
30+
- #@ "-tls-cipher-suites={}".format(data.values.tlsCipherSuites)
3131
env:
3232
- name: KAPPCTRL_MEM_TMP_DIR
3333
value: /etc/kappctrl-mem-tmp
@@ -38,7 +38,7 @@ spec:
3838
fieldRef:
3939
fieldPath: metadata.namespace
4040
- name: KAPPCTRL_API_PORT
41-
value: #@ str(data.values.api_port)
41+
value: #@ str(data.values.apiPort)
4242
resources:
4343
requests:
4444
cpu: 120m
@@ -49,7 +49,7 @@ spec:
4949
- name: home
5050
mountPath: /home/kapp-controller
5151
ports:
52-
- containerPort: #@ data.values.api_port
52+
- containerPort: #@ data.values.apiPort
5353
name: api
5454
protocol: TCP
5555
securityContext:
@@ -96,7 +96,7 @@ spec:
9696
- name: empty-sa
9797
emptyDir: {}
9898

99-
#@ if/end data.values.dangerous_enable_pprof:
99+
#@ if/end data.values.dangerousEnablePprof:
100100
---
101101
apiVersion: v1
102102
kind: Service

config/rbac.yml renamed to config/config/rbac.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ rules:
6363
- apiGroups: ["authorization.k8s.io"]
6464
resources: ["subjectaccessreviews"]
6565
verbs: ["create"]
66-
#@ if/end data.values.enable_api_priority_and_fairness:
66+
#@ if/end data.values.enableApiPriorityAndFairness:
6767
- apiGroups: ["flowcontrol.apiserver.k8s.io"]
6868
resources: ["prioritylevelconfigurations", "flowschemas"]
6969
verbs: ["list", "watch"]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#@ load("@ytt:overlay", "overlay")
2+
#@ load("@ytt:data", "data")
3+
4+
#@overlay/match by=overlay.subset({"kind":"Deployment","metadata":{"name": "kapp-controller"}})
5+
#@overlay/insert before=True
6+
---
7+
#! This optional Secret must be created before the kapp-controller pod launches in order to read it.
8+
apiVersion: v1
9+
kind: Secret
10+
metadata:
11+
#! Name must be `kapp-controller-config` for kapp controller to pick it up
12+
name: kapp-controller-config
13+
namespace: #@ data.values.namespace
14+
stringData: #@ data.values.config

config/overlays/crd-overlay.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#@ load("@ytt:overlay", "overlay")
2+
#@ load("@ytt:data", "data")
3+
4+
#@overlay/match by=overlay.subset({"metadata":{"name":"packagerepositories.packaging.carvel.dev"}})
5+
---
6+
metadata:
7+
#@overlay/match missing_ok=True
8+
annotations:
9+
packaging.carvel.dev/global-namespace: #@ data.values.packagingGlobalNamespace
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#@ load("@ytt:overlay", "overlay")
2+
#@ load("@ytt:data", "data")
3+
#@ load("@ytt:yaml", "yaml")
4+
5+
#@ def is_toleration_specified(toleration):
6+
#@ return toleration in yaml.decode(yaml.encode(data.values.tolerations))
7+
#@ end
8+
9+
#@ default_tolerations = []
10+
#@ is_primary_specified = is_toleration_specified({"effect":"NoSchedule", "key":"node-role.kubernetes.io/master"})
11+
#@ is_control_specified = is_toleration_specified({"effect":"NoSchedule", "key":"node-role.kubernetes.io/control-plane"})
12+
13+
#@ if is_primary_specified and not is_control_specified:
14+
#@ default_tolerations += [{"effect":"NoSchedule", "key":"node-role.kubernetes.io/control-plane"}]
15+
#@ end
16+
17+
#@overlay/match by=overlay.subset({"kind":"Deployment","metadata":{"name": "kapp-controller"}})
18+
---
19+
spec:
20+
template:
21+
#@overlay/match-child-defaults missing_ok=True
22+
spec:
23+
containers:
24+
#@overlay/match by=overlay.subset({"name":"kapp-controller"})
25+
- args:
26+
#@overlay/append
27+
- #@ "-concurrency={}".format(data.values.concurrency)
28+
#@overlay/append
29+
- #@ "-metrics-bind-address={}".format(data.values.metricsBindAddress)
30+
31+
#@overlay/match by=overlay.subset({"name":"kapp-controller-sidecarexec"})
32+
-
33+
#@ if/end data.values.coreDNSIP:
34+
volumeMounts:
35+
- mountPath: /etc
36+
name: etc
37+
38+
#@ if data.values.coreDNSIP:
39+
#! Using init container bypasses the restriction of not having root access in main container
40+
#! It modifies /etc/resolv.conf which is shared to main container
41+
initContainers:
42+
- args:
43+
- -c
44+
- #@ "cp /etc/resolv.conf /etc/resolv.conf.bak; sed '1 i nameserver " + data.values.coreDNSIP + "' /etc/resolv.conf.bak > /etc/resolv.conf; rm /etc/resolv.conf.bak; cp -R /etc/* /kapp-etc; chmod g+w /kapp-etc/pki/tls/certs/"
45+
command:
46+
- /bin/sh
47+
image: kapp-controller
48+
name: init-kapp-controller
49+
securityContext:
50+
allowPrivilegeEscalation: false
51+
runAsUser: 0
52+
volumeMounts:
53+
- mountPath: /kapp-etc
54+
name: etc
55+
#@ end
56+
#@ if/end data.values.hostNetwork:
57+
hostNetwork: #@ data.values.hostNetwork
58+
#@ if/end data.values.priorityClassName:
59+
priorityClassName: #@ data.values.priorityClassName
60+
#@ if hasattr(data.values, 'tolerations') and data.values.tolerations:
61+
tolerations: #@ default_tolerations + data.values.tolerations
62+
#@ end
63+
#@ if data.values.coreDNSIP:
64+
volumes:
65+
#@overlay/append
66+
- emptyDir:
67+
medium: Memory
68+
name: etc
69+
#@ end
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#@ load("@ytt:overlay", "overlay")
2+
#@ load("@ytt:data", "data")
3+
4+
#@ def matcher():
5+
kind: Deployment
6+
metadata:
7+
name: kapp-controller
8+
spec:
9+
template:
10+
spec:
11+
nodeSelector:
12+
node-role.kubernetes.io/master: ""
13+
#@ end
14+
15+
#@overlay/match expects="0+",by=overlay.subset({"kind":"Deployment"})
16+
---
17+
kind: Deployment
18+
spec:
19+
#@ if data.values.deployment.updateStrategy:
20+
#@overlay/match missing_ok=True
21+
strategy:
22+
type: #@ data.values.deployment.updateStrategy
23+
#@overlay/match missing_ok=True
24+
#@ if data.values.deployment.updateStrategy == "RollingUpdate":
25+
rollingUpdate:
26+
#@ if/end data.values.deployment.rollingUpdate.maxUnavailable != None:
27+
maxUnavailable: #@ data.values.deployment.rollingUpdate.maxUnavailable
28+
#@ if/end data.values.deployment.rollingUpdate.maxSurge != None:
29+
maxSurge: #@ data.values.deployment.rollingUpdate.maxSurge
30+
#@ end
31+
#@ end
32+
#@ if data.values.nodeSelector != None:
33+
template:
34+
spec:
35+
#@overlay/match missing_ok=True
36+
nodeSelector:
37+
#@ for key in data.values.nodeSelector:
38+
#@overlay/match missing_ok=True
39+
#@yaml/text-templated-strings
40+
(@= key @): #@ data.values.nodeSelector[key]
41+
#@ end
42+
#@ end
43+
44+
#@overlay/match expects="0+",by=overlay.subset({"kind":"DaemonSet"})
45+
---
46+
kind: DaemonSet
47+
spec:
48+
#@ if data.values.daemonset.updateStrategy:
49+
#@overlay/match missing_ok=True
50+
updateStrategy:
51+
type: #@ data.values.daemonset.updateStrategy
52+
#@ end
53+
54+
#@overlay/match by=overlay.subset(matcher()) , when=1
55+
---
56+
spec:
57+
template:
58+
spec:
59+
nodeSelector:
60+
#@overlay/remove
61+
node-role.kubernetes.io/master:
62+
#@overlay/match missing_ok=True
63+
node-role.kubernetes.io/control-plane: ""

0 commit comments

Comments
 (0)