diff --git a/Vagrantfile b/Vagrantfile index 5e690cffff285e192eae80a06d3149a531129ae6..1c0d6d7b91952e4a311f47f9b81967fce4e69d58 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -13,15 +13,15 @@ COREOS_URL_TEMPLATE = "https://storage.googleapis.com/%s.release.core-os.net/amd DISK_UUID = Time.now.utc.to_i SUPPORTED_OS = { - "coreos-stable" => {box: "coreos-stable", bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["stable"]}, - "coreos-alpha" => {box: "coreos-alpha", bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["alpha"]}, - "coreos-beta" => {box: "coreos-beta", bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["beta"]}, - "ubuntu1604" => {box: "generic/ubuntu1604", bootstrap_os: "ubuntu", user: "vagrant"}, - "ubuntu1804" => {box: "generic/ubuntu1804", bootstrap_os: "ubuntu", user: "vagrant"}, - "centos" => {box: "centos/7", bootstrap_os: "centos", user: "vagrant"}, - "fedora" => {box: "fedora/28-cloud-base", bootstrap_os: "fedora", user: "vagrant"}, - "opensuse" => {box: "opensuse/openSUSE-42.3-x86_64", bootstrap_os: "opensuse", use: "vagrant"}, - "opensuse-tumbleweed" => {box: "opensuse/openSUSE-Tumbleweed-x86_64", bootstrap_os: "opensuse", use: "vagrant"}, + "coreos-stable" => {box: "coreos-stable", user: "core", box_url: COREOS_URL_TEMPLATE % ["stable"]}, + "coreos-alpha" => {box: "coreos-alpha", user: "core", box_url: COREOS_URL_TEMPLATE % ["alpha"]}, + "coreos-beta" => {box: "coreos-beta", user: "core", box_url: COREOS_URL_TEMPLATE % ["beta"]}, + "ubuntu1604" => {box: "generic/ubuntu1604", user: "vagrant"}, + "ubuntu1804" => {box: "generic/ubuntu1804", user: "vagrant"}, + "centos" => {box: "centos/7", user: "vagrant"}, + "fedora" => {box: "fedora/28-cloud-base", user: "vagrant"}, + "opensuse" => {box: "opensuse/openSUSE-42.3-x86_64", use: "vagrant"}, + "opensuse-tumbleweed" => {box: "opensuse/openSUSE-Tumbleweed-x86_64", use: "vagrant"}, } # Defaults for config options defined in CONFIG @@ -138,7 +138,6 @@ Vagrant.configure("2") do |config| ip = "#{$subnet}.#{i+100}" host_vars[vm_name] = { "ip": ip, - "bootstrap_os": SUPPORTED_OS[$os][:bootstrap_os], "local_release_dir" => $local_release_dir, "download_run_once": "False", "kube_network_plugin": $network_plugin diff --git a/contrib/terraform/aws/README.md b/contrib/terraform/aws/README.md index e677869d6146e3f6a9a419f8b94d4e91f63ee465..bb7e42476437fefe4a7ee58032302b191f41d169 100644 --- a/contrib/terraform/aws/README.md +++ b/contrib/terraform/aws/README.md @@ -43,7 +43,7 @@ ssh -F ./ssh-bastion.conf user@$ip Example (this one assumes you are using CoreOS) ```commandline -ansible-playbook -i ./inventory/hosts ./cluster.yml -e ansible_user=core -e bootstrap_os=coreos -b --become-user=root --flush-cache +ansible-playbook -i ./inventory/hosts ./cluster.yml -e ansible_user=core -b --become-user=root --flush-cache ``` ***Using other distrib than CoreOs*** If you want to use another distribution than CoreOS, you can modify the search filters of the 'data "aws_ami" "distro"' in variables.tf. diff --git a/contrib/terraform/openstack/README.md b/contrib/terraform/openstack/README.md index fbfc38990c3e55a25ba6051f058ae95175a18916..1b49603c9d0c975fcdb18f2f98bd3bd3e74d38b7 100644 --- a/contrib/terraform/openstack/README.md +++ b/contrib/terraform/openstack/README.md @@ -341,11 +341,6 @@ If it fails try to connect manually via SSH. It could be something as simple as ### Configure cluster variables Edit `inventory/$CLUSTER/group_vars/all.yml`: -- Set variable **bootstrap_os** appropriately for your desired image: -``` -# Valid bootstrap options (required): ubuntu, coreos, centos, none -bootstrap_os: coreos -``` - **bin_dir**: ``` # Directory where the binaries will be installed diff --git a/docs/coreos.md b/docs/coreos.md index f2884bba3593b056e051ac315d7b872031f500a9..bd0c735f6c0c5ee9bb9bb4412d421a25fcfa0978 100644 --- a/docs/coreos.md +++ b/docs/coreos.md @@ -6,7 +6,6 @@ Example with Ansible: Before running the cluster playbook you must satisfy the following requirements: General CoreOS Pre-Installation Notes: -- You should set the bootstrap_os variable to `coreos` - Ensure that the bin_dir is set to `/opt/bin` - ansible_python_interpreter should be `/opt/bin/python`. This will be laid down by the bootstrap task. - The default resolvconf_mode setting of `docker_dns` **does not** work for CoreOS. This is because we do not edit the systemd service file for docker on CoreOS nodes. Instead, just use the `host_resolvconf` mode. It should work out of the box. diff --git a/inventory/sample/group_vars/all/all.yml b/inventory/sample/group_vars/all/all.yml index 68e670ba9ffa04a50f31360646bfe0c021d9f1d2..042f1580a8333cd64f84e6eedc9d6f42cb39f9e0 100644 --- a/inventory/sample/group_vars/all/all.yml +++ b/inventory/sample/group_vars/all/all.yml @@ -1,9 +1,3 @@ -## Valid bootstrap options (required): ubuntu, coreos, centos, none -## If the OS is not listed here, it means it doesn't require extra/bootstrap steps. -## In example, python is not available on 'coreos' so it must be installed before -## anything else. In the opposite, Debian has already all its dependencies fullfiled, then bootstrap_os should be set to `none`. -bootstrap_os: none - ## Directory where etcd data stored etcd_data_dir: /var/lib/etcd diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index af49faefed62867d919a47fb0fbc44dfcefad5a5..c8e63a21185eb3fe8b4fa2dfd40130605b8dbe77 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -1,4 +1,25 @@ --- +- name: Fetch /etc/os-release + raw: cat /etc/os-release + register: os_release + changed_when: false + +- name: Set bootstrap_os + set_fact: + os_family: >- + {%- if 'Ubuntu' in os_release.stdout -%} + ubuntu + {%- elif 'Debian' in os_release.stdout -%} + debian + {%- elif 'CoreOS' in os_release.stdout -%} + coreos + {%- elif 'Fedora' in os_release.stdout -%} + fedora + {%- elif 'CentOS' in os_release.stdout -%} + centos + {%- elif 'OpenSUSE' in os_release.stdout -%} + opensuse + {% endif %} - include_tasks: bootstrap-ubuntu.yml when: os_family == "ubuntu" diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml index 6d8f8c497146d59ade01f1fa197f66656e8ab881..91a1e5cfa71728a5de35b39923cdaaa740f277b5 100644 --- a/roles/kubespray-defaults/defaults/main.yaml +++ b/roles/kubespray-defaults/defaults/main.yaml @@ -1,8 +1,4 @@ --- -## Required for bootstrap-os/preinstall/download roles and setting facts -# Valid bootstrap options (required): ubuntu, coreos, centos, none -bootstrap_os: none - # Use proxycommand if bastion host is in group all # This change obseletes editing ansible.cfg file depending on bastion existance ansible_ssh_common_args: "{% if 'bastion' in groups['all'] %} -o ProxyCommand='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -W %h:%p {{ hostvars['bastion']['ansible_user'] }}@{{ hostvars['bastion']['ansible_host'] }} {% if ansible_ssh_private_key_file is defined %}-i {{ ansible_ssh_private_key_file }}{% endif %} ' {% endif %}" diff --git a/tests/files/do_ubuntu-canal-ha.yml b/tests/files/do_ubuntu-canal-ha.yml index e91dfd7c171a2aaf645a054c7390cf68f4ba0ccb..05b5737d71cfaa433ac6c16712a331a5c43a5f60 100644 --- a/tests/files/do_ubuntu-canal-ha.yml +++ b/tests/files/do_ubuntu-canal-ha.yml @@ -3,7 +3,6 @@ cloud_region: nyc3 mode: ha # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: canal deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_coreos-alpha-weave-ha.yml b/tests/files/gce_coreos-alpha-weave-ha.yml index 883a67e2ac0db3279fb33dcaa6dd99496c8ff8f0..6754a515596566d647eabddb144d5d508e3c298f 100644 --- a/tests/files/gce_coreos-alpha-weave-ha.yml +++ b/tests/files/gce_coreos-alpha-weave-ha.yml @@ -7,7 +7,6 @@ startup_script: 'systemctl disable locksmithd && systemctl stop locksmithd' # Deployment settings kube_network_plugin: weave -bootstrap_os: coreos resolvconf_mode: host_resolvconf # this is required as long as the coreos stable channel uses docker < 1.12 deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_coreos-calico-aio.yml b/tests/files/gce_coreos-calico-aio.yml index 7f395abf10ab5d9d8ed07fa067dbd1fb612e367d..ca33bd98242a47bb80e01988d73f1bee02454481 100644 --- a/tests/files/gce_coreos-calico-aio.yml +++ b/tests/files/gce_coreos-calico-aio.yml @@ -8,7 +8,6 @@ startup_script: 'systemctl disable locksmithd && systemctl stop locksmithd' # Deployment settings no_group_vars: true -bootstrap_os: coreos kube_network_plugin: calico resolvconf_mode: host_resolvconf # this is required as long as the coreos stable channel uses docker < 1.12 deploy_netchecker: true diff --git a/tests/files/gce_coreos-canal.yml b/tests/files/gce_coreos-canal.yml index a3a750fd9134bf11e7c8da98aaa320810e58136e..ca4cdd98d5c6648561036f0163350094cb6d66a6 100644 --- a/tests/files/gce_coreos-canal.yml +++ b/tests/files/gce_coreos-canal.yml @@ -6,7 +6,6 @@ startup_script: 'systemctl disable locksmithd && systemctl stop locksmithd' # Deployment settings kube_network_plugin: canal -bootstrap_os: coreos resolvconf_mode: host_resolvconf # this is required as long as the coreos stable channel uses docker < 1.12 deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_coreos-cilium.yml b/tests/files/gce_coreos-cilium.yml index 1778929f09bf3289bf6becd867d432e4a159f4c5..eb2b002c52a4f75b6511e6865242aa3a25f2ff01 100644 --- a/tests/files/gce_coreos-cilium.yml +++ b/tests/files/gce_coreos-cilium.yml @@ -6,7 +6,6 @@ startup_script: 'systemctl disable locksmithd && systemctl stop locksmithd' # Deployment settings kube_network_plugin: cilium -bootstrap_os: coreos resolvconf_mode: host_resolvconf # this is required as long as the coreos stable channel uses docker < 1.12 deploy_netchecker: true enable_network_policy: true diff --git a/tests/files/gce_coreos-vault-upgrade.yml b/tests/files/gce_coreos-vault-upgrade.yml index 6430271885368c55cb01d0f149044979fcbf3cba..e0c2ac7d5a28ef84a32467d30e76f6f0278c75ac 100644 --- a/tests/files/gce_coreos-vault-upgrade.yml +++ b/tests/files/gce_coreos-vault-upgrade.yml @@ -5,7 +5,6 @@ cloud_region: us-central1-b mode: aio # Instance settings -bootstrap_os: coreos cert_management: vault kube_network_plugin: flannel deploy_netchecker: true diff --git a/tests/files/gce_debian8-calico-upgrade.yml b/tests/files/gce_debian8-calico-upgrade.yml index 01041007a6feb6706e396923b77084ecf5566d68..54c5979250d9cee543753a5eee45f5485d90d9b8 100644 --- a/tests/files/gce_debian8-calico-upgrade.yml +++ b/tests/files/gce_debian8-calico-upgrade.yml @@ -5,7 +5,6 @@ mode: default # Deployment settings kube_network_plugin: calico -bootstrap_os: debian deploy_netchecker: true kubedns_min_replicas: 1 cloud_provider: gce diff --git a/tests/files/gce_opensuse-canal.yml b/tests/files/gce_opensuse-canal.yml index e5bea621cc64d95f991b9d9160635cfa38a13dd4..eb30255edcf8be011d5ba1464d4011a4ffb67fe8 100644 --- a/tests/files/gce_opensuse-canal.yml +++ b/tests/files/gce_opensuse-canal.yml @@ -4,7 +4,6 @@ cloud_region: us-central1-c mode: default # Deployment settings -bootstrap_os: opensuse kube_network_plugin: canal deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_ubuntu-canal-ha.yml b/tests/files/gce_ubuntu-canal-ha.yml index 241c7d5a29ae2047462a0a07b361de5b825f212c..351d646222a7a8b205aca1ca165421d04c66719c 100644 --- a/tests/files/gce_ubuntu-canal-ha.yml +++ b/tests/files/gce_ubuntu-canal-ha.yml @@ -4,7 +4,6 @@ cloud_region: us-central1-c mode: ha # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: canal deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_ubuntu-canal-kubeadm.yml b/tests/files/gce_ubuntu-canal-kubeadm.yml index affb852fe7a0710caf54ef601c24020b31186ffe..afe46938bd37e190cf410a46589f9a60d585fe7e 100644 --- a/tests/files/gce_ubuntu-canal-kubeadm.yml +++ b/tests/files/gce_ubuntu-canal-kubeadm.yml @@ -5,7 +5,6 @@ cloud_region: us-central1-c mode: ha # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: canal kubeadm_enabled: true dynamic_kubelet_configuration: true diff --git a/tests/files/gce_ubuntu-flannel-sep.yml b/tests/files/gce_ubuntu-flannel-sep.yml index df77a46b3a9522da1d66ea78883d5eb070bcee59..6a5568e1d88837c9ab2f5bbc97c74d50a52cc0a6 100644 --- a/tests/files/gce_ubuntu-flannel-sep.yml +++ b/tests/files/gce_ubuntu-flannel-sep.yml @@ -4,7 +4,6 @@ cloud_region: us-central1-a mode: separate # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: flannel deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_ubuntu-rkt-sep.yml b/tests/files/gce_ubuntu-rkt-sep.yml index b15989231e311597e8c7a837b1a09b1ae67ce805..718a23ba1d79edbcfdf54e2b59750a9def528dd0 100644 --- a/tests/files/gce_ubuntu-rkt-sep.yml +++ b/tests/files/gce_ubuntu-rkt-sep.yml @@ -4,7 +4,6 @@ cloud_region: us-central1-c mode: separate # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: flannel etcd_deployment: rkt kubelet_deployment: rkt diff --git a/tests/files/gce_ubuntu-vault-sep.yml b/tests/files/gce_ubuntu-vault-sep.yml index 60ce0c37ff83e1250ed59a67da4b3060d1f70e79..c09be7c3822a5e53417593d686d333aaaf5bec56 100644 --- a/tests/files/gce_ubuntu-vault-sep.yml +++ b/tests/files/gce_ubuntu-vault-sep.yml @@ -5,7 +5,6 @@ cloud_region: us-central1-b mode: separate # Instance settings -bootstrap_os: ubuntu cert_management: vault kube_network_plugin: canal deploy_netchecker: true diff --git a/tests/files/gce_ubuntu-weave-sep.yml b/tests/files/gce_ubuntu-weave-sep.yml index 4598672d10c3a0afeb2ada83d6f1611c2f7035b7..a805b24bfb319445e14f1d2190858f510f081c22 100644 --- a/tests/files/gce_ubuntu-weave-sep.yml +++ b/tests/files/gce_ubuntu-weave-sep.yml @@ -4,7 +4,6 @@ cloud_region: us-central1-c mode: separate # Deployment settings -bootstrap_os: ubuntu kube_network_plugin: weave deploy_netchecker: true kubedns_min_replicas: 1 diff --git a/tests/files/gce_ubuntu18-flannel-aio.yml b/tests/files/gce_ubuntu18-flannel-aio.yml index 9df1fa7edbf44413b82126f808da96397c161726..3ef7aa83c511fb06f7fd2531d3a25ed36288fccc 100644 --- a/tests/files/gce_ubuntu18-flannel-aio.yml +++ b/tests/files/gce_ubuntu18-flannel-aio.yml @@ -5,8 +5,6 @@ cloud_machine_type: "n1-standard-1" mode: aio # Deployment settings -kubeadm_enabled: false -bootstrap_os: ubuntu kube_network_plugin: flannel dynamic_kubelet_configuration: true deploy_netchecker: true