SAML Integrator
- Canonical IS DevOps
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 66 | 20 Sep 2024 | |
latest/edge | 69 | 19 Nov 2024 | |
latest/edge | 6 | 01 Aug 2023 |
juju deploy saml-integrator --channel edge
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
Charm architecture
The SAML Integrator charm fetches SAML metadata details based on the provided configuration and propagates them through a Juju integration.
Juju events
According to the Juju SDK: “an event is a data structure that encapsulates part of the execution context of a charm”.
For this charm, the following events are observed:
- upgrade-charm: fired on the charms when the unit is undergoing an upgrade. Action: install charm dependencies.
- config-changed: usually fired in response to a configuration change using the GUI or CLI. Action: validate the configuration and fetch the SAML details from the metadata URL. If there are relations, update the SAML details in the relation databag.
- saml-relation-joined: Custom event for when a new SAML relations joins. Action: write the SAML details in the relation databag.
Charm code overview
The src/charm.py
is the default entry point for a charm and has the SamlIntegratorOperatorCharm Python class which inherits from CharmBase.
CharmBase is the base class from which all Charms are formed, defined by Ops (Python framework for developing charms).
See more information in Charm.
The __init__
method guarantees that the charm observes all events relevant to its operation and handles them.