Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 23 additions & 0 deletions .github/workflows/smoke-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,29 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: make smoke-legacy

# Bleeding-edge platforms (rhel10/rocky10). MCR package availability for
# these platforms lags their AMI/repo-metadata availability -- this job is
# intentionally merged ahead of full support so it goes green automatically,
# with no further workflow changes, once repos.mirantis.com publishes
# docker-ee for rhel/10 and rocky/10. Label-gated rather than always-on
# while that support is pending.
smoke-cutting-edge:
runs-on: ubuntu-latest
if: |
github.event_name == 'push' ||
contains(github.event.pull_request.labels.*.name, 'smoke-test') ||
contains(github.event.pull_request.labels.*.name, 'smoke-cutting-edge')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
- name: Run cutting-edge smoke test
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: make smoke-cutting-edge

smoke-windows:
runs-on: arc-runner-set-mirantis-public
if: |
Expand Down
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,16 @@ functional-test:
integration-test:
go test -v ./test/integration/... -timeout 20m

# Targets bleeding-edge platforms (rhel10/rocky10) via TestCuttingEdgeCluster.
# MCR package availability for these platforms lags their AMI/repo-metadata
# availability -- this target (and its CI job) is intentionally merged ahead
# of full support so it goes green automatically, with no further code
# changes, the moment repos.mirantis.com publishes docker-ee for rhel/10 and
# rocky/10. Run manually or via the smoke-cutting-edge label to check status.
.PHONY: smoke-cutting-edge
smoke-cutting-edge:
go test -count=1 -v ./test/smoke/... -run TestCuttingEdgeCluster -timeout 50m

