How to configure granular ingress in COS¶
Note
This feature is not available in track/2, only later versions have this ability
Both COS and COS Lite allow you to configure Traefik ingress for certain internal components. This configuration determines which applications are integrated with Traefik via an ingress interface; routing their traffic through Traefik.
%%{init: { "theme": "dark" } }%%
flowchart LR
user([External traffic])
subgraph COS [cos-model]
traefik[traefik]
grafana[grafana]
alertmanager[alertmanager]
catalogue[catalogue]
loki[loki]
prometheus[prometheus]
end
user --> traefik
traefik -->|"ingress = true"| grafana
traefik -. "ingress = false" .-> alertmanager
traefik -. "ingress = false" .-> catalogue
traefik -. "ingress = false" .-> loki
traefik -. "ingress = false" .-> prometheus
classDef Charm stroke:white,stroke-width:1px,color:white,rx:8px,ry:8px
classDef Disabled stroke:#666,stroke-width:1px,color:#aaa,rx:8px,ry:8px
class traefik,grafana,user Charm
class alertmanager,catalogue,loki,prometheus Disabled
Configure the Terraform module¶
Note
If you are using COS Lite, create a cos-lite module with the cos-lite source: git::https://github.com/canonical/observability-stack//terraform/cos-lite.
The COS Lite bundle is now deprecated in favor of Terraform modules.
Using the following Terraform module, set your ingress options to enable or disable routing traffic through Traefik.
resource "juju_model" "cos" {
name = "cos"
}
module "cos" {
# Use the right source value depending on whether you are using cos or cos-lite
source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=main"
model_uuid = juju_model.cos.uuid
risk = "edge"
# ... other inputs ...
# Toggle a component's ingress integration to Traefik.
ingress = {
alertmanager = false
catalogue = false
grafana = true # only enable ingress for Grafana
loki = false
prometheus = false
}
}
Ensure that you have provided any required variables (update the ... other inputs ... placeholder) for the respective COS module before applying the configuration, by running terraform apply.