Browse Source
Upgrade kubernetes to V1.11.x (#3078)
Upgrade kubernetes to V1.11.x (#3078)
Upgrade Kubernetes to V1.11.2 The kubeadm configuration file version has been upgraded from v1alpha1 to v1alpha2 Add bootstrap kubeadm-config.yaml with external etcdpull/3107/head
committed by
Matthew Mosesohn
13 changed files with 174 additions and 20 deletions
Split View
Diff Options
-
2.gitlab-ci.yml
-
2README.md
-
2inventory/sample/group_vars/k8s-cluster.yml
-
4roles/download/defaults/main.yml
-
23roles/kubernetes/kubeadm/tasks/main.yml
-
0roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha1.j2
-
13roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha2.j2
-
28roles/kubernetes/master/tasks/kubeadm-setup.yml
-
0roles/kubernetes/master/templates/kubeadm-config.v1alpha1.yaml.j2
-
115roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2
-
2roles/kubernetes/node/tasks/main.yml
-
2roles/kubespray-defaults/defaults/main.yaml
-
1tests/files/gce_opensuse-canal.yml
@ -0,0 +1,13 @@ |
|||
apiVersion: kubeadm.k8s.io/v1alpha2 |
|||
kind: NodeConfiguration |
|||
clusterName: {{ cluster_name }} |
|||
discoveryFile: "" |
|||
caCertPath: {{ kube_config_dir }}/ssl/ca.crt |
|||
discoveryToken: {{ kubeadm_token }} |
|||
tlsBootstrapToken: {{ kubeadm_token }} |
|||
token: {{ kubeadm_token }} |
|||
discoveryTokenAPIServers: |
|||
- {{ kubeadm_discovery_address | replace("https://", "")}} |
|||
discoveryTokenUnsafeSkipCAVerification: true |
|||
nodeRegistration: |
|||
name: {{ inventory_hostname }} |
@ -0,0 +1,115 @@ |
|||
apiVersion: kubeadm.k8s.io/v1alpha2 |
|||
kind: MasterConfiguration |
|||
api: |
|||
advertiseAddress: {{ ip | default(ansible_default_ipv4.address) }} |
|||
bindPort: {{ kube_apiserver_port }} |
|||
etcd: |
|||
external: |
|||
endpoints: |
|||
{% for endpoint in etcd_access_addresses.split(',') %} |
|||
- {{ endpoint }} |
|||
{% endfor %} |
|||
caFile: {{ kube_config_dir }}/ssl/etcd/ca.pem |
|||
certFile: {{ kube_config_dir }}/ssl/etcd/node-{{ inventory_hostname }}.pem |
|||
keyFile: {{ kube_config_dir }}/ssl/etcd/node-{{ inventory_hostname }}-key.pem |
|||
networking: |
|||
dnsDomain: {{ dns_domain }} |
|||
serviceSubnet: {{ kube_service_addresses }} |
|||
podSubnet: {{ kube_pods_subnet }} |
|||
kubernetesVersion: {{ kube_version }} |
|||
{% if cloud_provider is defined and cloud_provider != "gce" %} |
|||
cloudProvider: {{ cloud_provider }} |
|||
{% endif %} |
|||
kubeProxy: |
|||
config: |
|||
mode: {{ kube_proxy_mode }} |
|||
hostnameOverride: {{ inventory_hostname }} |
|||
authorizationModes: |
|||
{% for mode in authorization_modes %} |
|||
- {{ mode }} |
|||
{% endfor %} |
|||
apiServerExtraArgs: |
|||
bind-address: {{ kube_apiserver_bind_address }} |
|||
insecure-bind-address: {{ kube_apiserver_insecure_bind_address }} |
|||
insecure-port: "{{ kube_apiserver_insecure_port }}" |
|||
{% if kube_version | version_compare('v1.10', '<') %} |
|||
admission-control: {{ kube_apiserver_admission_control | join(',') }} |
|||
{% else %} |
|||
{% if kube_apiserver_enable_admission_plugins|length > 0 %} |
|||
enable-admission-plugins: {{ kube_apiserver_enable_admission_plugins | join(',') }} |
|||
{% endif %} |
|||
{% if kube_apiserver_disable_admission_plugins|length > 0 %} |
|||
disable-admission-plugins: {{ kube_apiserver_disable_admission_plugins | join(',') }} |
|||
{% endif %} |
|||
{% endif %} |
|||
apiserver-count: "{{ kube_apiserver_count }}" |
|||
{% if kube_version | version_compare('v1.9', '>=') %} |
|||
endpoint-reconciler-type: lease |
|||
{% endif %} |
|||
{% if etcd_events_cluster_enabled %} |
|||
etcd-servers-overrides: "/events#{{ etcd_events_access_addresses }}" |
|||
{% endif %} |
|||
service-node-port-range: {{ kube_apiserver_node_port_range }} |
|||
kubelet-preferred-address-types: "{{ kubelet_preferred_address_types }}" |
|||
{% if kube_basic_auth|default(true) %} |
|||
basic-auth-file: {{ kube_users_dir }}/known_users.csv |
|||
{% endif %} |
|||
{% if kube_oidc_auth|default(false) and kube_oidc_url is defined and kube_oidc_client_id is defined %} |
|||
oidc-issuer-url: {{ kube_oidc_url }} |
|||
oidc-client-id: {{ kube_oidc_client_id }} |
|||
{% if kube_oidc_ca_file is defined %} |
|||
oidc-ca-file: {{ kube_oidc_ca_file }} |
|||
{% endif %} |
|||
{% if kube_oidc_username_claim is defined %} |
|||
oidc-username-claim: {{ kube_oidc_username_claim }} |
|||
{% endif %} |
|||
{% if kube_oidc_groups_claim is defined %} |
|||
oidc-groups-claim: {{ kube_oidc_groups_claim }} |
|||
{% endif %} |
|||
{% endif %} |
|||
{% if kube_encrypt_secret_data %} |
|||
experimental-encryption-provider-config: {{ kube_config_dir }}/ssl/secrets_encryption.yaml |
|||
{% endif %} |
|||
storage-backend: {{ kube_apiserver_storage_backend }} |
|||
{% if kube_api_runtime_config is defined %} |
|||
runtime-config: {{ kube_api_runtime_config | join(',') }} |
|||
{% endif %} |
|||
allow-privileged: "true" |
|||
{% for key in kube_kubeadm_apiserver_extra_args %} |
|||
{{ key }}: "{{ kube_kubeadm_apiserver_extra_args[key] }}" |
|||
{% endfor %} |
|||
controllerManagerExtraArgs: |
|||
node-monitor-grace-period: {{ kube_controller_node_monitor_grace_period }} |
|||
node-monitor-period: {{ kube_controller_node_monitor_period }} |
|||
pod-eviction-timeout: {{ kube_controller_pod_eviction_timeout }} |
|||
{% if cloud_provider is defined and cloud_provider in ["openstack"] and openstack_cacert is defined %} |
|||
controllerManagerExtraVolumes: |
|||
- name: openstackcacert |
|||
hostPath: "{{ kube_config_dir }}/openstack-cacert.pem" |
|||
mountPath: "{{ kube_config_dir }}/openstack-cacert.pem" |
|||
{% endif %} |
|||
{% if kube_feature_gates %} |
|||
feature-gates: {{ kube_feature_gates|join(',') }} |
|||
{% endif %} |
|||
{% for key in kube_kubeadm_controller_extra_args %} |
|||
{{ key }}: "{{ kube_kubeadm_controller_extra_args[key] }}" |
|||
{% endfor %} |
|||
{% if kube_kubeadm_scheduler_extra_args|length > 0 %} |
|||
schedulerExtraArgs: |
|||
{% for key in kube_kubeadm_scheduler_extra_args %} |
|||
{{ key }}: "{{ kube_kubeadm_scheduler_extra_args[key] }}" |
|||
{% endfor %} |
|||
{% endif %} |
|||
apiServerCertSANs: |
|||
{% for san in apiserver_sans.split(' ') | unique %} |
|||
- {{ san }} |
|||
{% endfor %} |
|||
certificatesDir: {{ kube_config_dir }}/ssl |
|||
unifiedControlPlaneImage: "{{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}" |
|||
nodeRegistration: |
|||
{% if kube_override_hostname|default('') %} |
|||
name: {{ kube_override_hostname }} |
|||
{% endif %} |
|||
taints: |
|||
- effect: NoSchedule |
|||
key: node-role.kubernetes.io/master |
Write
Preview
Loading…
Cancel
Save