Move kubernetes version to global_config.
Added update actions for kubelet_master and kubelet resources, they will download demanded version if available and restart. Updated README with k8s version change instructions.
This commit is contained in:
parent
3013852e56
commit
1d71eba6a6
|
@ -24,3 +24,12 @@ Vagrant setup:
|
|||
14. watch solar orch report
|
||||
15. vagrant ssh solar-dev1
|
||||
16. kubectl get pods (it works!)
|
||||
|
||||
Kubernetes version change:
|
||||
1. log in to solar master node
|
||||
2. solar resource update kube-config k8s_version=v1.2.1
|
||||
3. solar changes stage
|
||||
4. solar changes process
|
||||
5. solar orch run-once
|
||||
6. watch solar orch report
|
||||
7. After a while, kubernetes will restart in desired version
|
||||
|
|
|
@ -16,6 +16,3 @@ kube_slaves:
|
|||
- 10.0.0.5
|
||||
- 10.0.0.6
|
||||
- 10.0.0.7
|
||||
- 10.0.0.8
|
||||
- 10.0.0.9
|
||||
- 10.0.0.10
|
||||
|
|
|
@ -19,3 +19,6 @@ input:
|
|||
service_cluster_ip_range:
|
||||
schema: str!
|
||||
value: 10.254.0.0/16
|
||||
k8s_version:
|
||||
schema: str!
|
||||
value: v1.2.2
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
become: yes
|
||||
tasks:
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/v1.2.2/bin/linux/amd64/kubelet
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubelet
|
||||
dest: /usr/bin/kubelet
|
||||
- shell: chmod +x /usr/bin/kubelet
|
||||
- file: name=/etc/kubernetes/manifests state=directory
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
- hosts: [{{host}}]
|
||||
become: yes
|
||||
tasks:
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubelet
|
||||
dest: /usr/bin/kubelet
|
||||
- shell: chmod +x /usr/bin/kubelet
|
||||
- file: name=/etc/kubernetes/manifests state=directory
|
||||
- template:
|
||||
src: {{templates_dir}}/kubelet.service
|
||||
dest: /etc/systemd/system/kubelet.service
|
||||
- template:
|
||||
src: {{templates_dir}}/kube-proxy.manifest
|
||||
dest: /etc/kubernetes/manifests/kube-proxy.manifest
|
||||
- shell: systemctl daemon-reload
|
||||
- service: name=kubelet state=restarted enabled=yes
|
|
@ -24,3 +24,6 @@ input:
|
|||
etcd_authority:
|
||||
schema: str
|
||||
value: ""
|
||||
k8s_version:
|
||||
schema: str!
|
||||
value: ""
|
||||
|
|
|
@ -6,7 +6,7 @@ spec:
|
|||
hostNetwork: true
|
||||
containers:
|
||||
- name: kube-proxy
|
||||
image: gcr.io/google_containers/hyperkube:v1.2.2
|
||||
image: gcr.io/google_containers/hyperkube:{{k8s_version}}
|
||||
command:
|
||||
- /hyperkube
|
||||
- proxy
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
become: yes
|
||||
tasks:
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/v1.2.2/bin/linux/amd64/kubectl
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubectl
|
||||
dest: /usr/bin/kubectl
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/v1.2.2/bin/linux/amd64/kubelet
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubelet
|
||||
dest: /usr/bin/kubelet
|
||||
- shell: chmod +x /usr/bin/kubectl
|
||||
- shell: chmod +x /usr/bin/kubelet
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
- hosts: [{{host}}]
|
||||
become: yes
|
||||
tasks:
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubectl
|
||||
dest: /usr/bin/kubectl
|
||||
- get_url:
|
||||
url: http://storage.googleapis.com/kubernetes-release/release/{{k8s_version}}/bin/linux/amd64/kubelet
|
||||
dest: /usr/bin/kubelet
|
||||
- shell: chmod +x /usr/bin/kubectl
|
||||
- shell: chmod +x /usr/bin/kubelet
|
||||
- file: name=/etc/kubernetes/manifests state=directory
|
||||
- template:
|
||||
src: {{templates_dir}}/kubelet.service
|
||||
dest: /etc/systemd/system/kubelet.service
|
||||
- template:
|
||||
src: {{templates_dir}}/kubelet_master.manifest
|
||||
dest: /etc/kubernetes/manifests/kubelet_master.manifest
|
||||
- service: name=kubelet state=restarted enabled=yes
|
||||
- wait_for: host={{master_host}} port={{master_port}} connect_timeout=5 state=started timeout=60
|
||||
- shell: kubectl get namespaces
|
||||
register: kube_namespaces
|
||||
- shell: kubectl create namespace kube-system
|
||||
when: "'kube-system' not in kube_namespaces.stdout"
|
|
@ -31,3 +31,6 @@ input:
|
|||
admission_control:
|
||||
schema: str!
|
||||
value: NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota
|
||||
k8s_version:
|
||||
schema: str!
|
||||
value: ""
|
||||
|
|
|
@ -38,7 +38,7 @@ spec:
|
|||
name: "etcd-datadir"
|
||||
|
||||
- name: kube-apiserver
|
||||
image: gcr.io/google_containers/hyperkube:v1.2.2
|
||||
image: gcr.io/google_containers/hyperkube:{{k8s_version}}
|
||||
command:
|
||||
- /hyperkube
|
||||
- apiserver
|
||||
|
@ -59,7 +59,7 @@ spec:
|
|||
name: "var-run-kubernetes"
|
||||
|
||||
- name: kube-controller-manager
|
||||
image: gcr.io/google_containers/hyperkube:v1.2.2
|
||||
image: gcr.io/google_containers/hyperkube:{{k8s_version}}
|
||||
command:
|
||||
- /hyperkube
|
||||
- controller-manager
|
||||
|
@ -73,7 +73,7 @@ spec:
|
|||
timeoutSeconds: 1
|
||||
|
||||
- name: kube-scheduler
|
||||
image: gcr.io/google_containers/hyperkube:v1.2.2
|
||||
image: gcr.io/google_containers/hyperkube:{{k8s_version}}
|
||||
command:
|
||||
- /hyperkube
|
||||
- scheduler
|
||||
|
@ -87,7 +87,7 @@ spec:
|
|||
timeoutSeconds: 1
|
||||
|
||||
- name: kube-proxy
|
||||
image: gcr.io/google_containers/hyperkube:v1.2.2
|
||||
image: gcr.io/google_containers/hyperkube:{{k8s_version}}
|
||||
command:
|
||||
- /hyperkube
|
||||
- proxy
|
||||
|
|
|
@ -50,6 +50,7 @@ def setup_master(config, user_config):
|
|||
|
||||
kubelet = cr.create('kubelet-master',
|
||||
'k8s/kubelet_master')['kubelet-master']
|
||||
config.connect(kubelet, {'k8s_version': 'k8s_version'})
|
||||
|
||||
calico = cr.create('calico-master', 'k8s/calico_master',
|
||||
{'options': "--nat-outgoing --ipip"})['calico-master']
|
||||
|
@ -141,7 +142,8 @@ def setup_slave_node(config, user_config, kubernetes_master, calico_master,
|
|||
kube_node.connect(kubelet, {'name': 'kubelet_hostname'})
|
||||
kubernetes_master.connect(kubelet, {'master_address': 'master_api'})
|
||||
config.connect(kubelet, {'cluster_domain': 'cluster_domain',
|
||||
'cluster_dns': 'cluster_dns'})
|
||||
'cluster_dns': 'cluster_dns',
|
||||
'k8s_version': 'k8s_version'})
|
||||
|
||||
add_event(Dep(docker.name, 'run', 'success', calico_node.name, 'run'))
|
||||
add_event(Dep(docker.name, 'run', 'success', kubelet.name, 'run'))
|
||||
|
|
Loading…
Reference in New Issue