
Currently each charm defines in the code all the mandatory relations. Instead populate the mandatory relations from chamrcraft.yaml requires relations with optional as False. Charm can define mandatory relations that are not derived from requires relations and they will be appended to the list of mandatory_relations. Barbican and ovn-central charms follows this pattern. Change-Id: Iff45fca33dc954593ded52b97e905431b6a7bb53
159 lines
4.5 KiB
YAML
159 lines
4.5 KiB
YAML
type: charm
|
|
name: tempest-k8s
|
|
summary: OpenStack integration test suite (tempest)
|
|
description: |
|
|
Tempest provides a set of integration tests to be run, in ad-hoc
|
|
or periodic fasion, against a live OpenStack cluster for OpenStack API
|
|
validation, scenarios, and other specific tests useful in validating an
|
|
OpenStack deployment.
|
|
assumes:
|
|
- k8s-api
|
|
- juju >= 3.1
|
|
links:
|
|
source: https://opendev.org/openstack/sunbeam-charms
|
|
issues: https://bugs.launchpad.net/sunbeam-charms
|
|
documentation: https://discourse.charmhub.io/t/tempest-k8s-docs-index/13258
|
|
|
|
base: ubuntu@24.04
|
|
platforms:
|
|
amd64:
|
|
|
|
config:
|
|
options:
|
|
region:
|
|
type: string
|
|
default: RegionOne
|
|
description: Name of the OpenStack region
|
|
schedule:
|
|
type: string
|
|
default: 0 */1 * * *
|
|
description: |
|
|
The cron schedule expression to define when to run tempest periodic checks.
|
|
|
|
The value will only take effect when 'logging' relation is joined. Otherwise,
|
|
regardless of the value set, periodic checks are disabled.
|
|
|
|
By default, tests will run every hour. When the value is set to empty,
|
|
periodic checks will be disabled.
|
|
|
|
The cron implementation used is Vixie Cron, installed from Ubuntu main.
|
|
For help with expressions, see `man 5 crontab` for Vixie Cron,
|
|
or visit https://crontab.guru/ .
|
|
|
|
The schedule should not result in tempest running more than once every 15 minutes.
|
|
|
|
Example expressions:
|
|
|
|
"*/30 * * * *" every 30 minutes
|
|
"5 2 * * *" at 2:05am every day
|
|
"5 2 * * mon" at 2:05am every Monday
|
|
|
|
actions:
|
|
validate:
|
|
description: |
|
|
Run a set of tempest tests.
|
|
|
|
Tests can be filtered using parameters: regex, exclude-regex, and test-list.
|
|
These parameters are optional; if none are given, all tests will run.
|
|
|
|
Provided parameters narrow down the tests that will run.
|
|
For example, `regex="one two" exclude-regex=three test-list=list1`,
|
|
will run tests that are:
|
|
- found in test list "list1"
|
|
- AND match regex "one" or "two"
|
|
- AND don't match regex "three"
|
|
|
|
A summary of the results will be printed.
|
|
The complete results may be large,
|
|
and will be written to /var/lib/tempest/workspace/tempest-validation.log
|
|
in the workload container.
|
|
This can be copied to your local machine using juju,
|
|
for example:
|
|
juju scp --container tempest tempest/0:/var/lib/tempest/workspace/tempest-validation.log tempest-validation.log
|
|
additionalProperties: false
|
|
params:
|
|
regex:
|
|
type: string
|
|
default: ""
|
|
description: |
|
|
A list of regexes, whitespace separated, used to select tests from the list.
|
|
Tests matching any of the regexes will be selected.
|
|
|
|
If no value provided (the default), all tests will be selected.
|
|
|
|
To run the equivalent of tempest smoke tests (`tempest run --smoke`),
|
|
use `regex=smoke`.
|
|
exclude-regex:
|
|
type: string
|
|
default: ""
|
|
description: |
|
|
A single regex to exclude tests.
|
|
Any test that matches this regex will be excluded from the final list.
|
|
serial:
|
|
type: boolean
|
|
default: false
|
|
description: Run tests serially. By default, tests run in parallel.
|
|
test-list:
|
|
type: string
|
|
default: ""
|
|
description: |
|
|
Use a predefined test list. See `get-lists` for available test lists.
|
|
get-lists:
|
|
description: List existing test lists, to be used with validate action.
|
|
additionalProperties: false
|
|
|
|
containers:
|
|
tempest:
|
|
resource: tempest-image
|
|
|
|
resources:
|
|
tempest-image:
|
|
type: oci-image
|
|
description: OCI image for tempest
|
|
upstream-source: ghcr.io/canonical/tempest:2024.1
|
|
|
|
requires:
|
|
identity-ops:
|
|
interface: keystone-resources
|
|
logging:
|
|
interface: loki_push_api
|
|
optional: true
|
|
receive-ca-cert:
|
|
interface: certificate_transfer
|
|
optional: true
|
|
tracing:
|
|
interface: tracing
|
|
optional: true
|
|
limit: 1
|
|
|
|
provides:
|
|
grafana-dashboard:
|
|
interface: grafana_dashboard
|
|
|
|
peers:
|
|
peers:
|
|
interface: tempest-peer
|
|
|
|
parts:
|
|
update-certificates:
|
|
plugin: nil
|
|
override-build: |
|
|
apt update
|
|
apt install -y ca-certificates
|
|
update-ca-certificates
|
|
charm:
|
|
after:
|
|
- update-certificates
|
|
build-packages:
|
|
- git
|
|
- libffi-dev
|
|
- libssl-dev
|
|
- rustc
|
|
- cargo
|
|
- pkg-config
|
|
charm-binary-python-packages:
|
|
- cryptography
|
|
- jsonschema
|
|
- pydantic
|
|
- jinja2
|