Guillaume Boutry 4931ad53b9
[*-k8s] Migrate charm base to ubuntu@24.04
Update charm base to ubuntu@24.04 for all k8s based charms. Deploying
k8s charm is abstracted from the underlying host base, therefore we can
already deploy next generation based charms.

Change-Id: If8e8960a58a39f9978aaeec26ed4df4a2b690396
Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com>
2024-10-09 09:23:37 +02:00

262 lines
7.9 KiB
YAML

type: charm
name: horizon-k8s
summary: OpenStack Horizon service
description: |
OpenStack Horizon provides an HTTP service for managing, selecting,
and claiming providers of classes of inventory representing available
resources in a cloud.
.
assumes:
- k8s-api
- juju >= 3.1
links:
source:
- https://opendev.org/openstack/charm-horizon-k8s
issues:
- https://bugs.launchpad.net/charm-horizon-k8s
base: ubuntu@24.04
platforms:
amd64:
config:
options:
debug:
default: false
description: Enable debug logging.
type: boolean
session-timeout:
type: int
default: 3600
description:
A method to supersede the token timeout with a shorter dashboard
session timeout in seconds. For example, if your token expires in 60 minutes,
a value of 1800 will log users out after 30 minutes.
default-role:
type: string
default: member
description: |
Default role for Horizon operations that will be created in
Keystone upon introduction of an identity-service relation.
default-domain:
type: string
default: null
description: |
Default domain when authenticating with Horizon. Disables the domain
field in the login page.
secret:
type: string
default: null
description: |
Secret for Horizon to use when securing internal data; set this when
using multiple dashboard units.
dropdown-max-items:
type: int
default: 30
description: |
Max dropdown items to show in dropdown controls.
NOTE: This setting is supported >= OpenStack Liberty.
profile:
type: string
default: null
description: Default profile for the dashboard. Eg. cisco.
disable-instance-snapshot:
type: boolean
default: false
description: |
This setting disables Snapshots as a valid boot source for launching
instances. Snapshots sources won't show up in the Launch Instance modal
dialogue box. This option works from the Newton release, and has no
effect on earlier OpenStack releases.
cinder-backup:
type: boolean
default: false
description: Enable cinder backup panel.
password-retrieve:
type: boolean
default: false
description: Enable "Retrieve password" instance action.
customization-module:
type: string
default: ""
description: |
This option provides a means to enable customisation modules to modify
existing dashboards and panels.
allow-password-autocompletion:
type: boolean
default: false
description: |
Setting this to True will allow password form autocompletion by browser.
default-create-volume:
type: boolean
default: true
description: |
The default value for the option of creating a new volume in the
workflow for image and instance snapshot sources when launching an
instance. This option has an effect only to Ocata or newer
releases.
hide-create-volume:
type: boolean
default: false
description: |
Hide the "Create New Volume" option and rely on the
default-create-volume value during instance creation.
image-formats:
type: string
default: ""
description: |
The image-formats setting can be used to alter the default list of
advertised image formats. Many installations cannot use all the formats
that Glance recognizes, restricting the list here prevents unwanted
formats from being listed in Horizon which can lead to confusion.
.
This setting takes a space separated list, for example: iso qcow2 raw
.
Supported formats are: aki, ami, ari, docker, iso, ova, qcow2, raw, vdi,
vhd, vmdk.
.
If not provided, leave the option unconfigured which enables all of the
above.
api-result-limit:
type: int
default: 1000
description: |
The maximum number of objects (e.g. Swift objects or Glance images) to
display on a single page before providing a paging element (a "more" link)
to paginate results.
enable-fip-topology-check:
type: boolean
default: true
description:
By default Horizon checks that a project has a router attached
to an external network before allowing FIPs to be attached to a VM. Some use
cases will not meet this constraint, e.g. if the router is owned by a different
project. Setting this to False removes this check from Horizon.
disable-password-reveal:
type: boolean
default: false
description: |
If enabled, the reveal button for passwords is removed.
enforce-password-check:
type: boolean
default: true
description: |
If True, displays an `Admin Password` field on the Change Password form
to verify that it is indeed the admin logged-in who wants to change the password.
site-name:
type: string
default: ""
description: |
An unique site name for OpenStack deployment to be passed via the
application-dashboard relation
site-branding:
type: string
default: null
description: |
A brand name to be shown in the HTML title. The default value is
"OpenStack Dashboard", e.g. "Instance Overview - OpenStack Dashboard"
site-branding-link:
type: string
default: null
description: |
A custom hyperlink when the logo in the dashboard is clicked, e.g.
https://mycloud.example.com/. The default value is
"horizon:user_home" to open the top level of the dashboard.
help-url:
type: string
default: null
description: |
A custom hyperlink for the "Help" menu, e.g.
https://mycloud.example.com/help. The default value is
https://docs.openstack.org/
create-instance-flavor-sort-key:
type: string
default: null
description: |
This option can be used to customise the order instances are sorted in.
Support values include: id, name, ram, disk, and vcpus.
See https://docs.openstack.org/horizon/latest/configuration/settings.html#create-instance-flavor-sort
for more details.
create-instance-flavor-sort-reverse:
type: boolean
default: false
description: |
This option can be used to set the instance sorting to either ascending or descending.
Set True to sort in ascending order or False for descending order.
plugins:
type: string
default: "[]"
description: |
This option can be used to enable plugins for Horizon. The value should be a
JSON formatted list of plugin names.
actions:
get-dashboard-url:
description: URL for access to the Horizon OpenStack Dashboard.
containers:
horizon:
resource: horizon-image
resources:
horizon-image:
type: oci-image
description: OCI image for Horizon
upstream-source: ghcr.io/canonical/horizon:2024.1
requires:
database:
interface: mysql_client
limit: 1
ingress-internal:
interface: ingress
limit: 1
ingress-public:
interface: ingress
optional: true
limit: 1
identity-credentials:
interface: keystone-credentials
limit: 1
receive-ca-cert:
interface: certificate_transfer
optional: true
logging:
interface: loki_push_api
optional: true
tracing:
interface: tracing
optional: true
limit: 1
provides:
horizon:
interface: horizon
peers:
peers:
interface: horizon-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