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)
|
||||
metricsAddress := ":0"
|
||||
//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"
|
||||
flag.StringVar(&configPath, "conf", configPath, "Location of yaml configuration file")
|
||||
|
@ -93,7 +89,8 @@ func main() {
|
|||
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
|
||||
Scheme: scheme,
|
||||
MetricsBindAddress: metricsAddress,
|
||||
LeaderElection: enableLeaderElection,
|
||||
LeaderElection: true,
|
||||
LeaderElectionID: "kops-controller-leader",
|
||||
})
|
||||
if err != nil {
|
||||
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
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
|
@ -21,7 +24,7 @@ metadata:
|
|||
k8s-app: kops-controller
|
||||
version: v1.15.0-alpha.1
|
||||
spec:
|
||||
replicas: 1
|
||||
replicas: 0
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: kops-controller
|
||||
|
@ -31,12 +34,43 @@ spec:
|
|||
k8s-addon: kops-controller.addons.k8s.io
|
||||
k8s-app: kops-controller
|
||||
version: v1.15.0-alpha.1
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
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:
|
||||
- key: "node-role.kubernetes.io/master"
|
||||
effect: NoSchedule
|
||||
operator: Exists
|
||||
nodeSelector:
|
||||
node-role.kubernetes.io/master: ""
|
||||
dnsPolicy: Default # Don't use cluster DNS (we are likely running before kube-dns)
|
||||
|
@ -124,3 +158,53 @@ subjects:
|
|||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: User
|
||||
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