Skip to content

Commit a880153

Browse files
committed
Add an example configuration for dual stack
Provides an example CCM daemonset based on the original that enables dual stack networking. Signed-off-by: Nolan Brubaker <nolan@nbrubaker.com>
1 parent 2dd0dac commit a880153

9 files changed

Lines changed: 298 additions & 0 deletions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: RoleBinding
4+
metadata:
5+
name: cloud-controller-manager:apiserver-authentication-reader
6+
namespace: kube-system
7+
roleRef:
8+
apiGroup: rbac.authorization.k8s.io
9+
kind: Role
10+
name: extension-apiserver-authentication-reader
11+
subjects:
12+
- apiGroup: ""
13+
kind: ServiceAccount
14+
name: cloud-controller-manager
15+
namespace: kube-system
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: DaemonSet
4+
metadata:
5+
name: aws-cloud-controller-manager
6+
namespace: kube-system
7+
labels:
8+
k8s-app: aws-cloud-controller-manager
9+
spec:
10+
selector:
11+
matchLabels:
12+
k8s-app: aws-cloud-controller-manager
13+
updateStrategy:
14+
type: RollingUpdate
15+
template:
16+
metadata:
17+
labels:
18+
k8s-app: aws-cloud-controller-manager
19+
spec:
20+
nodeSelector:
21+
node-role.kubernetes.io/control-plane: ""
22+
tolerations:
23+
- key: node.cloudprovider.kubernetes.io/uninitialized
24+
value: "true"
25+
effect: NoSchedule
26+
- key: node-role.kubernetes.io/control-plane
27+
effect: NoSchedule
28+
serviceAccountName: cloud-controller-manager
29+
containers:
30+
- name: aws-cloud-controller-manager
31+
image: registry.k8s.io/provider-aws/cloud-controller-manager:v1.27.1
32+
args:
33+
- --v=2
34+
- --cloud-provider=aws
35+
# Use the superset-role overlay if you don't want a token per controller
36+
- --use-service-account-credentials=true
37+
# Set --configure-cloud-routes=true if required by your CNI
38+
- --configure-cloud-routes=false
39+
- --cloud-config=/etc/kubernetes/cloud-config.conf
40+
volumeMounts:
41+
- name: cloud-config
42+
mountPath: /etc/kubernetes/cloud-config.conf
43+
subPath: cloud-config.conf
44+
resources:
45+
requests:
46+
cpu: 200m
47+
hostNetwork: true
48+
volumes:
49+
- name: cloud-config
50+
configMap:
51+
name: cloud-config
52+
---
53+
54+
apiVersion: v1
55+
kind: ConfigMap
56+
metadata:
57+
name: cloud-config
58+
namespace: kube-system
59+
data:
60+
cloud-config.conf: |
61+
[Global]
62+
NodeIPFamilies=ipv6
63+
NodeIPFamilies=ipv4
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
kind: ClusterRoleBinding
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
metadata:
5+
name: system:cloud-controller-manager
6+
roleRef:
7+
apiGroup: rbac.authorization.k8s.io
8+
kind: ClusterRole
9+
name: system:cloud-controller-manager
10+
subjects:
11+
- apiGroup: ""
12+
kind: ServiceAccount
13+
name: cloud-controller-manager
14+
namespace: kube-system
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRole
3+
metadata:
4+
name: system:cloud-controller-manager
5+
rules:
6+
- apiGroups:
7+
- ""
8+
resources:
9+
- events
10+
verbs:
11+
- create
12+
- patch
13+
- update
14+
- apiGroups:
15+
- ""
16+
resources:
17+
- nodes
18+
verbs:
19+
- '*'
20+
- apiGroups:
21+
- ""
22+
resources:
23+
- nodes/status
24+
verbs:
25+
- patch
26+
- apiGroups:
27+
- ""
28+
resources:
29+
- services
30+
verbs:
31+
- list
32+
- patch
33+
- update
34+
- watch
35+
- apiGroups:
36+
- ""
37+
resources:
38+
- services/status
39+
verbs:
40+
- list
41+
- patch
42+
- update
43+
- watch
44+
- apiGroups:
45+
- ""
46+
resources:
47+
- serviceaccounts
48+
verbs:
49+
- create
50+
- get
51+
- list
52+
- watch
53+
- apiGroups:
54+
- ""
55+
resources:
56+
- persistentvolumes
57+
verbs:
58+
- get
59+
- list
60+
- update
61+
- watch
62+
- apiGroups:
63+
- ""
64+
resources:
65+
- endpoints
66+
verbs:
67+
- create
68+
- get
69+
- list
70+
- watch
71+
- update
72+
- apiGroups:
73+
- coordination.k8s.io
74+
resources:
75+
- leases
76+
verbs:
77+
- create
78+
- get
79+
- list
80+
- watch
81+
- update
82+
- apiGroups:
83+
- ""
84+
resources:
85+
- serviceaccounts/token
86+
verbs:
87+
- create
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
resources:
2+
- apiserver-authentication-reader-role-binding.yaml
3+
- aws-cloud-controller-manager-daemonset.yaml
4+
- cluster-role-binding.yaml
5+
- cluster-role.yaml
6+
- service-account.yaml
7+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: cloud-controller-manager
6+
namespace: kube-system
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: DaemonSet
4+
metadata:
5+
name: aws-cloud-controller-manager
6+
namespace: kube-system
7+
spec:
8+
template:
9+
spec:
10+
serviceAccountName: cloud-controller-manager
11+
containers:
12+
- name: aws-cloud-controller-manager
13+
args:
14+
- --v=2
15+
- --cloud-provider=aws
16+
- --use-service-account-credentials=false
17+
# Set --configure-cloud-routes=true if required by your CNI
18+
- --configure-cloud-routes=false
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: ClusterRole
4+
metadata:
5+
name: system:cloud-controller-manager
6+
rules:
7+
- apiGroups:
8+
- ""
9+
resources:
10+
- events
11+
verbs:
12+
- create
13+
- patch
14+
- update
15+
- apiGroups:
16+
- ""
17+
resources:
18+
- nodes
19+
verbs:
20+
- get
21+
- list
22+
- patch
23+
- update
24+
- watch
25+
- apiGroups:
26+
- ""
27+
resources:
28+
- nodes/status
29+
verbs:
30+
- patch
31+
- apiGroups:
32+
- ""
33+
resources:
34+
- services
35+
verbs:
36+
- list
37+
- patch
38+
- update
39+
- watch
40+
- apiGroups:
41+
- ""
42+
resources:
43+
- services/status
44+
verbs:
45+
- patch
46+
- update
47+
- apiGroups:
48+
- ""
49+
resources:
50+
- serviceaccounts
51+
verbs:
52+
- create
53+
- apiGroups:
54+
- ""
55+
resources:
56+
- endpoints
57+
verbs:
58+
- create
59+
- get
60+
- list
61+
- update
62+
- watch
63+
- apiGroups:
64+
- coordination.k8s.io
65+
resources:
66+
- leases
67+
verbs:
68+
- create
69+
- get
70+
- list
71+
- update
72+
- watch
73+
- apiGroups:
74+
- ""
75+
resourceNames:
76+
- node-controller
77+
- service-controller
78+
- route-controller
79+
resources:
80+
- serviceaccounts/token
81+
verbs:
82+
- create
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
resources:
2+
- ../../base
3+
4+
patches:
5+
- cluster-role-patch.yaml
6+
- aws-cloud-controller-manager-daemonset-patch.yaml

0 commit comments

Comments
 (0)