@@ -267,15 +267,20 @@ func (s *Service) createCluster(ctx context.Context, log *logr.Logger) error {
267267 ReleaseChannel : & containerpb.ReleaseChannel {
268268 Channel : convertToSdkReleaseChannel (s .scope .GCPManagedControlPlane .Spec .ReleaseChannel ),
269269 },
270+ BinaryAuthorization : & containerpb.BinaryAuthorization {
271+ EvaluationMode : convertToSdkBinaryAuthorizationEvaluationMode (s .scope .GCPManagedControlPlane .Spec .BinaryAuthorization ),
272+ },
270273 ControlPlaneEndpointsConfig : & containerpb.ControlPlaneEndpointsConfig {
271274 IpEndpointsConfig : & containerpb.ControlPlaneEndpointsConfig_IPEndpointsConfig {
272275 AuthorizedNetworksConfig : convertToSdkMasterAuthorizedNetworksConfig (s .scope .GCPManagedControlPlane .Spec .MasterAuthorizedNetworksConfig ),
273276 },
274277 },
275278 }
279+
276280 if initialClusterVersionFromSpec := s .scope .GetControlPlaneVersion (); initialClusterVersionFromSpec != nil {
277281 cluster .InitialClusterVersion = convertToSdkMasterVersion (* initialClusterVersionFromSpec )
278282 }
283+
279284 if s .scope .GCPManagedControlPlane .Spec .ClusterNetwork != nil {
280285 cn := s .scope .GCPManagedControlPlane .Spec .ClusterNetwork
281286 if cn .UseIPAliases {
@@ -284,16 +289,19 @@ func (s *Service) createCluster(ctx context.Context, log *logr.Logger) error {
284289 cluster .IpAllocationPolicy .ClusterIpv4CidrBlock = cn .Pod .CidrBlock
285290 cluster .IpAllocationPolicy .ServicesIpv4CidrBlock = cn .Service .CidrBlock
286291 }
292+
287293 if cn .PrivateCluster != nil {
288294 cluster .PrivateClusterConfig = & containerpb.PrivateClusterConfig {}
289295
290296 enablePublicEndpoint := ! cn .PrivateCluster .EnablePrivateEndpoint
291297 cluster .ControlPlaneEndpointsConfig .IpEndpointsConfig .EnablePublicEndpoint = & enablePublicEndpoint
298+
292299 if cn .PrivateCluster .EnablePrivateEndpoint {
293300 cluster .ControlPlaneEndpointsConfig .IpEndpointsConfig .AuthorizedNetworksConfig = & containerpb.MasterAuthorizedNetworksConfig {
294301 Enabled : true ,
295302 }
296303 }
304+
297305 cluster .NetworkConfig .DefaultEnablePrivateNodes = & cn .PrivateCluster .EnablePrivateNodes
298306
299307 cluster .PrivateClusterConfig .MasterIpv4CidrBlock = cn .PrivateCluster .ControlPlaneCidrBlock
@@ -442,6 +450,22 @@ func convertToSdkMasterAuthorizedNetworksConfig(config *infrav1exp.MasterAuthori
442450 }
443451}
444452
453+ // convertToSdkBinaryAuthorizationEvaluationMode converts the BinaryAuthorization string to the SDK int32 value.
454+ func convertToSdkBinaryAuthorizationEvaluationMode (mode * infrav1exp.BinaryAuthorization ) containerpb.BinaryAuthorization_EvaluationMode {
455+ if mode == nil {
456+ return containerpb .BinaryAuthorization_EVALUATION_MODE_UNSPECIFIED
457+ }
458+
459+ switch * mode {
460+ case infrav1exp .EvaluationModeDisabled :
461+ return containerpb .BinaryAuthorization_DISABLED
462+ case infrav1exp .EvaluationModeProjectSingletonPolicyEnforce :
463+ return containerpb .BinaryAuthorization_PROJECT_SINGLETON_POLICY_ENFORCE
464+ default :
465+ return containerpb .BinaryAuthorization_EVALUATION_MODE_UNSPECIFIED
466+ }
467+ }
468+
445469func (s * Service ) checkDiffAndPrepareUpdate (existingCluster * containerpb.Cluster , log * logr.Logger ) (bool , * containerpb.UpdateClusterRequest ) {
446470 log .V (4 ).Info ("Checking diff and preparing update." )
447471
0 commit comments