@@ -196,6 +196,12 @@ func resourceContainerCluster() *schema.Resource {
196
196
ForceNew : true ,
197
197
},
198
198
199
+ "enable_binary_authorization" : {
200
+ Type : schema .TypeBool ,
201
+ Optional : true ,
202
+ Default : false ,
203
+ },
204
+
199
205
"enable_kubernetes_alpha" : {
200
206
Type : schema .TypeBool ,
201
207
Optional : true ,
@@ -650,6 +656,11 @@ func resourceContainerClusterCreate(d *schema.ResourceData, meta interface{}) er
650
656
cluster .ResourceLabels = m
651
657
}
652
658
659
+ cluster .BinaryAuthorization = & containerBeta.BinaryAuthorization {
660
+ Enabled : d .Get ("enable_binary_authorization" ).(bool ),
661
+ ForceSendFields : []string {"Enabled" },
662
+ }
663
+
653
664
req := & containerBeta.CreateClusterRequest {
654
665
Cluster : cluster ,
655
666
}
@@ -750,14 +761,14 @@ func resourceContainerClusterRead(d *schema.ResourceData, meta interface{}) erro
750
761
d .Set ("monitoring_service" , cluster .MonitoringService )
751
762
d .Set ("network" , cluster .NetworkConfig .Network )
752
763
d .Set ("subnetwork" , cluster .NetworkConfig .Subnetwork )
764
+ d .Set ("enable_binary_authorization" , cluster .BinaryAuthorization .Enabled )
753
765
if err := d .Set ("node_config" , flattenNodeConfig (cluster .NodeConfig )); err != nil {
754
766
return err
755
767
}
756
768
d .Set ("project" , project )
757
769
if err := d .Set ("addons_config" , flattenClusterAddonsConfig (cluster .AddonsConfig )); err != nil {
758
-
770
+ return err
759
771
}
760
-
761
772
nps , err := flattenClusterNodePools (d , config , cluster .NodePools )
762
773
if err != nil {
763
774
return err
@@ -911,6 +922,28 @@ func resourceContainerClusterUpdate(d *schema.ResourceData, meta interface{}) er
911
922
}
912
923
}
913
924
925
+ if d .HasChange ("enable_binary_authorization" ) {
926
+ enabled := d .Get ("enable_binary_authorization" ).(bool )
927
+ req := & containerBeta.UpdateClusterRequest {
928
+ Update : & containerBeta.ClusterUpdate {
929
+ DesiredBinaryAuthorization : & containerBeta.BinaryAuthorization {
930
+ Enabled : enabled ,
931
+ ForceSendFields : []string {"Enabled" },
932
+ },
933
+ },
934
+ }
935
+
936
+ updateF := updateFunc (req , "updating GKE binary authorization" )
937
+ // Call update serially.
938
+ if err := lockedCall (lockKey , updateF ); err != nil {
939
+ return err
940
+ }
941
+
942
+ log .Printf ("[INFO] GKE cluster %s's binary authorization has been updated to %v" , d .Id (), enabled )
943
+
944
+ d .SetPartial ("enable_binary_authorization" )
945
+ }
946
+
914
947
if d .HasChange ("maintenance_policy" ) {
915
948
var req * containerBeta.SetMaintenancePolicyRequest
916
949
if mp , ok := d .GetOk ("maintenance_policy" ); ok {
0 commit comments