From 0ed1919a38414bfb8f52d0b4955114a00089e798 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Tue, 6 Feb 2018 12:45:02 +0000 Subject: [PATCH 01/14] Vagrantfile: Add support for openSUSE Leap 42.3 Add support for provisioning kubespray on openSUSE Leap 42.3 virtual machines. --- Vagrantfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Vagrantfile b/Vagrantfile index 536bbff2b..b9464f806 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -18,6 +18,7 @@ SUPPORTED_OS = { "coreos-beta" => {box: "coreos-beta", bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["beta"]}, "ubuntu" => {box: "bento/ubuntu-16.04", bootstrap_os: "ubuntu", user: "vagrant"}, "centos" => {box: "centos/7", bootstrap_os: "centos", user: "vagrant"}, + "opensuse" => {box: "opensuse/openSUSE-42.3-x86_64", bootstrap_os: "opensuse", use: "vagrant"}, } # Defaults for config options defined in CONFIG From 112ccfa9dbae176f2f0ddda72dd4c9f6b2740bb5 Mon Sep 17 00:00:00 2001 From: Nirmoy Das Date: Thu, 22 Feb 2018 15:17:57 +0100 Subject: [PATCH 02/14] Vagrantfile: Add support for openSUSE Tumbleweed Add support for provisioning kubespray on openSUSE Tumbleweed virtual machines. --- Vagrantfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Vagrantfile b/Vagrantfile index b9464f806..0b86f7eda 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -19,6 +19,7 @@ SUPPORTED_OS = { "ubuntu" => {box: "bento/ubuntu-16.04", bootstrap_os: "ubuntu", user: "vagrant"}, "centos" => {box: "centos/7", bootstrap_os: "centos", 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"}, } # Defaults for config options defined in CONFIG From e113d1ccabb50c89034d52868bd36015b6006f4b Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 11 Apr 2018 16:59:11 +0100 Subject: [PATCH 03/14] Vagrantfile: Use rsync to copy working directory to VM Depending on the VM configuration, vagrant may either use 'rsync' or vboxfs for populating the working directory to the VM. However, vboxfs means that any files created by the VM will also be present on the host. As such, lets be explicit and always use 'rsync' to copy the directory to the VM so we can keep the host copy clean. Moreover, the default rsync options include '--copy-links' and this breaks rsync if there are missing symlinks in the working directory like the following one: Error: symlink has no referent: "/home/user/kubespray/contrib/network-storage/glusterfs/group_vars" As such, we override the default options to drop --copy-links. --- Vagrantfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 0b86f7eda..cf174ef77 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -86,7 +86,6 @@ Vagrant.configure("2") do |config| if Vagrant.has_plugin?("vagrant-vbguest") then config.vbguest.auto_update = false end - (1..$num_instances).each do |i| config.vm.define vm_name = "%s-%02d" % [$instance_name_prefix, i] do |config| config.vm.hostname = vm_name @@ -112,8 +111,10 @@ Vagrant.configure("2") do |config| end end + config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__args: ['--verbose', '--archive', '--delete', '-z'] + $shared_folders.each do |src, dst| - config.vm.synced_folder src, dst + config.vm.synced_folder src, dst, type: "rsync", rsync__args: ['--verbose', '--archive', '--delete', '-z'] end config.vm.provider :virtualbox do |vb| From dca47773471d69ad478e0d012cf1829c21f944ef Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Mon, 19 Feb 2018 10:03:12 +0000 Subject: [PATCH 04/14] roles: bootstrap-os: Add support for SUSE distributions Install some required packages when running on SUSE distributions. --- roles/bootstrap-os/tasks/bootstrap-opensuse.yml | 7 +++++++ roles/bootstrap-os/tasks/main.yml | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 roles/bootstrap-os/tasks/bootstrap-opensuse.yml diff --git a/roles/bootstrap-os/tasks/bootstrap-opensuse.yml b/roles/bootstrap-os/tasks/bootstrap-opensuse.yml new file mode 100644 index 000000000..abedd2195 --- /dev/null +++ b/roles/bootstrap-os/tasks/bootstrap-opensuse.yml @@ -0,0 +1,7 @@ +--- +- name: Install required packages (SUSE) + package: + name: "{{ item }}" + state: present + with_items: + - python-cryptography diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index 01031deeb..139e22b5e 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -11,6 +11,9 @@ - import_tasks: bootstrap-centos.yml when: bootstrap_os == "centos" +- import_tasks: bootstrap-opensuse.yml + when: bootstrap_os == "opensuse" + - import_tasks: setup-pipelining.yml - name: check if atomic host From 4ba25326ed23d646646c151f6cf853bf9f79cac5 Mon Sep 17 00:00:00 2001 From: Nirmoy Das Date: Thu, 22 Feb 2018 15:54:40 +0000 Subject: [PATCH 05/14] roles: bootstrap-os: Use 'hostname' command on Tumbleweed openSUSE Tumbleweed is having the same problems with CoreOS when it comes to using the hostname ansible module (#1588, #1600) so we need to apply a similar workaround. Co-authored-by: Markos Chandras Link: http://bugzilla.opensuse.org/show_bug.cgi?id=997614 --- roles/bootstrap-os/tasks/main.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index 139e22b5e..c921b643e 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -29,18 +29,25 @@ gather_subset: '!all' filter: ansible_* -- name: Assign inventory name to unconfigured hostnames (non-CoreOS) +- name: Assign inventory name to unconfigured hostnames (non-CoreOS and Tumbleweed) hostname: name: "{{inventory_hostname}}" - when: ansible_os_family not in ['CoreOS', 'Container Linux by CoreOS'] and override_system_hostname + when: + - override_system_hostname + - ansible_distribution not in ['openSUSE Tumbleweed'] + - ansible_os_family not in ['CoreOS', 'Container Linux by CoreOS'] -- name: Assign inventory name to unconfigured hostnames (CoreOS only) +- name: Assign inventory name to unconfigured hostnames (CoreOS and Tumbleweed only) command: "hostnamectl set-hostname {{inventory_hostname}}" register: hostname_changed - when: ansible_hostname == 'localhost' and ansible_os_family in ['CoreOS', 'Container Linux by CoreOS'] and override_system_hostname + when: + - ansible_hostname == 'localhost' + - ansible_distribution in ['openSUSE Tumbleweed'] or ansible_os_family in ['CoreOS', 'Container Linux by CoreOS'] + - override_system_hostname -- name: Update hostname fact (CoreOS only) +- name: Update hostname fact (CoreOS and Tumbleweed only) setup: gather_subset: '!all' filter: ansible_hostname - when: ansible_os_family in ['CoreOS', 'Container Linux by CoreOS'] and hostname_changed.changed + when: + - hostname_changed.changed From e42203a13efebfdf1a41e756b8b9fe04eda75c5c Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Tue, 6 Feb 2018 12:58:17 +0000 Subject: [PATCH 06/14] roles: kubernetes: preinstall: Add SUSE support Add support for installing package dependencies and refreshing metadata on SUSE distributions Co-authored-by: Nirmoy Das --- roles/kubernetes/preinstall/tasks/main.yml | 9 +++++++++ roles/kubernetes/preinstall/tasks/verify-settings.yml | 4 ++-- roles/kubernetes/preinstall/vars/suse.yml | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 roles/kubernetes/preinstall/vars/suse.yml diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 652e35682..cd5dd7acd 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -143,6 +143,15 @@ - not is_atomic tags: bootstrap-os +- name: Update package management cache (zypper) - SUSE + shell: zypper -n --gpg-auto-import-keys ref + register: make_cache_output + until: make_cache_output|succeeded + retries: 4 + delay: "{{ retry_stagger | random + 3 }}" + when: + - ansible_pkg_mgr == 'zypper' + tags: bootstrap-os - name: Update package management cache (APT) apt: diff --git a/roles/kubernetes/preinstall/tasks/verify-settings.yml b/roles/kubernetes/preinstall/tasks/verify-settings.yml index 8f0a2e854..5f647101d 100644 --- a/roles/kubernetes/preinstall/tasks/verify-settings.yml +++ b/roles/kubernetes/preinstall/tasks/verify-settings.yml @@ -12,7 +12,7 @@ - name: Stop if unknown OS assert: - that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'CoreOS', 'Container Linux by CoreOS'] + that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'CoreOS', 'Container Linux by CoreOS', 'openSUSE Leap', 'openSUSE Tumbleweed'] ignore_errors: "{{ ignore_assert_errors }}" - name: Stop if unknown network plugin @@ -94,4 +94,4 @@ assert: that: ansible_kernel.split('-')[0]|version_compare('4.8', '>=') when: kube_network_plugin == 'cilium' - ignore_errors: "{{ ignore_assert_errors }}" \ No newline at end of file + ignore_errors: "{{ ignore_assert_errors }}" diff --git a/roles/kubernetes/preinstall/vars/suse.yml b/roles/kubernetes/preinstall/vars/suse.yml new file mode 100644 index 000000000..3f4f9aee9 --- /dev/null +++ b/roles/kubernetes/preinstall/vars/suse.yml @@ -0,0 +1,4 @@ +--- +required_pkgs: + - device-mapper + - ebtables From 45eac53ec7d67c4d974eda2a1e10ccb808215819 Mon Sep 17 00:00:00 2001 From: Nirmoy Das Date: Thu, 22 Feb 2018 16:19:20 +0000 Subject: [PATCH 07/14] roles: kubernetes: preinstall: Install openssl-1.1.0 on Tumbleweed The openssl package on Tumbleweed is actually a virtual package covering openssl-1.0.0 and openssl-1.1.0 implementations. It defaults to 1.1.0 so when trying to install it and openssl-1.0.0 is installed, zypper fails with conflicts. As such, lets explicitly pull the package that we need which also updates the virtual one. Co-authored-by: Markos Chandras --- roles/kubernetes/preinstall/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index 149cbb42a..3bf847fb9 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -8,7 +8,7 @@ epel_enabled: false common_required_pkgs: - python-httplib2 - - openssl + - "{{ (ansible_distribution == 'openSUSE Tumbleweed') | ternary('openssl-1_1_0', 'openssl') }}" - curl - rsync - bash-completion From 44a0626fc87e9c8d267ca17cdfd16c43ac423cf4 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Tue, 6 Feb 2018 13:35:40 +0000 Subject: [PATCH 08/14] roles: docker: Add support for SUSE distributions Add support for installing Docker on SUSE distributions. The Docker repository at https://yum.dockerproject.org/repo/main/ does not support recent openSUSE distributions so the only alternative is to use the packages from the distro repositories. This however renders the 'docker_version' Ansible variable useless on SUSE. --- roles/docker/tasks/main.yml | 16 ++++++++++++---- roles/docker/templates/docker.service.j2 | 6 ++++++ roles/docker/vars/suse.yml | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 roles/docker/vars/suse.yml diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 729397b44..2b5c24f5e 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -15,6 +15,14 @@ tags: - facts +# https://yum.dockerproject.org/repo/main/opensuse/ contains packages for an EOL +# openSUSE version so we can't use it. The only alternative is to use the docker +# packages from the distribution repositories. +- name: Warn about Docker version on SUSE + debug: + msg: "SUSE distributions always install Docker from the distro repos" + when: ansible_pkg_mgr == 'zypper' + - include_tasks: set_facts_dns.yml when: dns_mode != 'none' and resolvconf_mode == 'docker_dns' tags: @@ -43,7 +51,7 @@ retries: 4 delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ docker_repo_key_info.repo_keys }}" - when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat"] or is_atomic) + when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat", "Suse"] or is_atomic) - name: ensure docker-ce repository is enabled action: "{{ docker_repo_info.pkg_repo }}" @@ -51,7 +59,7 @@ repo: "{{item}}" state: present with_items: "{{ docker_repo_info.repos }}" - when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat"] or is_atomic) and (docker_repo_info.repos|length > 0) + when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat", "Suse"] or is_atomic) and (docker_repo_info.repos|length > 0) - name: ensure docker-engine repository public key is installed action: "{{ dockerproject_repo_key_info.pkg_key }}" @@ -64,7 +72,7 @@ retries: 4 delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ dockerproject_repo_key_info.repo_keys }}" - when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat"] or is_atomic) + when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat", "Suse"] or is_atomic) - name: ensure docker-engine repository is enabled action: "{{ dockerproject_repo_info.pkg_repo }}" @@ -72,7 +80,7 @@ repo: "{{item}}" state: present with_items: "{{ dockerproject_repo_info.repos }}" - when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat"] or is_atomic) and (dockerproject_repo_info.repos|length > 0) + when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS", "RedHat", "Suse"] or is_atomic) and (dockerproject_repo_info.repos|length > 0) - name: Configure docker repository on RedHat/CentOS template: diff --git a/roles/docker/templates/docker.service.j2 b/roles/docker/templates/docker.service.j2 index d8efe2025..8dc82bbb2 100644 --- a/roles/docker/templates/docker.service.j2 +++ b/roles/docker/templates/docker.service.j2 @@ -7,6 +7,9 @@ Wants=docker-storage-setup.service {% elif ansible_os_family == "Debian" %} After=network.target docker.socket Wants=docker.socket +{% elif ansible_os_family == "Suse" %} +After=network.target containerd.socket containerd.service +Requires=containerd.socket containerd.service {% endif %} [Service] @@ -19,6 +22,9 @@ ExecReload=/bin/kill -s HUP $MAINPID Delegate=yes KillMode=process ExecStart={{ docker_bin_dir }}/docker{% if installed_docker_version.stdout|version_compare('17.03', '<') %} daemon{% else %}d{% endif %} \ +{% if ansible_os_family == "Suse" %} + --containerd /run/containerd/containerd.sock --add-runtime oci=/usr/bin/docker-runc \ +{% endif %} $DOCKER_OPTS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ diff --git a/roles/docker/vars/suse.yml b/roles/docker/vars/suse.yml new file mode 100644 index 000000000..d89a50a7f --- /dev/null +++ b/roles/docker/vars/suse.yml @@ -0,0 +1,15 @@ +--- +docker_kernel_min_version: '0' + +docker_package_info: + pkg_mgr: zypper + pkgs: + - name: docker + +docker_repo_key_info: + pkg_key: '' + repo_keys: [] + +docker_repo_info: + pkg_repo: '' + repos: [] From cdb63a8c498db5b6fcdd8494ad4c0000f83ab441 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 11 Apr 2018 13:27:59 +0100 Subject: [PATCH 09/14] roles: docker: Ensure service is started if docker is already installed If the 'docker' package is already installed, then the handlers will not run and the service will not be (re-)started. As such, lets make sure that the service is started even if the packages are already installed. --- roles/docker/tasks/main.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 2b5c24f5e..3668f61b8 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -118,6 +118,12 @@ notify: restart docker when: not (ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] or is_atomic) and (docker_package_info.pkgs|length > 0) +- name: ensure service is started if docker packages are already present + service: + name: docker + state: started + when: docker_task_result is not changed + - name: flush handlers so we can wait for docker to come up meta: flush_handlers From 2d3478125966018bafbe86550893da98eb9f4ac2 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 7 Feb 2018 07:56:13 +0000 Subject: [PATCH 10/14] roles: etcd: Add support for SUSE distributions Add path for certificate location for SUSE distributions. Also make sure the 'update-ca-certificates' command is executed on SUSE hosts as well. --- roles/etcd/tasks/upd_ca_trust.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/etcd/tasks/upd_ca_trust.yml b/roles/etcd/tasks/upd_ca_trust.yml index dd36554fb..0ff363860 100644 --- a/roles/etcd/tasks/upd_ca_trust.yml +++ b/roles/etcd/tasks/upd_ca_trust.yml @@ -8,6 +8,8 @@ /etc/pki/ca-trust/source/anchors/etcd-ca.crt {%- elif ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] -%} /etc/ssl/certs/etcd-ca.pem + {%- elif ansible_os_family == "Suse" -%} + /etc/pki/trust/anchors/etcd-ca.pem {%- endif %} tags: - facts @@ -19,9 +21,9 @@ remote_src: true register: etcd_ca_cert -- name: Gen_certs | update ca-certificates (Debian/Ubuntu/Container Linux by CoreOS) +- name: Gen_certs | update ca-certificates (Debian/Ubuntu/SUSE/Container Linux by CoreOS) command: update-ca-certificates - when: etcd_ca_cert.changed and ansible_os_family in ["Debian", "CoreOS", "Container Linux by CoreOS"] + when: etcd_ca_cert.changed and ansible_os_family in ["Debian", "CoreOS", "Container Linux by CoreOS", "Suse"] - name: Gen_certs | update ca-certificates (RedHat) command: update-ca-trust extract From d07f75b38967c42d2bafe4b9976daa5283e8bb3e Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 7 Feb 2018 08:18:31 +0000 Subject: [PATCH 11/14] roles: kubernetes: secrets: Add SUSE support Add path for certificate location for SUSE distributions. Also make sure the 'update-ca-certificates' command is executed on SUSE hosts as well. --- roles/kubernetes/secrets/tasks/upd_ca_trust.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/kubernetes/secrets/tasks/upd_ca_trust.yml b/roles/kubernetes/secrets/tasks/upd_ca_trust.yml index eec44987f..cdd5f48fa 100644 --- a/roles/kubernetes/secrets/tasks/upd_ca_trust.yml +++ b/roles/kubernetes/secrets/tasks/upd_ca_trust.yml @@ -8,6 +8,8 @@ /etc/pki/ca-trust/source/anchors/kube-ca.crt {%- elif ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] -%} /etc/ssl/certs/kube-ca.pem + {%- elif ansible_os_family == "Suse" -%} + /etc/pki/trust/anchors/kube-ca.pem {%- endif %} tags: - facts @@ -19,9 +21,9 @@ remote_src: true register: kube_ca_cert -- name: Gen_certs | update ca-certificates (Debian/Ubuntu/Container Linux by CoreOS) +- name: Gen_certs | update ca-certificates (Debian/Ubuntu/SUSE/Container Linux by CoreOS) command: update-ca-certificates - when: kube_ca_cert.changed and ansible_os_family in ["Debian", "CoreOS", "Container Linux by CoreOS"] + when: kube_ca_cert.changed and ansible_os_family in ["Debian", "CoreOS", "Container Linux by CoreOS", "Suse"] - name: Gen_certs | update ca-certificates (RedHat) command: update-ca-trust extract From 02bf742e15bcd821be69ccbab17b2d267b7a9024 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Mon, 12 Feb 2018 12:11:57 +0000 Subject: [PATCH 12/14] roles: rkt: Add support for SUSE distributions The RPM file that's provided by upstream can be used for SUSE distributions as well. Moreover we simplify the playbook to use the 'package' module to install packages across different distros. Link: https://github.com/rkt/rkt/pull/3904 --- roles/rkt/tasks/install.yml | 17 +++-------------- roles/rkt/vars/suse.yml | 2 ++ 2 files changed, 5 insertions(+), 14 deletions(-) create mode 100644 roles/rkt/vars/suse.yml diff --git a/roles/rkt/tasks/install.yml b/roles/rkt/tasks/install.yml index 599f9e50e..cbaaf4085 100644 --- a/roles/rkt/tasks/install.yml +++ b/roles/rkt/tasks/install.yml @@ -15,22 +15,11 @@ tags: - facts -- name: install rkt pkg on ubuntu - apt: - deb: "{{ rkt_download_url }}/{{ rkt_pkg_name }}" +- name: install rkt pkg + package: + name: "{{ rkt_download_url }}/{{ rkt_pkg_name }}" state: present register: rkt_task_result until: rkt_task_result|succeeded retries: 4 delay: "{{ retry_stagger | random + 3 }}" - when: ansible_os_family == "Debian" - -- name: install rkt pkg on centos - yum: - pkg: "{{ rkt_download_url }}/{{ rkt_pkg_name }}" - state: present - register: rkt_task_result - until: rkt_task_result|succeeded - retries: 4 - delay: "{{ retry_stagger | random + 3 }}" - when: ansible_os_family == "RedHat" diff --git a/roles/rkt/vars/suse.yml b/roles/rkt/vars/suse.yml new file mode 100644 index 000000000..13149e8fb --- /dev/null +++ b/roles/rkt/vars/suse.yml @@ -0,0 +1,2 @@ +--- +rkt_pkg_name: "rkt-{{ rkt_pkg_version }}.x86_64.rpm" From d75b5d6931820ff87f3460f57be57a5f63c2c922 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 7 Feb 2018 11:21:56 +0000 Subject: [PATCH 13/14] README.md: Add openSUSE Leap and Tumbleweed as supported distributions --- README.md | 2 ++ docs/opensuse.md | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 docs/opensuse.md diff --git a/README.md b/README.md index 9ceb241c0..094c36bb6 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ Documents - [Vagrant install](docs/vagrant.md) - [CoreOS bootstrap](docs/coreos.md) - [Debian Jessie setup](docs/debian.md) +- [openSUSE setup](docs/opensuse.md) - [Downloaded artifacts](docs/downloads.md) - [Cloud providers](docs/cloud.md) - [OpenStack](docs/openstack.md) @@ -70,6 +71,7 @@ Supported Linux Distributions - **Ubuntu** 16.04 - **CentOS/RHEL** 7 - **Fedora/CentOS** Atomic +- **openSUSE** Leap 42.3/Tumbleweed Note: Upstart/SysV init based OS types are not supported. diff --git a/docs/opensuse.md b/docs/opensuse.md new file mode 100644 index 000000000..88fac3790 --- /dev/null +++ b/docs/opensuse.md @@ -0,0 +1,19 @@ +openSUSE Leap 42.3 and Tumbleweed +=============== + +openSUSE Leap installation Notes: + +- Install Ansible + + ``` + sudo zypper ref + sudo zypper -n install ansible + + ``` + +- Install Jinja2 and Python-Netaddr + + ```sudo zypper -n install python-Jinja2 python-netaddr``` + + +Now you can continue with [Preparing your deployment](getting-started.md#starting-custom-deployment) From bc3abad602cfa701b9f431ceec756f5ab28f71cb Mon Sep 17 00:00:00 2001 From: Michal Rostecki Date: Thu, 15 Mar 2018 14:11:42 +0100 Subject: [PATCH 14/14] tests: Add CI jobs for openSUSE --- .gitlab-ci.yml | 15 +++++++++++++++ tests/files/gce_opensuse-canal.yml | 12 ++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 tests/files/gce_opensuse-canal.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6a1eef6ab..e03e64017 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -308,6 +308,10 @@ before_script: # stage: deploy-special MOVED_TO_GROUP_VARS: "true" +.opensuse_canal_variables: &opensuse_canal_variables +# stage: deploy-part2 + MOVED_TO_GROUP_VARS: "true" + # Builds for PRs only (premoderated by unit-tests step) and triggers (auto) ### PR JOBS PART1 @@ -589,6 +593,17 @@ gce_centos7-calico-ha-triggers: when: on_success only: ['triggers'] +gce_opensuse-canal: + stage: deploy-part2 + <<: *job + <<: *gce + variables: + <<: *gce_variables + <<: *opensuse_canal_variables + when: manual + except: ['triggers'] + only: ['master', /^pr-.*$/] + # no triggers yet https://github.com/kubernetes-incubator/kargo/issues/613 gce_coreos-alpha-weave-ha: stage: deploy-special diff --git a/tests/files/gce_opensuse-canal.yml b/tests/files/gce_opensuse-canal.yml new file mode 100644 index 000000000..9eae57e2e --- /dev/null +++ b/tests/files/gce_opensuse-canal.yml @@ -0,0 +1,12 @@ +# Instance settings +cloud_image_family: opensuse-leap +cloud_region: us-central1-c +mode: default + +# Deployment settings +bootstrap_os: opensuse +kube_network_plugin: canal +kubeadm_enabled: true +deploy_netchecker: true +kubedns_min_replicas: 1 +cloud_provider: gce