Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
6e90c84
feat: COS 3.0
MichaelThamm Jun 3, 2026
11efdce
Merge branch 'main' into feat/cos-3.0
MichaelThamm Jun 4, 2026
e8f857e
Merge remote-tracking branch 'origin/main' into feat/cos-3.0
MichaelThamm Jun 5, 2026
58b7893
chore: Default risks to stable
MichaelThamm Jun 8, 2026
bc9075f
Merge branch 'main' into feat/cos-3.0
MichaelThamm Jun 10, 2026
08d1cee
feat: Risk upgrades
MichaelThamm Jun 11, 2026
9ef8e5e
chore
MichaelThamm Jun 11, 2026
06ea970
chore
MichaelThamm Jun 11, 2026
c468eb6
chore
MichaelThamm Jun 11, 2026
23d0ab7
chore
MichaelThamm Jun 12, 2026
c3c3548
Merge remote-tracking branch 'origin/main' into feat/cos-3.0
MichaelThamm Jun 19, 2026
ed6f81e
Merge branch 'main' into feat/cos-3.0
MichaelThamm Jun 22, 2026
86dfc0a
Merge branch 'main' into feat/cos-3.0
MichaelThamm Jul 1, 2026
9cdbb79
chore
MichaelThamm Jul 1, 2026
e2dd11b
chore
MichaelThamm Jul 1, 2026
d6e8468
fix: Add base inputs to applications (#432)
MichaelThamm Jul 1, 2026
871d04a
chore
MichaelThamm Jul 1, 2026
56344cf
chore
MichaelThamm Jul 1, 2026
08421ec
chore
MichaelThamm Jul 1, 2026
20c71dd
chore
MichaelThamm Jul 1, 2026
61b9849
chore
MichaelThamm Jul 1, 2026
3918736
Merge branch 'track/3.0' into feat/cos-3.0
MichaelThamm Jul 1, 2026
08a325f
chore
MichaelThamm Jul 1, 2026
7af28c5
chore
MichaelThamm Jul 1, 2026
5bc266c
chore
MichaelThamm Jul 1, 2026
23ed0a5
chore
MichaelThamm Jul 1, 2026
d580814
chore
MichaelThamm Jul 6, 2026
1bc80ab
chore
MichaelThamm Jul 6, 2026
b919e35
chore
MichaelThamm Jul 6, 2026
425095f
chore
MichaelThamm Jul 6, 2026
1172963
chore
MichaelThamm Jul 6, 2026
12e92de
chore
MichaelThamm Jul 6, 2026
73f371f
chore
MichaelThamm Jul 6, 2026
a533028
chore
MichaelThamm Jul 6, 2026
a3401f3
chore
MichaelThamm Jul 6, 2026
e69072f
chore
MichaelThamm Jul 6, 2026
e03698c
chore
MichaelThamm Jul 6, 2026
7ddd277
Merge branch 'feat/cos-3.0' into feat/risk-upgrades
MichaelThamm Jul 6, 2026
5998e1b
chore
MichaelThamm Jul 6, 2026
fc3ba31
chore
MichaelThamm Jul 6, 2026
7713158
chore
MichaelThamm Jul 6, 2026
a99d5a5
Merge branch 'track/3.0' into feat/risk-upgrades
MichaelThamm Jul 6, 2026
80b9ada
chore
MichaelThamm Jul 6, 2026
978a00e
chore
MichaelThamm Jul 6, 2026
81122ed
chore
MichaelThamm Jul 6, 2026
f96941b
Update test_track_3_cos_lite_upgrade_risk.py
MichaelThamm Jul 6, 2026
be382ef
Update track-3.0.tf
MichaelThamm Jul 6, 2026
07c9e4c
chore
MichaelThamm Jul 6, 2026
45cb089
Update tests/integration/cos_lite/risk_upgrades/test_track_3_cos_lite…
MichaelThamm Jul 7, 2026
35caa1f
chore
MichaelThamm Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
fail-fast: false
matrix:
juju-channel: ["3.6/stable"]
scenario: ["tls_full", "tls_external", "tls_internal", "tls_none"]
scenario: ["risk_upgrades", "tls_full", "tls_external", "tls_internal", "tls_none"]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import os
from pathlib import Path

import jubilant
from helpers import generic_assertions

TF_FILE = Path(__file__).parent.parent.resolve() / "tls_full/track-3.0.tf"
S3_ENDPOINT = {
"s3_endpoint": os.getenv("S3_ENDPOINT"),
"s3_secret_key": os.getenv("S3_SECRET_KEY"),
"s3_access_key": os.getenv("S3_ACCESS_KEY"),
}


def test_envvars():
assert all(S3_ENDPOINT.values()), (
f"export the following env vars (upper case) before running this test: {S3_ENDPOINT.keys()}"
)


def test_deploy_from_stable(
tf_manager, ca_model: jubilant.Juju, cos_model: jubilant.Juju, tmp_path
):
# GIVEN a module deployed with a "stable" risk
tf_manager.init(TF_FILE)
tf_manager.apply(
ca_model=ca_model.model, cos_model=cos_model.model, risk="stable", **S3_ENDPOINT
)
generic_assertions(cos_model, ca_model, tmp_path)


def test_upgrade_path(
tf_manager, ca_model: jubilant.Juju, cos_model: jubilant.Juju, tmp_path
):
# WHEN upgraded to higher risk
for risk in ["candidate", "beta", "edge"]:
tf_manager.init(TF_FILE)
tf_manager.apply(
ca_model=ca_model.model, cos_model=cos_model.model, risk=risk, **S3_ENDPOINT
)

# THEN the model is upgraded and is healthy
generic_assertions(cos_model, ca_model, tmp_path)
8 changes: 7 additions & 1 deletion tests/integration/cos/tls_full/track-3.0.tf
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ module "ssc" {
module "cos" {
source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=track/3.0"
model = { uuid = data.juju_model.cos-model.uuid }
risk = "edge"
risk = var.risk
internal_tls = true
external_certificates_offer_url = "admin/${var.ca_model}.certificates"
external_ca_cert_offer_url = "admin/${var.ca_model}.send-ca-cert"
Expand All @@ -64,3 +64,9 @@ module "cos" {
tempo_coordinator = { units = 1 }
tempo_worker = { compactor_units = 1, distributor_units = 1, ingester_units = 1, metrics_generator_units = 1, querier_units = 1, query_frontend_units = 1 }
}

# This is used by ../risk_upgrades
variable "risk" {
type = string
default = "edge"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from pathlib import Path

import jubilant
from helpers import generic_assertions

TF_FILE = Path(__file__).parent.parent.resolve() / "tls_full/track-3.0.tf"


def test_deploy_from_stable(
tf_manager, ca_model: jubilant.Juju, cos_model: jubilant.Juju, tmp_path
):
# GIVEN a module deployed with a "stable" risk
tf_manager.init(TF_FILE)
tf_manager.apply(ca_model=ca_model.model, cos_model=cos_model.model, risk="stable")
generic_assertions(cos_model, ca_model, tmp_path)


def test_upgrade_path(
tf_manager, ca_model: jubilant.Juju, cos_model: jubilant.Juju, tmp_path
):
# WHEN upgraded to higher risk
for risk in ["candidate", "beta", "edge"]:
tf_manager.init(TF_FILE)
tf_manager.apply(ca_model=ca_model.model, cos_model=cos_model.model, risk=risk)

# THEN the model is upgraded and is healthy
generic_assertions(cos_model, ca_model, tmp_path)
8 changes: 7 additions & 1 deletion tests/integration/cos_lite/tls_full/track-3.0.tf
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ module "ssc" {
module "cos-lite" {
source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=track/3.0"
model = { uuid = data.juju_model.cos-model.uuid }
risk = "edge"
risk = var.risk
internal_tls = true
external_certificates_offer_url = "admin/${var.ca_model}.certificates"
external_ca_cert_offer_url = "admin/${var.ca_model}.send-ca-cert"
}

# This is used by ../risk_upgrades
variable "risk" {
type = string
default = "edge"
}
2 changes: 1 addition & 1 deletion tests/integration/cos_lite/tls_internal/track-3.0.tf
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ data "juju_model" "model" {
module "cos-lite" {
source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=track/3.0"
model = { uuid = data.juju_model.model.uuid }
risk = "edge"
risk = "stable"
internal_tls = true
}
Loading