--- Multi-doc format tests for cozystack (v1.12+) ---
(t *testing.T)
| 330 | // --- Multi-doc format tests for cozystack (v1.12+) --- |
| 331 | |
| 332 | func TestMultiDocCozystack_ControlPlane(t *testing.T) { |
| 333 | output := renderChartTemplateWithLookup(t, "../../charts/cozystack", "templates/controlplane.yaml", simpleNicLookup(), "v1.12") |
| 334 | |
| 335 | // Multi-doc: machine section retains non-deprecated fields |
| 336 | assertContains(t, output, "machine:") |
| 337 | assertContains(t, output, "type: controlplane") |
| 338 | assertContains(t, output, "kubelet:") |
| 339 | assertContains(t, output, "sysctls:") |
| 340 | assertContains(t, output, `net.ipv4.tcp_orphan_retries: "3"`) |
| 341 | assertContains(t, output, `net.core.netdev_max_backlog: "5000"`) |
| 342 | assertNotContains(t, output, "tcp_keepalive") // opt-in, off by default |
| 343 | assertContains(t, output, "kernel:") |
| 344 | assertContains(t, output, "certSANs:") |
| 345 | assertContains(t, output, "install:") |
| 346 | assertContains(t, output, "files:") |
| 347 | |
| 348 | // Multi-doc: deprecated machine.network and machine.registries REMOVED |
| 349 | assertNotContains(t, output, " interfaces:") |
| 350 | assertNotContains(t, output, " mirrors:") |
| 351 | |
| 352 | // Multi-doc: cluster section unchanged |
| 353 | assertContains(t, output, "cluster:") |
| 354 | assertContains(t, output, "clusterName: \"cozystack\"") |
| 355 | assertContains(t, output, "controlPlane:") |
| 356 | assertContains(t, output, "allowSchedulingOnControlPlanes:") |
| 357 | assertContains(t, output, "etcd:") |
| 358 | assertContains(t, output, `quota-backend-bytes: "8589934592"`) |
| 359 | assertContains(t, output, "proxy:") |
| 360 | |
| 361 | // Multi-doc: new document types present |
| 362 | assertContains(t, output, "---") |
| 363 | assertContains(t, output, "kind: HostnameConfig") |
| 364 | assertContains(t, output, "kind: ResolverConfig") |
| 365 | assertContains(t, output, "kind: RegistryMirrorConfig") |
| 366 | assertContains(t, output, "https://mirror.gcr.io") |
| 367 | |
| 368 | // Multi-doc: Layer2VIPConfig is gated on floatingIP, which is now |
| 369 | // blank in the shipped cozystack values.yaml (see |
| 370 | // TestMultiDocCozystack_Layer2VIPConfigWhenFloatingIPSet for the |
| 371 | // emitted-when-set path). Absence here asserts the chart does not |
| 372 | // fall back to a placeholder VIP on a fresh install. |
| 373 | assertNotContains(t, output, "kind: Layer2VIPConfig") |
| 374 | |
| 375 | // Multi-doc: network interface document present (LinkConfig or BondConfig) |
| 376 | hasLinkConfig := strings.Contains(output, "kind: LinkConfig") |
| 377 | hasBondConfig := strings.Contains(output, "kind: BondConfig") |
| 378 | if !hasLinkConfig && !hasBondConfig { |
| 379 | t.Errorf("expected output to contain either LinkConfig or BondConfig document") |
| 380 | } |
| 381 | } |
| 382 | |
| 383 | func TestMultiDocCozystack_Worker(t *testing.T) { |
| 384 | output := renderChartTemplate(t, "../../charts/cozystack", "templates/worker.yaml", "v1.12") |
nothing calls this directly
no test coverage detected