mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-13 08:05:19 +09:00
Replaces the per-app BATS E2E suite (hack/e2e-apps/*.bats) with declarative Kyverno Chainsaw tests under hack/e2e-chainsaw/, extending this branch's pilot (postgres + bucket) to all 18 app suites. - Declarative ports assert on status/conditions and concrete fields; the repeated "timeout ... until kubectl get" + "kubectl wait" boilerplate collapses into a single polling assert with structured failure diffs and automatic events/describe/podLogs capture on failure. - Inherently imperative suites keep their logic in script steps: openbao init/unseal, kuberture split-horizon probes, vminstance, the gateway admission/impersonation cases, and kubernetes-latest/previous, which wrap the relocated hack/e2e-chainsaw/_lib/run-kubernetes.sh verbatim. - Gateway tests derive the tenant apex from the namespace host label at runtime, so they are host-independent. CI: the e2e job now runs "chainsaw test hack/e2e-chainsaw/" via a new test-chainsaw target and uploads the JUnit chainsaw-report.xml; the chainsaw binary is added to the e2e-sandbox image. install-cozystack and test-openapi stay BATS. The per-app 3-retry loop is dropped, since assertion polling replaces the fixed-timeout flakiness it papered over. Verified against a dev cluster (DB/app, storage and VM suites pass). Service port assertions use the ports[*].port projection form because Chainsaw v0.2.15 mis-evaluates JMESPath number-literal port filters. Assisted-By: Claude <noreply@anthropic.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
27 lines
824 B
YAML
27 lines
824 B
YAML
apiVersion: cozystack.io/v1alpha1
|
|
kind: Package
|
|
metadata:
|
|
name: cozystack.kuberture
|
|
spec:
|
|
variant: default
|
|
components:
|
|
kuberture:
|
|
values:
|
|
kuberture:
|
|
config:
|
|
outputs:
|
|
- name: public
|
|
hostname:
|
|
- kuberture-e2e-public.cozystack.test
|
|
annotationPrefix: external-dns.alpha.kubernetes.io/
|
|
serviceName: kuberture-e2e-public
|
|
addressSource: endpointslice
|
|
recordTTL: 60
|
|
- name: internal
|
|
hostname:
|
|
- kuberture-e2e-internal.cozystack.test
|
|
annotationPrefix: kuberture-e2e-internal-dns.io/
|
|
serviceName: kuberture-e2e-internal
|
|
addressSource: endpointslice
|
|
recordTTL: 300
|