ensure-skopeo: add install from upstream option
To test current buildx we need a later skopeo that understands the OCI manifest formats. c.f. the zuul-executor image updates with Iab667a92a5b6e6f8591db2aa435a782913d9d34f. A recent enough version (1.9) isn't packaged for any LTS distros. So add an upstream option, but it's only implemented (for now) on Jammy, where we will test with it. Change-Id: I206a3cbfb16575f409771d96c2b7e49929e61a49
This commit is contained in:
parent
272e701d55
commit
32be2d9067
@ -1 +1,17 @@
|
|||||||
Install skopeo
|
Install skopeo
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: ensure_skopeo_install_from_upstream
|
||||||
|
:default: false
|
||||||
|
|
||||||
|
Build and install skopeo from upstream. This installs a go
|
||||||
|
development environment and build dependencies. The binary is
|
||||||
|
installed into ``/usr/local/bin``.
|
||||||
|
|
||||||
|
Currently only implemented for Ubuntu Jammy
|
||||||
|
|
||||||
|
.. zuul:rolevar:: ensure_skopeo_install_from_upstream_version
|
||||||
|
:default: v1.9.3
|
||||||
|
|
||||||
|
When building skoepo locally, the version tag to use.
|
||||||
|
2
roles/ensure-skopeo/defaults/main.yaml
Normal file
2
roles/ensure-skopeo/defaults/main.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ensure_skopeo_install_from_upstream: false
|
||||||
|
ensure_skopeo_install_from_upstream_version: 'v1.9.3'
|
@ -1,7 +1,49 @@
|
|||||||
- name: Install skopeo
|
- name: Install skopeo from packages
|
||||||
|
when: not ensure_skopeo_install_from_upstream
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- skopeo
|
- skopeo
|
||||||
- uidmap
|
- uidmap
|
||||||
state: present
|
state: present
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
- name: Install skopeo from upstream
|
||||||
|
when: ensure_skopeo_install_from_upstream
|
||||||
|
block:
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
become: yes
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- libgpgme-dev
|
||||||
|
- libassuan-dev
|
||||||
|
- libbtrfs-dev
|
||||||
|
- libdevmapper-dev
|
||||||
|
- pkg-config
|
||||||
|
- build-essential
|
||||||
|
- golang
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Clone upstream source
|
||||||
|
git:
|
||||||
|
repo: https://github.com/containers/skopeo
|
||||||
|
dest: '{{ ansible_user_dir }}/skopeo'
|
||||||
|
version: '{{ ensure_skopeo_install_from_upstream_version }}'
|
||||||
|
|
||||||
|
- name: Build skopeo
|
||||||
|
command: 'make bin/skopeo'
|
||||||
|
args:
|
||||||
|
chdir: '{{ ansible_user_dir }}/skopeo'
|
||||||
|
|
||||||
|
- name: Install binary
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: '{{ ansible_user_dir}}/skopeo/bin/skopeo'
|
||||||
|
dest: '/usr/local/bin/skopeo'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
remote_src: yes
|
||||||
|
|
||||||
|
- name: Test binary
|
||||||
|
command: '/usr/local/bin/skopeo --version'
|
||||||
|
@ -5,6 +5,13 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
|
- name: Additionally test from source on Ubuntu 22.04
|
||||||
|
when: ansible_distribution_release == 'jammy'
|
||||||
|
include_role:
|
||||||
|
name: ensure-skopeo
|
||||||
|
vars:
|
||||||
|
ensure_skopeo_install_from_upstream: true
|
||||||
|
|
||||||
- name: Exercise skopeo
|
- name: Exercise skopeo
|
||||||
command: /usr/bin/skopeo -v
|
command: /usr/bin/skopeo -v
|
||||||
register: output
|
register: output
|
||||||
|
Loading…
Reference in New Issue
Block a user