refactor(minecraft-server): ambientMesh becomes an object carrying Istio's two constants
Gitea #143, maintainer's instruction. The HBONE port and the redirected probe source are ISTIO CONSTANTS, not standards, so they move from template literals into values with documented defaults - an operator can then correct them when Istio changes a number, without waiting for a chart release. One object under one "enabled", so the two halves still cannot be set separately; two values could drift apart, which is what this design exists to prevent. Every read is null-safe (#99), so a deleted object or one carrying only "enabled: true" falls back to the defaults declared here rather than dereferencing nil - the defect #136 shipped one value away. Provenance now written on each constant: 15008 is Istio's HBONE port, not IANA-registered for this and unknown to Kubernetes; 169.254.7.127 is link-local (RFC 3927, never routed), its IPv6 counterpart carries the same digits plus 1337, and neither the NetworkPolicy API nor the kubelet knows the address - only Istio's data plane rewrites the probe source onto it. Both read for ztunnel 1.30.6, and a change in either fails silently. The exception in ci/run-networkpolicy-test.sh stays pinned to the numbers that test names, and additionally asserts this chart declares the same defaults - never "whatever the value says", which would let a mistyped port in through a configurable field. No version change: nothing is published yet, the default is still off, and the render at defaults is byte-identical - re-diffed against origin/main. No redirectedProbeSources here, in neither values.yaml nor the schema: this chart offers no networkPolicy.probeSources, so its probe rule is never source-restricted and no ipBlock is ever rendered. The key would reach no rule and read as a control that does nothing, which is worse than one that is absent. ci/run-networkpolicy-test.sh asserts that absence rather than tolerating it.
This commit is contained in:
3 files changed
+80
-8
No files matched your search
@@ -386,7 +386,36 @@ networkPolicy:
|
||||
# NOT PROVEN: that 15008 alone is enough comes from Istio's documentation;
|
||||
# measured on this cluster is only which listeners ztunnel opens, and no
|
||||
# namespace carries istio.io/dataplane-mode yet.
|
||||
ambientMesh: false
|
||||
# BOTH NUMBERS BELOW ARE ISTIO CONSTANTS, NOT STANDARDS, and they are values
|
||||
# rather than template literals for exactly that reason: a vendor constant
|
||||
# can change, and an operator should be able to correct it without waiting
|
||||
# for a chart release. Their provenance is written on each one.
|
||||
#
|
||||
# DELETING THIS OBJECT IS SAFE. Every read falls back to the defaults
|
||||
# declared here (#99), so "ambientMesh: null", or an object carrying only
|
||||
# "enabled: true", renders the documented defaults instead of failing.
|
||||
ambientMesh:
|
||||
# The switch. Everything else here is inert while it is false, and the
|
||||
# chart renders exactly as it did before the object existed.
|
||||
enabled: false
|
||||
|
||||
# ISTIO'S HBONE PORT. A constant Istio chose, not a standard: not
|
||||
# registered with IANA for this, prescribed by no protocol, and unknown to
|
||||
# Kubernetes. Read for ztunnel 1.30.6 (measured on this cluster: ztunnel
|
||||
# opens [::]:15008 as its inbound listener).
|
||||
#
|
||||
# If Istio changes it, a pod in the mesh cannot be reached. Change it here
|
||||
# in all 30 charts AND in the pinned expectation inside
|
||||
# ci/run-networkpolicy-test.sh - the test is deliberately what forces
|
||||
# someone to look, because the exception it grants this port is pinned to
|
||||
# the number IT knows and not to whatever this value says. A value-driven
|
||||
# exception would let a mistyped port through, which is the hole design A
|
||||
# of #143 was rejected for.
|
||||
#
|
||||
# NOT MEASURED: that this port ALONE suffices comes from Istio's
|
||||
# documentation. Measured here is only which listeners ztunnel opens, and
|
||||
# no namespace carries istio.io/dataplane-mode yet.
|
||||
port: 15008
|
||||
|
||||
egress:
|
||||
# Additional outbound TCP ports. DNS (UDP and TCP 53) is always allowed and
|
||||
|
||||
Reference in new issue
Block a user