@@ -62,6 +62,27 @@ type APIServerSpec struct {
6262 // The current default is the Intermediate profile.
6363 // +optional
6464 TLSSecurityProfile * TLSSecurityProfile `json:"tlsSecurityProfile,omitempty"`
65+ // tlsAdherence controls how strictly components in the cluster adhere to the TLS security profile
66+ // configured on this APIServer resource.
67+ //
68+ // Valid values are "LegacyExternalAPIServerComponentsOnly" and "StrictAllComponents".
69+ //
70+ // When set to "LegacyExternalAPIServerComponentsOnly" (the default), components attempt to honor
71+ // the configured TLS profile but may fall back to their individual defaults if conflicts arise.
72+ // This mode is intended for clusters that need to maintain compatibility with existing
73+ // configurations during migration.
74+ //
75+ // When set to "StrictAllComponents", all components must strictly honor the configured TLS profile.
76+ // This mode is recommended for security-conscious deployments and is required for
77+ // certain compliance frameworks.
78+ //
79+ // Components that encounter an unknown value for tlsAdherence should treat it as "StrictAllComponents"
80+ // and log a warning to ensure forward compatibility while defaulting to the more secure behavior.
81+ //
82+ // When omitted, the default value is "LegacyExternalAPIServerComponentsOnly".
83+ // +openshift:enable:FeatureGate=TLSAdherence
84+ // +optional
85+ TLSAdherence TLSAdherencePolicy `json:"tlsAdherence,omitempty"`
6586 // audit specifies the settings for audit configuration to be applied to all OpenShift-provided
6687 // API servers in the cluster.
6788 // +optional
@@ -237,6 +258,23 @@ const (
237258type APIServerStatus struct {
238259}
239260
261+ // TLSAdherencePolicy defines how strictly components adhere to the TLS security profile.
262+ // +kubebuilder:validation:Enum=LegacyExternalAPIServerComponentsOnly;StrictAllComponents
263+ type TLSAdherencePolicy string
264+
265+ const (
266+ // TLSAdherenceLegacyExternalAPIServerComponentsOnly provides backward-compatible behavior
267+ // where components attempt to honor the configured TLS profile but may fall back to their
268+ // individual defaults if conflicts arise. This mode is intended for clusters that need to
269+ // maintain compatibility with existing configurations during migration.
270+ TLSAdherenceLegacyExternalAPIServerComponentsOnly TLSAdherencePolicy = "LegacyExternalAPIServerComponentsOnly"
271+
272+ // TLSAdherenceStrictAllComponents enforces strict adherence to the TLS configuration.
273+ // All components must honor the configured profile. This mode is recommended for
274+ // security-conscious deployments and is required for certain compliance frameworks.
275+ TLSAdherenceStrictAllComponents TLSAdherencePolicy = "StrictAllComponents"
276+ )
277+
240278// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
241279
242280// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
0 commit comments