add scaleway-cloud-controller-manager

This commit is contained in:
Serge Logvinov
2022-02-03 22:37:08 +02:00
parent 6bdac47d10
commit a3837ad2d6
3 changed files with 169 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: cloud-controller-manager
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: system:cloud-controller-manager
rules:
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- create
- update
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- update
- apiGroups:
- ""
resources:
- nodes
verbs:
- '*'
- apiGroups:
- ""
resources:
- nodes/status
verbs:
- patch
- apiGroups:
- ""
resources:
- services
verbs:
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- services/status
verbs:
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- apiGroups:
- ""
resources:
- persistentvolumes
verbs:
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- endpoints
verbs:
- create
- get
- list
- watch
- update
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:cloud-controller-manager
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:cloud-controller-manager
subjects:
- kind: ServiceAccount
name: cloud-controller-manager
namespace: kube-system
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:cloud-controller-manager
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
name: cloud-controller-manager
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: scaleway-cloud-controller-manager
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
app: scaleway-cloud-controller-manager
revisionHistoryLimit: 2
template:
metadata:
labels:
app: scaleway-cloud-controller-manager
spec:
dnsPolicy: Default
hostNetwork: true
serviceAccountName: cloud-controller-manager
tolerations:
- key: "node.cloudprovider.kubernetes.io/uninitialized"
value: "true"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/master"
effect: NoSchedule
containers:
- name: scaleway-cloud-controller-manager
image: scaleway/scaleway-cloud-controller-manager:v0.21.4
imagePullPolicy: Always
args:
- --cloud-provider=scaleway
- --leader-elect=true
- --allow-untagged-cloud
resources:
requests:
cpu: 100m
memory: 50Mi
envFrom:
- secretRef:
name: scaleway-secret

View File

@@ -28,6 +28,9 @@ resource "scaleway_instance_server" "controlplane" {
lbv4 = local.lbv4
ipv4 = scaleway_instance_ip.controlplane[count.index].address
labels = "topology.kubernetes.io/region=fr-par"
access = var.scaleway_access
secret = var.scaleway_secret
project_id = var.scaleway_project_id
})
)
}

View File

@@ -83,6 +83,20 @@ cluster:
node-cidr-mask-size-ipv6: 112
scheduler: {}
etcd: {}
inlineManifests:
- name: scaleway-secret
contents: |-
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: scaleway-secret
namespace: kube-system
data:
SCW_ACCESS_KEY: ${base64encode(access)}
SCW_SECRET_KEY: ${base64encode(secret)}
SCW_DEFAULT_PROJECT_ID: ${base64encode(project_id)}
SCW_DEFAULT_REGION: ${base64encode("fr-par")}
externalCloudProvider:
enabled: true
manifests: