Commit Graph

313 Commits

Author SHA1 Message Date
Dmitrii Shcherbakov 110242796c Allow an optional FIP service subnet to be set up
A separate service subnet for FIPs is useful in making sure that
connectivity based on the advertised routes really works as opposed to
relying on directly connected routes to FIPs in the undercloud network
subnet used as an external network.
2023-06-12 21:35:57 +04:00
Felipe Reyes b453a85013 Improve logging of _resource_removed()
On failures there is no information of the state of the objects that
couldn't be removed, maybe there are on their way to be removed and this
is a failure visible on slow clouds and not an actual issue, this will
help with troubleshooting.
2023-05-26 15:41:27 -04:00
Dmitrii Shcherbakov 842637477c Switch from Quagga to FRR
A charm that uses FRR instead of Quagga is now published under:
https://charmhub.io/osci-frr

For our purposes FRR is a drop-in replacement of Quagga but the point
of a change is to remove Quagga references for clarity.
2023-05-23 21:31:44 +03:00
Felipe Reyes 8adbceaf26 Retry when listing glance images.
Issue seen at the gate:

    glanceclient.exc.CommunicationError: [...] ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-05-05 11:41:22 +02:00
Felipe Reyes 60cbdb9e96 Use CompareOpenStack to determine the keystone api version to use. 2023-03-28 15:08:39 -03:00
Felipe Reyes 7205e31753 Add CompareOpenStack class.
The CompareOpenStack class allows the comparison of OpenStack codenames.
2023-03-28 15:01:56 -03:00
Corey Bryant d054d3e695 Add lunar and antelope identifiers for OpenStack 2023-02-02 16:07:08 -05:00
Bas de Bruijne 9fb488efef Update series upgrade automation (#952)
* update series upgrade test

* bug fixes

* bug fixes
2023-01-23 12:39:10 +00:00
Bas de Bruijne feb667206b make provider-router name variable 2023-01-11 15:39:15 +00:00
Bas de Bruijne d3c9be2f84 make network and image names variable 2023-01-11 15:34:02 +00:00
coreycb 41fbc20583 Add kinetic support (#977) 2023-01-11 15:18:01 +00:00
James Page bab65e8c2e k8s: use action to retrieve admin password
The Keystone K8S operator now uses generated passwords; make use
of the helper action to retrieve the admin password.
2022-10-11 11:43:01 +01:00
Felipe Reyes a55f320c2a Add test for keystone-openidc (#925)
* Add keystone-openidc setup code.

The keystone-openidc charm requires 2 configuration steps:

1) Configure the oidc-client-id, oidc-client-secret and
   oidc-provider-metadata-url, this information is tightly related to
   the Identity Provider configured, which for testing purposes this is
   the openidc-test-fixture charm, the setup function
   zaza.openstack.charm_tests.openidc.setup.configure_keystone_openidc
   takes care of setting these values once the fixture charm is ready
   for service.
2) Create the OpenStack objects to correctly configure the federation,
   this is made by the setup function
   zaza.openstack.charm_tests.openidc.setup.keystone_federation_setup_site1
   which will create and configure the following resources:
   - Create a domain named 'federated_domain'.
   - Create a group named 'federated_users'.
   - Grant the 'Member' role to users in the 'federated_users' group.
   - Create an identity provider named 'openid'.
   - Create a mapping named 'openid_mapping'.
   - Create a federation protocol named 'openid' that relates the mapping
     and the identity provider.

* Add support for v3oidcpassword auth plugin.

get_keystone_session() uses the v3.OidcPassword class when the
OS_AUTH_TYPE is set to v3oidcpassword, this class expects the following
extra configuration options:

- OS_IDENTITY_PROVIDER
- OS_PROTOCOL
- OS_CLIENT_ID
- OS_CLIENT_SECRET
- OS_ACCESS_TOKEN_ENDPOINT (optional)
- OS_DISCOVERY_ENDPOINT (optional)

* Add test for keystone-openidc

This patch introduces a new testing class named CharmKeystoneOpenIDCTest
which interacts with keystone using users provided by
openidc-test-fixture via OpenID Connect.

* Add keystone_session argument to launch instances.

Adding the option to pass a keystone session allows callers to use
credentials different from the ones provided by
get_overcloud_keystone_session(), this is helpful when testing non
default keystone configurations (e.g. Federation).

* Add zaza.openstack.charm_tests.openidc.tests.TestLaunchInstance

This testing class configures a private network in the user's project defined by the mapping
rules during the setUpClass stage. Specifically this test performs the following steps:

- Create keypair named 'zaza' in the user's project
- Create a router for the project
- Attach the router to the external network
- Create a network
- Create a subnet attached to the previously create network
- Connect the subnet to the project's router

The testing method launches an instance using a keystone session
associated with a user backed by OpenID Connect.
2022-10-05 13:34:18 +01:00
Liam Young 99186a6651 Add k8s compatible method for keystone auth (#945)
* Add k8s compatible method for keystone auth

* Mock out is_k8s_deployment
2022-10-03 18:27:56 +01:00
Liam Young 65cc55a5db Remove liberty special case (#944)
* Remove liberty special case

* Update unit test
2022-10-03 12:52:30 +01:00
Dmitrii Shcherbakov 87d347d02a Add a codename and release pair for Zed 2022-09-07 00:57:26 +03:00
Liam Young 17234c9e15 Respect model in get_swift_storage_topology
Change 0af4c93d causes the target model to be ignored when a
model_name was specified. This in turn is causing the swift
cmr tests to fail as an ip of None is being recorded for
units in a different model.
2022-09-02 14:17:07 +00:00
Liam Young b4b645ab9a Add fallback ubuntu image location 2022-09-02 14:09:57 +00:00
Samuel Walladge bb3d93b00a Add test for online extending lvm volume in cinder (#854) 2022-09-01 09:23:57 +01:00
Samuel Walladge c396608daa Fix pep8 lint errors
One of the pep8 target dependencies must have updated,
causing a bunch of new lint errors in these categories:
- line length > 79 chars
- no whitespace after keyword
2022-08-03 13:44:22 +09:30
Alex Kavanagh 9dc87efdb5 Revert "Add test for online extending lvm volume in cinder (#776)"
This reverts commit e21909717e.
2022-07-28 10:20:12 +01:00
Oprin Marius 243435883f Add Magnum tests (#515)
- Add Heat domain-setup action as a setup configuration option which can be used in other charms
  - test_100_domain_setup is being deprecated if the new configuration option is being used
- Add Magnum tests
  - test create magnum cluster template
  - test create magnum cluster
  - test config changes
  - test pause and resume
- TEST_MAGNUM_QCOW2_IMAGE_URL environment variable is required in the CI
  - The value of this variable should be a link to a fedora-coreos QCOW2 image
2022-07-05 12:06:02 +01:00
Samuel Walladge e21909717e Add test for online extending lvm volume in cinder (#776)
* Add test for online extending lvm volume in cinder

* Fix pep8 issues

Co-authored-by: Samuel Walladge <samuel.walladge@canonical.com>
2022-07-01 15:37:55 +01:00
Luciano Lo Giudice be70ef7529 Make Ceph tests idempotent (#795)
With the upcoming transition to an operator-framework charm, the
Ceph tests need to be idempotent, since we'll be testing the upgrade
path from classical to operator. The tests that need fixing are the
ones that call out to add/remove disks, since they create loopback
devices to back the OSD's but never remove them.
2022-06-27 20:44:24 +02:00
Felipe Reyes 524dd0c7a4 Add jammy to list of ubuntu releases. (#791)
The list UBUNTU_RELEASES is used by the CompareHostReleases class.
2022-06-22 16:26:42 +01:00
Frode Nordahl e8aacf959b Write private SSH key with appropriate permissions
Fixes #583
2022-05-25 15:32:54 +02:00
Frode Nordahl 7a192e56c9 dvr_enabled: Avoid KeyError when Neutron not present 2022-04-26 11:48:38 +02:00
Frode Nordahl 3f711ff6da openstack: Add update subnet DHCP helper 2022-04-21 14:08:55 +02:00
Chris MacNaughton 8c6ee4c758 Add Ceph versions to OS_CODENAMES (#743)
There are some Ceph charms that do not install the
openstack-release package, so fall through to the
dict to identify which release they are on, and can
fail with a KeyError when not finding a matching
entry for Pacific and Quincy.
2022-04-07 09:24:28 +01:00
James Page 57f420629e Merge pull request #719 from AurelienLourot/nvidia-vgpu
Add NovaComputeNvidiaVgpuTest
2022-03-22 10:00:10 +00:00
Aurelien Lourot 7338af093e Add NovaComputeNvidiaVgpuWithHardwareTest 2022-03-17 13:55:47 +01:00
Felipe Reyes acaeb62a4d Stop retrying if LB provisioning status reached ERROR (#682)
* Stop retrying if LB provisioning status reached ERROR

The method `wait_for_lb_resource()` retries for 15m while the load
balancer could have reached to ERROR during the provisioning in the
first few minutes, this approach makes the testing take longer for no
reason.

This change makes the ERROR state in provisioning_status final and
abort raising a ValueError() exception.

More details of the provisioning_status possible states can be found at:
https://docs.openstack.org/api-ref/load-balancer/v2/#provisioning-status-codes

* Use LoadBalancerUnexpectedState and LoadBalancerUnrecoverableError.

Drop the (re-)use of AssertionError and ValueError to identify when a
load balancer status is in a state where the test needs to retry or
break and fail respectively.

This change introduces 2 new exceptions to be explicit of what the code
is trying to do.

- LoadBalancerUnexpectedState is raised when the status of the load
  balancer is in a state different from the one requested by the caller,
  but said state can be considered as transitory.
- LoadBalancerUnrecoverableError is raised when the status of the load
  balancer is in ERROR state and said state is final for the
  proviniong_status property, hence retrying only delays the failure.
2022-03-08 13:11:51 +00:00
Chris MacNaughton a45db73007 Merge pull request #675 from openstack-charmers/osd-add-disk-test
Osd add disk test
2022-02-22 07:47:52 +00:00
Luciano Lo Giudice e751e4a989 Rearrange functions into separate modules 2022-02-10 14:28:50 -03:00
Felipe Reyes 7d5d34b7c4 Retry find_cirros_image() on URLError (#695)
There are situations where the DNS infrastructure hasn't been stable and
many CI jobs have failed with the error:

  urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>

This change decorates the function find_cirros_image() to retry and give
the job more chances of recovering from the DNS failures.
2022-01-20 14:15:50 +00:00
Alex Kavanagh 0af4c93d52 Switch unit.public_address to unit.get_public_address()
Due to the bug [1] on OpenStack providers, unit.public_address doesn't
actually work reliably.  The fix [2] is only for the async function
unit.get_public_address().  Sadly, zaza relied on unit.public_address
and so it needs this patch for juju 2.9 support on OpenStack providers.

This patch relies on an associated patch in zaza [3]; thus this will
fails its tests until that passes.

[1]: https://github.com/juju/python-libjuju/issues/551
[2]: https://github.com/juju/python-libjuju/pull/600
[3]: https://github.com/openstack-charmers/zaza/pull/468
2022-01-14 15:21:32 +00:00
Basdbruijne 139919b635 add glance-simplestreams-syns to openstack upgrade exclude list (#691)
* add glance-simplestreams-syns to openstack upgrade exclude list
* fix formatting

Authored-by: Bas de Bruijne <bas.debruijne@canonical.com>
2022-01-13 18:24:42 +00:00
James Page 2bb4271530 Merge pull request #328 from afreiberger/bug/1882250
Add functional testing of set-weight action and resulting replication
2022-01-11 09:18:43 +00:00
Alex Kavanagh 1fbd505e27 Enable get_keystone_ip() to work with multiple vips config
The keystone charm allows multiple VIP addresses to be configured via
the 'vip' config parameter.  Unfortunately, get_keystone_ip() didn't
support this.  This patch adds that support, plus the missing tests.

Closes: #689
2022-01-07 16:56:22 +00:00
Aurelien Lourot 0e13f606be Merge pull request #679 from ajkavanagh/filter-percona-at-focal
Ensure that series upgrades ignore percona at focal
2021-12-08 10:15:50 +01:00
hemanthnakkina 1a1dc0a79e Add glance tests for Cinder Storage backend (#680)
Add zaza tests for charm glance when cinder is configured
as storage backend.

Related-Bug: LP#1905042

Co-authored-by: Hemanth Nakkina <hemanth.nakkina@canonical.com>
2021-12-01 10:20:08 +00:00
Alex Kavanagh d4d415c859 Ensure that series upgrades ignore percona at focal
When doing a series upgrade from bionic to focal, the percona-cluster
charm needs to be avoided.  This filters the applications for percona if
the target is focal.  Note if percona is placed on the same unit as
something else that needs to be upgraded (bad idea) then it may still
get 'upgraded' and the operation will fail.
2021-11-30 18:50:14 +00:00
Luciano Lo Giudice 97f1ea5693 Move functions into juju utilities. 2021-11-29 12:08:28 -03:00
Aurelien Lourot a0b4d15dc6 Remove deprecation warnings (#676)
Change-Id: I354d1a62c77aa1fa38f4be4615f264bc08f7795b
2021-11-29 09:27:06 +00:00
Aurelien Lourot 9040cef609 Merge pull request #600 from zhhuabj/hm-port
Delete hm port on unit removal
2021-11-23 14:17:00 +01:00
Corey Bryant 1eaa2233c1 Authenticate with cinder v3 endpoint by default
The v3 endpoint has been supported by the charms since Pike,
and the V2 endpoint was removed in Xena, therefore it makes
to use the v3 endpoint by default at this point.
2021-11-22 09:56:16 -05:00
Aurelien Lourot 50353b4625 Support 'to-be-set' value for 'data-port'
See https://github.com/openstack-charmers/openstack-bundles/pull/228
2021-11-04 14:59:23 +01:00
Aurelien Lourot 7f516a1e7b Support OVN charms in automated OpenStack upgrade (#655)
* Support OVN charms in automated OpenStack upgrade

* Add ovn-dedicated-chassis to the list of control plane principal charms

Change-Id: I857513f130091e218a60eaf54eaf63527c00f5e5
2021-11-02 14:54:04 +01:00
Zhang Hua eb3b3eb97c Merge branch 'master' into hm-port 2021-10-28 21:16:43 +08:00
Aurelien Lourot cc291b8400 Extend OPENSTACK_CODENAMES up to Yoga (#654)
This dict is used in the OpenStack upgrade tests in
order to automatically determine the next release and
set the openstack-origin accordingly.

Also taking the opportunity to extend neighboring
lists.
2021-10-18 09:18:39 +01:00