diff --git a/.zuul.yaml b/.zuul.yaml index fd20909..5264263 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,3 +2,8 @@ templates: - openstack-python3-charm-jobs - openstack-cover-jobs + check: + jobs: + - charmbuild + vars: + charm_build_name: ironic-dashboard diff --git a/charmcraft.yaml b/charmcraft.yaml index 9f15e87..3a7a0a2 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -1,11 +1,28 @@ type: "charm" -bases: - - build-on: - - name: "ubuntu" - channel: "22.04" - architectures: - - amd64 - run-on: - - name: "ubuntu" - channel: "22.04" - architectures: [amd64, s390x, ppc64el, arm64] + +parts: + charm: + source: src/ + plugin: charm + build-packages: + - libpython3-dev + build-snaps: + - charm/latest/edge + build-environment: + - CHARM_INTERFACES_DIR: /root/project/interfaces + - CHARM_LAYERS_DIR: /root/project/layers + +base: ubuntu@24.04 +platforms: + amd64: + build-on: amd64 + build-for: amd64 + arm64: + build-on: arm64 + build-for: arm64 + ppc64el: + build-on: ppc64el + build-for: ppc64el + s390x: + build-on: s390x + build-for: s390x diff --git a/metadata.yaml b/metadata.yaml index c757fd4..6054d23 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -11,10 +11,6 @@ description: | manage bare metal instances from the Horizon Dashboard. tags: - openstack - -series: - - focal - - jammy subordinate: true requires: diff --git a/osci.yaml b/osci.yaml index 5bd757e..d483a50 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: ironic-dashboard build_type: charmcraft - charmcraft_channel: 2.x/stable + charmcraft_channel: 3.x/stable diff --git a/tests/bundles/jammy-antelope.yaml b/tests/bundles/jammy-antelope.yaml deleted file mode 100644 index a9bc661..0000000 --- a/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,110 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-antelope - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - -applications: - - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - openstack-dashboard-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - ironic-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - max-connections: 1000 - innodb-buffer-pool-size: 256M - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - ironic-api: - charm: ch:ironic-api - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - - openstack-dashboard: - charm: ch:openstack-dashboard - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - ironic-dashboard: - charm: ../../ironic-dashboard.charm - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'ironic-api:shared-db' - - 'ironic-api-mysql-router:shared-db' - - - 'ironic-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - 'ironic-api:identity-service' - - 'keystone:identity-service' - - - 'ironic-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'openstack-dashboard:shared-db' - - 'openstack-dashboard-mysql-router:shared-db' - - - 'openstack-dashboard-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'openstack-dashboard:identity-service' - - 'keystone:identity-service' - - - - 'openstack-dashboard:dashboard-plugin' - - 'ironic-dashboard:dashboard' diff --git a/tests/bundles/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index a773e2a..0000000 --- a/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,110 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-bobcat - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - -applications: - - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - openstack-dashboard-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - ironic-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - max-connections: 1000 - innodb-buffer-pool-size: 256M - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - ironic-api: - charm: ch:ironic-api - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - - openstack-dashboard: - charm: ch:openstack-dashboard - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - ironic-dashboard: - charm: ../../ironic-dashboard.charm - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'ironic-api:shared-db' - - 'ironic-api-mysql-router:shared-db' - - - 'ironic-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - 'ironic-api:identity-service' - - 'keystone:identity-service' - - - 'ironic-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'openstack-dashboard:shared-db' - - 'openstack-dashboard-mysql-router:shared-db' - - - 'openstack-dashboard-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'openstack-dashboard:identity-service' - - 'keystone:identity-service' - - - - 'openstack-dashboard:dashboard-plugin' - - 'ironic-dashboard:dashboard' diff --git a/tests/bundles/jammy-caracal.yaml b/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index f7dc8eb..0000000 --- a/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,110 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-caracal - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - -applications: - - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - openstack-dashboard-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - ironic-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - max-connections: 1000 - innodb-buffer-pool-size: 256M - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - ironic-api: - charm: ch:ironic-api - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - - openstack-dashboard: - charm: ch:openstack-dashboard - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - ironic-dashboard: - charm: ../../ironic-dashboard.charm - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'ironic-api:shared-db' - - 'ironic-api-mysql-router:shared-db' - - - 'ironic-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - 'ironic-api:identity-service' - - 'keystone:identity-service' - - - 'ironic-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'openstack-dashboard:shared-db' - - 'openstack-dashboard-mysql-router:shared-db' - - - 'openstack-dashboard-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'openstack-dashboard:identity-service' - - 'keystone:identity-service' - - - - 'openstack-dashboard:dashboard-plugin' - - 'ironic-dashboard:dashboard' diff --git a/tests/bundles/noble-caracal.yaml b/tests/bundles/noble-caracal.yaml index 8a23c36..fa9626c 100644 --- a/tests/bundles/noble-caracal.yaml +++ b/tests/bundles/noble-caracal.yaml @@ -59,7 +59,7 @@ applications: openstack-origin: *openstack-origin to: - '4' - channel: 2024.1/edge + channel: latest/edge ironic-api: charm: ch:ironic-api @@ -68,7 +68,7 @@ applications: openstack-origin: *openstack-origin to: - '5' - channel: 2024.1/edge + channel: latest/edge openstack-dashboard: charm: ch:openstack-dashboard @@ -77,7 +77,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: 2024.1/edge + channel: latest/edge ironic-dashboard: charm: ../../ironic-dashboard.charm diff --git a/tests/tests.yaml b/tests/tests.yaml index 55da11e..c16ef22 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -1,10 +1,8 @@ charm_name: ironic-dashboard smoke_bundles: - - jammy-caracal + - noble-caracal gate_bundles: - - jammy-antelope - - jammy-bobcat - - jammy-caracal + - noble-caracal dev_bundles: - noble-caracal target_deploy_status: {} diff --git a/tox.ini b/tox.ini index d616c28..f5cae40 100644 --- a/tox.ini +++ b/tox.ini @@ -16,6 +16,7 @@ skip_missing_interpreters = False setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 TERM=linux + TEST_JUJU3=1 # Note(mylesjp): Force Juju 3 passenv = http_proxy https_proxy @@ -35,7 +36,7 @@ deps = [testenv:build] basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = charmcraft clean @@ -45,42 +46,42 @@ commands = [testenv:py3] basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py36] basepython = python3.6 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py38] basepython = python3.8 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py39] basepython = python3.9 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py310] basepython = python3.10 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py312] basepython = python3.12 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} @@ -92,7 +93,7 @@ commands = flake8 {posargs} src unit_tests [testenv:func-target] basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = bash -c "if [ ! -f ./*.charm ]; then echo 'Charm does not exist. Run tox -e build'; exit 1; fi" @@ -103,7 +104,7 @@ commands = # https://github.com/openstack/nova/blob/master/tox.ini basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt setenv = {[testenv]setenv}