Files
cozystack/hack/e2e-platform-packages.sh
Myasnikov Daniil 62f2234aea fix(e2e): stop a failed teardown posting a failed test verdict
The teardown ends both merge-gating lanes under `if: always()`, and this
branch made it `exit "$cleanup_rc"`. So a `docker compose down` hiccup, a
busy zpool or a failed rmdir after a fully passing suite posts the
required "E2E Tests" status as a failure, and nothing downstream can tell
that apart from a test that actually broke. The runner is discarded when
the job ends, so there is no next run for the strictness to protect; a
reused host is a developer machine, and an annotation serves it. Loud,
not fatal.

Two comments described mechanisms that are gone. The breakpoint step
still explained reading a soft-red output that this branch removed, so a
maintainer would go looking for it; the node-join deadline now fails its
suite like any other, which is what makes `failure()` sufficient. The
build-talos header still described building the nocloud disk and e2e
needing it, when the job builds neither and the container lane downloads
no disk -- the profile is compiled by nightly and by the tag build's
`make assets` instead, and what a PR still compiles is installer.yaml,
which shares every input with it bar the platform and output format.

And the platform-package override now states its consequence for both
packages it replaces, not only for CDI: the merge-gating lane exercises
neither the shipped CDI default nor `drbd.enabled: true`.

Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
Assisted-By: LLM
2026-09-07 16:33:27 +05:00

93 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
set -eu
api_server_endpoint=${COZY_APISERVER_ENDPOINT:-https://192.168.123.10:6443}
linstor_drbd_enabled=${COZY_LINSTOR_DRBD_ENABLED:-true}
# Container-mode Talos shares the runner kernel and cannot load DRBD. Keep the
# normal package graph for QEMU, and let that lane replace two Packages instead:
# LINSTOR, otherwise identical with its logger sidecar disabled, and kubevirt-cdi,
# which is NOT identical -- it raises the importer memory limit from CDI's 600M
# to 4Gi and the request from 60M to 256Mi, for the reason stated above that
# override below.
#
# The consequence is worth stating where it is made, and it applies to both:
# the merge-gating lane exercises neither the shipped CDI default nor
# `drbd.enabled: true`. Whether a tenant worker disk imports at 600M, and
# whether the DRBD path works at all, are answered by the QEMU lanes
# (nightly.yaml, e2e-tag.yaml), which take no override, and not here.
case "$linstor_drbd_enabled" in
true|false) ;;
*)
echo "COZY_LINSTOR_DRBD_ENABLED must be true or false, got: $linstor_drbd_enabled" >&2
exit 2
;;
esac
cat <<EOF
apiVersion: cozystack.io/v1alpha1
kind: Package
metadata:
name: cozystack.cozystack-platform
spec:
variant: isp-full
components:
platform:
values:
networking:
podCIDR: "10.244.0.0/16"
podGateway: "10.244.0.1"
serviceCIDR: "10.96.0.0/16"
joinCIDR: "100.64.0.0/16"
publishing:
host: "example.org"
apiServerEndpoint: "$api_server_endpoint"
bundles:
enabledPackages:
- cozystack.external-dns-application
EOF
if [ "$linstor_drbd_enabled" = false ]; then
cat <<'EOF'
disabledPackages:
- cozystack.linstor
- cozystack.kubevirt-cdi
---
apiVersion: cozystack.io/v1alpha1
kind: Package
metadata:
name: cozystack.linstor
spec:
variant: default
components:
linstor:
values:
drbd:
enabled: false
---
# CDI's own 600M ceiling was seen to OOM the decompress+convert of a tenant
# worker disk near 100% on this lane, after which CDI retries from scratch and
# the DataVolume cycles forever instead of failing. It is an override here and
# not a chart default because the same import completes at 600M on a QEMU-node
# cluster, so what has been shown to need the headroom is this substrate, not
# the product. Move it into packages/system/kubevirt-cdi/values.yaml the day it
# reproduces somewhere that is not a container lane.
apiVersion: cozystack.io/v1alpha1
kind: Package
metadata:
name: cozystack.kubevirt-cdi
spec:
variant: default
components:
kubevirt-cdi:
values:
importerResources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 750m
memory: 4Gi
EOF
fi