SUSE: Add support for openSUSE Leap 15
This also ensures that the OBS Virtualization repository is only created for Leap 42.X since Leap 15.X already contains the necessary LXC packages in the standard repos. Finally, we don't use the major version for the Leap 15 files since there is a currently a bug in Ansible[1] which returns 'NA' as major version for Leap 15. This patch does not add any jobs since there is a circular dependency with the lxc_container_create role. Once Leap 15 is supported in that role, we will add jobs in this role as well. [1]: https://github.com/ansible/ansible/issues/41410 Change-Id: I64e38ac7b7e8dec81b5f637301df8a112aa03d9b
This commit is contained in:
parent
36c6b3552d
commit
5f0f01c355
@ -32,6 +32,7 @@ galaxy_info:
|
||||
- 42.1
|
||||
- 42.2
|
||||
- 42.3
|
||||
- 15.0
|
||||
categories:
|
||||
- cloud
|
||||
- lxc
|
||||
|
@ -21,6 +21,7 @@
|
||||
repo: "{{ item.uri }}"
|
||||
runrefresh: yes
|
||||
with_items: "{{ lxc_hosts_external_repo }}"
|
||||
when: lxc_hosts_external_repo is defined
|
||||
tags:
|
||||
- lxc_hosts-config
|
||||
|
||||
@ -62,12 +63,25 @@
|
||||
tags:
|
||||
- lxc_hosts-config
|
||||
|
||||
- name: Determine latest openSUSE container build information
|
||||
uri:
|
||||
url: "{{ _lxc_hosts_container_image_url_base }}/Dockerfile"
|
||||
return_content: true
|
||||
register: _lxc_opensuse_image_build_info
|
||||
- name: Determine latest openSUSE container build information (Leap 15)
|
||||
# Leap 15.0
|
||||
block:
|
||||
# NOTE(hwoarang) The build ID changes all the time so we need to have a hack to determine the latest one
|
||||
# TODO: Talk to openSUSE people to improve that and possibly use the same location for 42.3 as well.
|
||||
- shell: |
|
||||
curl -s {{ _lxc_hosts_container_image_url_base }} | grep -P -o '{{ ansible_architecture }}.*?lxc.*?Buildlp.*?xz' | head -n 1
|
||||
register: _lxc_opensuse_image_build_info
|
||||
- set_fact:
|
||||
opensuse_image_build_info: "{{ _lxc_opensuse_image_build_info.stdout }}"
|
||||
when: ansible_distribution_version is version ('42', '<')
|
||||
|
||||
- name: Set fact for openSUSE container build information
|
||||
set_fact:
|
||||
opensuse_image_build_info: "{{ _lxc_opensuse_image_build_info.content|regex_search('Version: (.*)', '\\1')|join(' ') }}"
|
||||
- name: Determine latest openSUSE container build information (Leap 42)
|
||||
# Leap 42
|
||||
block:
|
||||
- uri:
|
||||
url: "{{ _lxc_hosts_container_image_url_base }}/Dockerfile"
|
||||
return_content: true
|
||||
register: _lxc_opensuse_image_build_info
|
||||
- set_fact:
|
||||
opensuse_image_build_info: "{{ _lxc_opensuse_image_build_info.content|regex_search('Version: (.*)', '\\1')|join(' ') }}"
|
||||
when: ansible_distribution_version is version ('42', '>=')
|
||||
|
@ -15,13 +15,12 @@
|
||||
# limitations under the License.
|
||||
|
||||
_lxc_hosts_container_image_url_base: "https://github.com/openSUSE/docker-containers-build/raw/openSUSE-Leap-{{ ansible_distribution_version }}/{{ ansible_architecture }}"
|
||||
|
||||
_lxc_hosts_container_image_url: "{{ _lxc_hosts_container_image_url_base }}/openSUSE-Leap-{{ ansible_distribution_version}}-{{ ansible_architecture }}-{{ opensuse_image_build_info }}.tar.xz"
|
||||
|
||||
_lxc_cache_map:
|
||||
distro: opensuse
|
||||
arch: "{{ lxc_architecture_mapping.get( ansible_architecture ) }}"
|
||||
release: "42.3"
|
||||
release: "{{ ansible_distribution_version }}"
|
||||
copy_from_host:
|
||||
- /etc/default/locale
|
||||
- /etc/environment
|
||||
@ -31,7 +30,7 @@ _lxc_cache_map:
|
||||
- /etc/zypp/repos.d/repo-oss.repo
|
||||
- /etc/zypp/repos.d/repo-update.repo
|
||||
|
||||
_lxc_cache_prep_template: "prep-scripts/opensuse_leap_42_prep.sh.j2"
|
||||
_lxc_cache_prep_template: "prep-scripts/opensuse_leap_prep.sh.j2"
|
||||
|
||||
_lxc_cache_distro_packages:
|
||||
- ca-certificates-mozilla
|
||||
|
54
vars/suse-host.yml
Normal file
54
vars/suse-host.yml
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# Copyright 2017, SUSE LINUX GmbH.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
lxc_hosts_external_repo:
|
||||
- name: "OBS:Virtualization:containers"
|
||||
uri: "{{ lxc_hosts_opensuse_mirror_obs_url }}/repositories/Virtualization:/containers/openSUSE_Leap_{{ ansible_distribution_version }}/"
|
||||
# NOTE(hwoarang) Leap 15.X is newer than 42.X and it has all the necessary LXC packages so we don't need
|
||||
# to use the OBS repository. As such we only add it if version is >= 42 so we can capture all the old Leap
|
||||
# releases. Using the external repo can be removed once we drop support for 42.X
|
||||
state: "{{ (ansible_distribution_version is version ('42', '>=')) | ternary ('present', 'absent') }}"
|
||||
|
||||
system_config_dir: "/etc/sysconfig"
|
||||
systemd_utils_prefix: "/usr/lib/systemd"
|
||||
|
||||
# Required rpm packages.
|
||||
lxc_hosts_distro_packages:
|
||||
- apparmor-parser
|
||||
- apparmor-profiles
|
||||
- apparmor-utils
|
||||
- aria2
|
||||
- bridge-utils
|
||||
- btrfsprogs
|
||||
- dbus-1
|
||||
- dnsmasq
|
||||
- git-core
|
||||
- libseccomp2
|
||||
- lxc
|
||||
- liblxc-devel
|
||||
- python-lxc-python2
|
||||
- systemd-container
|
||||
- xz
|
||||
|
||||
lxc_xz_bin: xz
|
||||
|
||||
lxc_cached_network_interfaces:
|
||||
- src: "lxc-net-suse-bridge.cfg.j2"
|
||||
dest: "/etc/sysconfig/network/ifcfg-{{ lxc_net_bridge }}"
|
||||
- src: "lxc-net-suseredhat-postdown.cfg.j2"
|
||||
dest: "/etc/sysconfig/network/scripts/ifdown-post-{{ lxc_net_bridge }}"
|
||||
mode: "0755"
|
||||
interface: "${1}"
|
56
vars/suse.yml
Normal file
56
vars/suse.yml
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
# Copyright 2017, SUSE LINUX GmbH.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
_lxc_hosts_container_image_url_base: "https://download.opensuse.org/repositories/Virtualization:/containers:/images:/openSUSE-Leap-{{ ansible_distribution_version }}/containers/"
|
||||
_lxc_hosts_container_image_url: "{{ _lxc_hosts_container_image_url_base }}/opensuse-leap-{{ ansible_distribution_version }}-image.{{ opensuse_image_build_info }}"
|
||||
|
||||
_lxc_cache_map:
|
||||
distro: opensuse
|
||||
arch: "{{ lxc_architecture_mapping.get( ansible_architecture ) }}"
|
||||
release: "{{ ansible_distribution_version }}"
|
||||
copy_from_host:
|
||||
- /etc/default/locale
|
||||
- /etc/environment
|
||||
- /etc/localtime
|
||||
- /etc/locale.conf
|
||||
- /etc/protocols
|
||||
- /etc/zypp/repos.d/repo-oss.repo
|
||||
- /etc/zypp/repos.d/repo-update.repo
|
||||
|
||||
_lxc_cache_prep_template: "prep-scripts/opensuse_leap_prep.sh.j2"
|
||||
|
||||
_lxc_cache_distro_packages:
|
||||
- ca-certificates-mozilla
|
||||
- cronie
|
||||
- dbus-1
|
||||
- gcc
|
||||
- iproute2
|
||||
- iputils
|
||||
- libffi-devel
|
||||
- libopenssl-devel
|
||||
- netcfg
|
||||
- openssh
|
||||
- openssl
|
||||
- python
|
||||
- python-devel
|
||||
- python-xml
|
||||
- rsync
|
||||
- sudo
|
||||
- systemd
|
||||
- systemd-sysvinit
|
||||
- tar
|
||||
- wget
|
||||
- which
|
Loading…
Reference in New Issue
Block a user