mirror of https://github.com/kubernetes/kops.git
Move kops-controller to daemonset
We also scale-down the old Deployment to have 0 replicas, to be sure to stop it. We can remove it later when we have proper pruning here.
This commit is contained in:
parent
32a6c08b8e
commit
c210eb8d15
|
@ -55,10 +55,6 @@ func main() {
|
||||||
// Disable metrics by default (avoid port conflicts, also risky because we are host network)
|
// Disable metrics by default (avoid port conflicts, also risky because we are host network)
|
||||||
metricsAddress := ":0"
|
metricsAddress := ":0"
|
||||||
//flag.StringVar(&metricsAddr, "metrics-addr", metricsAddress, "The address the metric endpoint binds to.")
|
//flag.StringVar(&metricsAddr, "metrics-addr", metricsAddress, "The address the metric endpoint binds to.")
|
||||||
// Enable leader election
|
|
||||||
enableLeaderElection := false
|
|
||||||
//flag.BoolVar(&enableLeaderElection, "enable-leader-election", enableLeaderElection,
|
|
||||||
// "Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
|
|
||||||
|
|
||||||
configPath := "/etc/kubernetes/kops-controller/config.yaml"
|
configPath := "/etc/kubernetes/kops-controller/config.yaml"
|
||||||
flag.StringVar(&configPath, "conf", configPath, "Location of yaml configuration file")
|
flag.StringVar(&configPath, "conf", configPath, "Location of yaml configuration file")
|
||||||
|
@ -93,7 +89,8 @@ func main() {
|
||||||
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
|
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
|
||||||
Scheme: scheme,
|
Scheme: scheme,
|
||||||
MetricsBindAddress: metricsAddress,
|
MetricsBindAddress: metricsAddress,
|
||||||
LeaderElection: enableLeaderElection,
|
LeaderElection: true,
|
||||||
|
LeaderElectionID: "kops-controller-leader",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
setupLog.Error(err, "unable to start manager")
|
setupLog.Error(err, "unable to start manager")
|
||||||
|
|
|
@ -11,6 +11,9 @@ data:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Deployment of size 0, to move from Deployment to DaemonSet
|
||||||
|
# TODO: Remove in beta? (it's only been on master branch)
|
||||||
|
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -21,7 +24,7 @@ metadata:
|
||||||
k8s-app: kops-controller
|
k8s-app: kops-controller
|
||||||
version: v1.15.0-alpha.1
|
version: v1.15.0-alpha.1
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 0
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
k8s-app: kops-controller
|
k8s-app: kops-controller
|
||||||
|
@ -31,12 +34,43 @@ spec:
|
||||||
k8s-addon: kops-controller.addons.k8s.io
|
k8s-addon: kops-controller.addons.k8s.io
|
||||||
k8s-app: kops-controller
|
k8s-app: kops-controller
|
||||||
version: v1.15.0-alpha.1
|
version: v1.15.0-alpha.1
|
||||||
annotations:
|
|
||||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
|
||||||
spec:
|
spec:
|
||||||
|
serviceAccountName: default
|
||||||
|
containers:
|
||||||
|
- name: sleep
|
||||||
|
image: k8s.gcr.io/pause-amd64:3.0
|
||||||
|
command: [ "/pause" ]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: DaemonSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
metadata:
|
||||||
|
name: kops-controller
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
k8s-addon: kops-controller.addons.k8s.io
|
||||||
|
k8s-app: kops-controller
|
||||||
|
version: v1.15.0-alpha.1
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
k8s-app: kops-controller
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxUnavailable: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
k8s-addon: kops-controller.addons.k8s.io
|
||||||
|
k8s-app: kops-controller
|
||||||
|
version: v1.15.0-alpha.1
|
||||||
|
spec:
|
||||||
|
priorityClassName: system-node-critical
|
||||||
tolerations:
|
tolerations:
|
||||||
- key: "node-role.kubernetes.io/master"
|
- key: "node-role.kubernetes.io/master"
|
||||||
effect: NoSchedule
|
operator: Exists
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
node-role.kubernetes.io/master: ""
|
node-role.kubernetes.io/master: ""
|
||||||
dnsPolicy: Default # Don't use cluster DNS (we are likely running before kube-dns)
|
dnsPolicy: Default # Don't use cluster DNS (we are likely running before kube-dns)
|
||||||
|
@ -124,3 +158,53 @@ subjects:
|
||||||
- apiGroup: rbac.authorization.k8s.io
|
- apiGroup: rbac.authorization.k8s.io
|
||||||
kind: User
|
kind: User
|
||||||
name: system:serviceaccount:kube-system:kops-controller
|
name: system:serviceaccount:kube-system:kops-controller
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
k8s-addon: kops-controller.addons.k8s.io
|
||||||
|
name: kops-controller
|
||||||
|
namespace: kube-system
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
resourceNames:
|
||||||
|
- kops-controller-leader
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
# Workaround for https://github.com/kubernetes/kubernetes/issues/80295
|
||||||
|
# We can't restrict creation of objects by name
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
k8s-addon: kops-controller.addons.k8s.io
|
||||||
|
name: kops-controller
|
||||||
|
namespace: kube-system
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: kops-controller
|
||||||
|
subjects:
|
||||||
|
- apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: User
|
||||||
|
name: system:serviceaccount:kube-system:kops-controller
|
||||||
|
|
Loading…
Reference in New Issue