Update charmcraft so that it builds on 20.04, deploys everywhere

This is to build a multi-arch charm on amd64 on 20.04 but deliver it
on 20.04, 22.04 and across the 4 arches.

Change-Id: I2b9832ee63b0addf316da41c42e6cc4b70108ebe
This commit is contained in:
Alex Kavanagh 2022-04-04 16:08:34 +01:00
parent 736e243bb9
commit e7f094d26d
13 changed files with 19 additions and 543 deletions

View File

@ -21,27 +21,15 @@ parts:
cp -r $CHARMCRAFT_STAGE/* . cp -r $CHARMCRAFT_STAGE/* .
bases: bases:
- name: ubuntu - build-on:
channel: "20.04" - name: ubuntu
architectures: [amd64] channel: "20.04"
- name: ubuntu architectures:
channel: "20.04" - amd64
architectures: [arm64] run-on:
- name: ubuntu - name: ubuntu
channel: "20.04" channel: "20.04"
architectures: [ppc64el] architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu - name: ubuntu
channel: "20.04" channel: "22.04"
architectures: [s390x] architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu
channel: "22.04"
architectures: [amd64]
- name: ubuntu
channel: "22.04"
architectures: [arm64]
- name: ubuntu
channel: "22.04"
architectures: [ppc64el]
- name: ubuntu
channel: "22.04"
architectures: [s390x]

View File

@ -1,7 +1,7 @@
- project: - project:
templates: templates:
- charm-unit-jobs-py38 - charm-unit-jobs-py38
- charm-unit-jobs-py39 - charm-unit-jobs-py310
check: check:
jobs: jobs:
- focal-xena-ha - focal-xena-ha
@ -10,10 +10,6 @@
voting: false voting: false
- focal-yoga-ha-ovn: - focal-yoga-ha-ovn:
voting: false voting: false
- impish-xena-ha:
voting: false
- impish-xena-ha-ovn:
voting: false
- jammy-yoga-ha: - jammy-yoga-ha:
voting: false voting: false
- jammy-yoga-ha-ovn: - jammy-yoga-ha-ovn:
@ -29,7 +25,6 @@
dependencies: dependencies:
- osci-lint - osci-lint
- tox-py38 - tox-py38
- tox-py39
- charm-build - charm-build
vars: vars:
tox_extra_args: focal-xena-ha tox_extra_args: focal-xena-ha
@ -54,20 +49,6 @@
- focal-xena-ha - focal-xena-ha
vars: vars:
tox_extra_args: focal-yoga-ha-ovn tox_extra_args: focal-yoga-ha-ovn
- job:
name: impish-xena-ha-ovn
parent: func-target
dependencies:
- focal-xena-ha
vars:
tox_extra_args: impish-xena-ha-ovn
- job:
name: impish-xena-ha
parent: func-target
dependencies:
- focal-xena-ha
vars:
tox_extra_args: impish-xena-ha
- job: - job:
name: jammy-yoga-ha-ovn name: jammy-yoga-ha-ovn
parent: func-target parent: func-target

View File

@ -1,232 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
local_overlay_enabled: False
series: &series impish
relations:
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone-mysql-router:shared-db
- keystone:shared-db
- - neutron-mysql-router:shared-db
- neutron-api:shared-db
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - octavia-mysql-router:shared-db
- octavia:shared-db
- - keystone:identity-service
- glance:identity-service
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - keystone:identity-service
- neutron-api:identity-service
- - keystone:identity-service
- octavia:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - rabbitmq-server:amqp
- neutron-api:amqp
- - rabbitmq-server:amqp
- glance:amqp
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - rabbitmq-server:amqp
- nova-compute:amqp
- - rabbitmq-server:amqp
- octavia:amqp
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - neutron-api:neutron-load-balancer
- octavia:neutron-api
- - glance-simplestreams-sync:juju-info
- octavia-diskimage-retrofit:juju-info
- - keystone:identity-service
- glance-simplestreams-sync:identity-service
- - keystone:identity-credentials
- octavia-diskimage-retrofit:identity-credentials
- [ placement, placement-mysql-router ]
- [ placement, keystone ]
- [ placement, nova-cloud-controller ]
- - neutron-api-plugin-ovn:neutron-plugin
- neutron-api:neutron-plugin-api-subordinate
- - vault:shared-db
- vault-mysql-router:shared-db
- - ovn-central:certificates
- vault:certificates
- - ovn-central:ovsdb-cms
- neutron-api-plugin-ovn:ovsdb-cms
- - neutron-api:certificates
- vault:certificates
- - ovn-chassis:nova-compute
- nova-compute:neutron-plugin
- - ovn-chassis-octavia:ovsdb-subordinate
- octavia:ovsdb-subordinate
- - ovn-chassis-octavia:certificates
- vault:certificates
- - ovn-chassis-octavia:ovsdb
- ovn-central:ovsdb
- - ovn-central:ovsdb-cms
- octavia:ovsdb-cms
- - ovn-chassis:certificates
- vault:certificates
- - ovn-chassis:ovsdb
- ovn-central:ovsdb
- - vault:certificates
- neutron-api-plugin-ovn:certificates
- - vault:certificates
- glance:certificates
- - vault:certificates
- keystone:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- placement:certificates
- - vault:certificates
- octavia:certificates
- - vault:certificates
- glance-simplestreams-sync:certificates
- - hacluster-octavia:ha
- octavia:ha
- ["octavia-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["vault-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
applications:
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
octavia-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
keystone-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
nova-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
glance-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
neutron-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
placement-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
vault-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
mysql-innodb-cluster:
constraints: mem=3072M
charm: ch:mysql-innodb-cluster
num_units: 3
channel: 8.0.19/edge
neutron-api:
constraints: cores=4
charm: ch:neutron-api
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
flat-network-providers: physnet1
enable-ml2-port-security: True
neutron-security-groups: True
channel: yoga/edge
nova-cloud-controller:
constraints: mem=7168M
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: yoga/edge
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: yoga/edge
hacluster-octavia:
series: *series
charm: ch:hacluster
channel: 2.0.3/edge
ovn-chassis-octavia:
charm: ch:ovn-chassis
channel: latest/edge
octavia:
constraints: cores=8
series: *series
charm: ../../../octavia.charm
num_units: 3
options:
openstack-origin: *openstack-origin
debug: True
loadbalancer-topology: 'ACTIVE_STANDBY'
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
channel: 3.8/edge
glance-simplestreams-sync:
charm: ch:glance-simplestreams-sync
num_units: 1
options:
use_swift: False
mirror_list: "[{url: 'http://cloud-images.ubuntu.com/releases/',
name_prefix: 'ubuntu:released',
path: 'streams/v1/index.sjson', max: 1,
item_filters: [
'release~(bionic|focal|hirsute)',
'arch~(x86_64|amd64)',
'ftype~(disk1.img|disk.img)']}]"
channel: yoga/edge
octavia-diskimage-retrofit:
charm: ch:octavia-diskimage-retrofit
options:
amp-image-tag: 'octavia-amphora'
retrofit-series: *series
channel: yoga/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: yoga/edge
neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn
channel: yoga/edge
ovn-central:
constraints: mem=3072M
charm: ch:ovn-central
num_units: 3
options:
source: *openstack-origin
channel: latest/edge
ovn-chassis:
charm: ch:ovn-chassis
channel: latest/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge

View File

@ -1,231 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
local_overlay_enabled: False
series: &series impish
relations:
- - glance:image-service
- nova-cloud-controller:image-service
- - glance:image-service
- nova-compute:image-service
- - glance-mysql-router:shared-db
- glance:shared-db
- - keystone-mysql-router:shared-db
- keystone:shared-db
- - neutron-mysql-router:shared-db
- neutron-api:shared-db
- - nova-mysql-router:shared-db
- nova-cloud-controller:shared-db
- - octavia-mysql-router:shared-db
- octavia:shared-db
- - keystone:identity-service
- glance:identity-service
- - keystone:identity-service
- nova-cloud-controller:identity-service
- - keystone:identity-service
- neutron-api:identity-service
- - keystone:identity-service
- octavia:identity-service
- - nova-compute:cloud-compute
- nova-cloud-controller:cloud-compute
- - rabbitmq-server:amqp
- neutron-api:amqp
- - rabbitmq-server:amqp
- glance:amqp
- - rabbitmq-server:amqp
- nova-cloud-controller:amqp
- - rabbitmq-server:amqp
- nova-compute:amqp
- - rabbitmq-server:amqp
- octavia:amqp
- - neutron-api:neutron-api
- nova-cloud-controller:neutron-api
- - neutron-api:neutron-load-balancer
- octavia:neutron-api
- - rabbitmq-server:amqp
- neutron-openvswitch:amqp
- - neutron-api:neutron-plugin-api
- neutron-openvswitch:neutron-plugin-api
- - neutron-openvswitch:neutron-plugin
- nova-compute:neutron-plugin
- - rabbitmq-server:amqp
- neutron-openvswitch-octavia:amqp
- - neutron-api:neutron-plugin-api
- neutron-openvswitch-octavia:neutron-plugin-api
- - neutron-openvswitch-octavia:neutron-plugin
- octavia:neutron-openvswitch
- - hacluster-octavia:ha
- octavia:ha
- - glance-simplestreams-sync:juju-info
- octavia-diskimage-retrofit:juju-info
- - keystone:identity-service
- glance-simplestreams-sync:identity-service
- - keystone:identity-credentials
- octavia-diskimage-retrofit:identity-credentials
- [ placement, placement-mysql-router ]
- [ placement, keystone ]
- [ placement, nova-cloud-controller ]
- - vault:shared-db
- vault-mysql-router:shared-db
- - vault:certificates
- glance:certificates
- - vault:certificates
- keystone:certificates
- - vault:certificates
- neutron-api:certificates
- - vault:certificates
- nova-cloud-controller:certificates
- - vault:certificates
- octavia:certificates
- - vault:certificates
- octavia-diskimage-retrofit:certificates
- - vault:certificates
- glance-simplestreams-sync:certificates
- - vault:certificates
- placement:certificates
- ["octavia-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
- ["vault-mysql-router:db-router", "mysql-innodb-cluster:db-router"]
applications:
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
octavia-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
keystone-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
nova-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
glance-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
neutron-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
placement-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
vault-mysql-router:
charm: ch:mysql-router
channel: 8.0.19/edge
mysql-innodb-cluster:
constraints: mem=3072M
charm: ch:mysql-innodb-cluster
num_units: 3
channel: 8.0.19/edge
neutron-api:
charm: ch:neutron-api
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
flat-network-providers: physnet1
enable-ml2-port-security: True
neutron-security-groups: True
enable-dvr: True
manage-neutron-plugin-legacy-mode: True
channel: yoga/edge
neutron-openvswitch:
series: *series
charm: ch:neutron-openvswitch
num_units: 0
options:
debug: True
enable-local-dhcp-and-metadata: True
use-dvr-snat: True
prevent-arp-spoofing: False
firewall-driver: openvswitch
bridge-mappings: physnet1:br-ex
channel: yoga/edge
neutron-openvswitch-octavia:
series: *series
charm: ch:neutron-openvswitch
num_units: 0
options:
debug: True
prevent-arp-spoofing: False
firewall-driver: openvswitch
channel: yoga/edge
nova-cloud-controller:
constraints: mem=7168M
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
debug: True
network-manager: Neutron
channel: yoga/edge
nova-compute:
constraints: mem=7168M
charm: ch:nova-compute
num_units: 2
options:
openstack-origin: *openstack-origin
debug: True
channel: yoga/edge
hacluster-octavia:
charm: ch:hacluster
num_units: 0
channel: 2.0.3/edge
octavia:
constraints: cores=8
series: *series
charm: ../../../octavia.charm
num_units: 3
options:
openstack-origin: *openstack-origin
debug: True
loadbalancer-topology: 'ACTIVE_STANDBY'
vip: 'ADD YOUR VIP HERE'
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
channel: 3.8/edge
glance-simplestreams-sync:
charm: ch:glance-simplestreams-sync
num_units: 1
options:
use_swift: False
mirror_list: "[{url: 'http://cloud-images.ubuntu.com/releases/',
name_prefix: 'ubuntu:released',
path: 'streams/v1/index.sjson', max: 1,
item_filters: [
'release~(bionic|focal|hirsute)',
'arch~(x86_64|amd64)',
'ftype~(disk1.img|disk.img)']}]"
channel: yoga/edge
octavia-diskimage-retrofit:
charm: ch:octavia-diskimage-retrofit
options:
amp-image-tag: 'octavia-amphora'
retrofit-series: *series
channel: yoga/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
debug: true
channel: yoga/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -1,4 +0,0 @@
applications:
octavia:
options:
vip: '{{ OS_VIP00 }}'

View File

@ -0,0 +1 @@
local-charm-overlay.yaml.j2

View File

@ -10,8 +10,6 @@ smoke_bundles:
dev_bundles: dev_bundles:
- focal-yoga-ha-ovn - focal-yoga-ha-ovn
- focal-yoga-ha - focal-yoga-ha
- impish-xena-ha-ovn
- impish-xena-ha
- jammy-yoga-ha-ovn - jammy-yoga-ha-ovn
- jammy-yoga-ha - jammy-yoga-ha
@ -74,7 +72,5 @@ tests_options:
policyd: policyd:
service: octavia service: octavia
force_deploy: force_deploy:
- impish-xena-ha-ovn
- impish-xena-ha
- jammy-yoga-ha-ovn - jammy-yoga-ha-ovn
- jammy-yoga-ha - jammy-yoga-ha