.PHONY: smoke-modern
smoke-modern:
go test -count=1 -v ./test/smoke/... -run TestModernCluster -timeout 50m
Expand Down
1 change: 1 addition & 0 deletions examples/terraform/aws-simple/platform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ locals {
module "platform" {
count = length(local.upstream_platform_keys)
source = "terraform-mirantis-modules/provision-aws/mirantis//modules/platform"
version = ">= 0.1.7"

platform_key = local.upstream_platform_keys[count.index]
windows_password = var.windows_password
Expand Down
1 change: 1 addition & 0 deletions examples/terraform/aws-simple/provision.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ locals {
# PROVISION MACHINES/NETWORK
module "provision" {
source = "terraform-mirantis-modules/provision-aws/mirantis"
version = ">= 0.1.7"

name = var.name
common_tags = local.tags
Expand Down
29 changes: 28 additions & 1 deletion test/platforms.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,13 @@ var Platforms = map[string]Platform{
Public: true,
UserData: "sudo firewall-cmd --permanent --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp --add-port=10250/tcp; sudo firewall-cmd --reload",
},
"Sles16": {
Name: "sles_16",
Count: 1,
VolumeSize: "100",
Public: true,
UserData: "sudo firewall-cmd --permanent --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp --add-port=10250/tcp; sudo firewall-cmd --reload",
},
"Rocky8": {
Name: "rocky_8",
Count: 1,
Expand All @@ -117,6 +124,20 @@ var Platforms = map[string]Platform{
Public: true,
UserData: "sudo firewall-cmd --permanent --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp --add-port=10250/tcp; sudo firewall-cmd --reload",
},
"Rocky10": {
Name: "rocky_10",
Count: 1,
VolumeSize: "100",
Public: true,
UserData: "sudo firewall-cmd --permanent --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp --add-port=10250/tcp; sudo firewall-cmd --reload",
},
"Rhel10": {
Name: "rhel_10",
Count: 1,
VolumeSize: "100",
Public: true,
UserData: "sudo firewall-cmd --permanent --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp --add-port=10250/tcp; sudo firewall-cmd --reload",
},
"Windows2019": {
Name: "windows_2019",
Count: 1,
Expand All @@ -138,6 +159,13 @@ var Platforms = map[string]Platform{
Public: true,
UserData: "sudo ufw allow 2377,7946,10250/tcp; sudo ufw allow 7946,4789/udp",
},
"Ubuntu26": {
Name: "ubuntu_26.04",
Count: 1,
VolumeSize: "100",
Public: true,
UserData: "sudo ufw allow 2377,7946,10250/tcp; sudo ufw allow 7946,4789/udp",
},
"Windows2025": {
Name: "windows_2025",
Count: 1,
Expand All @@ -153,4 +181,3 @@ var Platforms = map[string]Platform{
UserData: "sudo ufw allow 2377,7946,10250/tcp; sudo ufw allow 7946,4789/udp",
},
}

40 changes: 38 additions & 2 deletions test/smoke/smoke_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ func runSmokeTest(t *testing.T, cfg smokeConfig) {
"nodegroups": cfg.Nodegroups,
"ssh_key_algorithm": cfg.SSHKeyAlgorithm,
"extra_tags": map[string]string{
"launchpad-smoke-test": "true",
"launchpad-smoke-test": "true",
"launchpad-smoke-test-name": cfg.Name,
},
}
Expand Down Expand Up @@ -191,6 +191,42 @@ func TestModernCluster(t *testing.T) {
})
}

// TestCuttingEdgeCluster exercises rhel10/rocky10/ubuntu26 managers and workers
// with sles16 as an additional worker, using the latest MCR and MKE versions.
// The rhel_10/rocky_10 platform keys are available in
// terraform-mirantis-provision-aws >= v0.1.7 (pinned in examples/terraform/aws-simple).
//
// NOTE: as of 2026-07-22, MCR has not published Docker EE packages for either
// SLES 16 (repos.mirantis.com/sles/ only has 12/12.3/15 - no 16 directory) or
// Ubuntu 26.04 "resolute" (repos.mirantis.com/ubuntu/dists/ only has
// trusty/xenial/bionic/focal/jammy/noble - no resolute directory). Both nodes
// are expected to fail at the Install MCR phase until MCR ships support; see
// also the RHEL10/Rocky10 MCR-daemon-start gap (missing xt_* kernel modules
// break iptables, and MCR's nftables backend is incompatible with swarm mode)
// tracked separately.
func TestCuttingEdgeCluster(t *testing.T) {
runSmokeTest(t, smokeConfig{
// AWS LB/target-group names are capped at 32 chars: the stack name is
// "smoke-{Name}-{5-char-random}" and Terraform appends suffixes like
// "-mke-kube" (9 chars), capping len(Name) at 11. Hence "cuttingedge"
// rather than "cutting-edge" (12 chars).
Name: "cuttingedge",
MCRChannel: "stable-29.4",
MKEVersion: "3.9.2",
MSRVersion: "3.1.18",
SSHKeyAlgorithm: "ed25519",
Nodegroups: map[string]interface{}{
"MngrRhel10": test.Platforms["Rhel10"].GetManager(),
"MngrRocky10": test.Platforms["Rocky10"].GetManager(),
"MngrUbuntu26": test.Platforms["Ubuntu26"].GetManager(),
"WrkRhel10": test.Platforms["Rhel10"].GetWorker(),
"WrkRocky10": test.Platforms["Rocky10"].GetWorker(),
"WrkSles16": test.Platforms["Sles16"].GetWorker(),
"WrkUbuntu26": test.Platforms["Ubuntu26"].GetWorker(),
},
})
}

// TestLegacyCluster exercises rhel8/rocky8/ubuntu22 managers and workers
// with MCR stable-25.0 and MKE 3.8.8.
func TestLegacyCluster(t *testing.T) {
Expand Down Expand Up @@ -243,7 +279,7 @@ func TestFIPSCluster(t *testing.T) {
SSHKeyAlgorithm: "rsa",
Nodegroups: map[string]interface{}{
"MngrUbuntu22FIPS": test.Platforms["Ubuntu22FIPS"].GetManager(),
"WrkWin2025": test.Platforms["Windows2025"].GetWorker(),
"WrkWin2025": test.Platforms["Windows2025"].GetWorker(),
},
})
}
Loading