@@ -93,6 +93,26 @@ const (
9393 // When enabled, the work controller will automatically clean up completed manifest works based on the configured
9494 // time-to-live duration to prevent accumulation of old completed resources.
9595 CleanUpCompletedManifestWork featuregate.Feature = "CleanUpCompletedManifestWork"
96+
97+ // ClusterProxy integrates cluster-proxy functionality directly into the klusterlet-agent, enabling
98+ // HTTP-based proxying to managed cluster API servers through gRPC tunnels.
99+ //
100+ // When enabled on the hub (via ClusterManager), it starts a gRPC server that provides an externally accessible
101+ // HTTP endpoint to proxy requests to managed cluster API servers. The API path format is:
102+ // https://<server-address>:<port>/<cluster-name>
103+ //
104+ // When enabled on the spoke (via Klusterlet), the agent establishes a gRPC connection to the hub and proxies
105+ // requests to its local API server. The agent sends a CSR with signer name "open-cluster-management.io/klusterlet-proxy"
106+ // to obtain the gRPC configuration, which is stored in the hub-kubeconfig-secret as "proxy-grpc.yaml".
107+ //
108+ // This feature requires gRPC configuration in ClusterManager.spec.grpcConfiguration with the ClusterProxy
109+ // feature gate enabled. Users can authenticate using either userToken or impersonation methods.
110+ //
111+ // Use cases include: fetching pod logs, accessing VM consoles (kubevirt), multicluster job submission (MultiKueue),
112+ // and multicluster apiserver access (Kubernetes MCP).
113+ //
114+ // When disabled, the legacy cluster-proxy addon should be used instead for proxy functionality.
115+ ClusterProxy featuregate.Feature = "ClusterProxy"
96116)
97117
98118// DefaultSpokeRegistrationFeatureGates consists of all known ocm-registration
@@ -137,3 +157,7 @@ var DefaultSpokeWorkFeatureGates = map[featuregate.Feature]featuregate.FeatureSp
137157 ExecutorValidatingCaches : {Default : false , PreRelease : featuregate .Alpha },
138158 RawFeedbackJsonString : {Default : false , PreRelease : featuregate .Alpha },
139159}
160+
161+ var DefaultServerConfigFeatureGates = map [featuregate.Feature ]featuregate.FeatureSpec {
162+ ClusterProxy : {Default : false , PreRelease : featuregate .Alpha },
163+ }
0 commit comments