@@ -36,10 +36,9 @@ def construct_payload(self):
36
36
# Vnet
37
37
self .set_up_vnet_configuration ()
38
38
39
- if self .get_argument_mtls_enabled () is not None :
40
- safe_set (self .managed_env_def , "properties" , "peerAuthentication" , "mtls" , "enabled" , value = self .get_argument_mtls_enabled ())
39
+ self .set_up_peer_to_peer_encryption ()
41
40
### copy end
42
-
41
+
43
42
### overwrite custom_domain_configuration
44
43
self .set_up_custom_domain_configuration ()
45
44
@@ -58,13 +57,17 @@ def validate_arguments(self):
58
57
if not self .get_argument_enable_workload_profiles ():
59
58
raise RequiredArgumentMissingError ("Cannot use --infrastructure-resource-group/-i without "
60
59
"--enable-workload-profiles/-w" )
61
-
60
+
62
61
# validate custom domain configuration
63
62
if self .get_argument_hostname ():
64
63
if self .get_argument_certificate_file () and self .get_argument_certificate_key_vault_url ():
65
64
raise ValidationError ("Cannot use --certificate-file with --certificate-akv-url at the same time" )
66
65
if (not self .get_argument_certificate_file ()) and (not self .get_argument_certificate_key_vault_url ()):
67
66
raise ValidationError ("Either --certificate-file or --certificate-akv-url should be set when --dns-suffix is set" )
67
+
68
+ # validate mtls and p2p traffic encryption
69
+ if self .get_argument_p2p_encryption_enabled () is False and self .get_argument_mtls_enabled () is True :
70
+ raise ValidationError ("Cannot use '--enable-mtls' with '--enable-peer-to-peer-encryption False'" )
68
71
69
72
def set_up_dynamic_json_columns (self ):
70
73
if self .get_argument_logs_destination () == "log-analytics" and self .get_argument_logs_dynamic_json_columns () is not None :
@@ -73,7 +76,7 @@ def set_up_dynamic_json_columns(self):
73
76
def set_up_infrastructure_resource_group (self ):
74
77
if self .get_argument_enable_workload_profiles () and self .get_argument_infrastructure_subnet_resource_id () is not None :
75
78
self .managed_env_def ["properties" ]["infrastructureResourceGroup" ] = self .get_argument_infrastructure_resource_group ()
76
-
79
+
77
80
def set_up_managed_identity (self ):
78
81
identity_def = ManagedServiceIdentity
79
82
identity_def ["type" ] = "None"
@@ -149,6 +152,16 @@ def set_up_custom_domain_configuration(self):
149
152
}
150
153
self .managed_env_def ["properties" ]["customDomainConfiguration" ] = custom_domain
151
154
155
+ def set_up_peer_to_peer_encryption (self ):
156
+ is_p2p_encryption_enabled = self .get_argument_p2p_encryption_enabled ()
157
+ is_mtls_enabled = self .get_argument_mtls_enabled ()
158
+
159
+ if is_p2p_encryption_enabled is not None :
160
+ safe_set (self .managed_env_def , "properties" , "peerTrafficConfiguration" , "encryption" , "enabled" , value = is_p2p_encryption_enabled )
161
+
162
+ if is_mtls_enabled is not None :
163
+ safe_set (self .managed_env_def , "properties" , "peerAuthentication" , "mtls" , "enabled" , value = is_mtls_enabled )
164
+
152
165
def get_argument_enable_workload_profiles (self ):
153
166
return self .get_param ("enable_workload_profiles" )
154
167
@@ -163,13 +176,16 @@ def get_argument_system_assigned(self):
163
176
164
177
def get_argument_user_assigned (self ):
165
178
return self .get_param ("user_assigned" )
166
-
179
+
167
180
def get_argument_certificate_identity (self ):
168
181
return self .get_param ("certificate_identity" )
169
-
182
+
170
183
def get_argument_certificate_key_vault_url (self ):
171
184
return self .get_param ("certificate_key_vault_url" )
172
185
186
+ def get_argument_p2p_encryption_enabled (self ):
187
+ return self .get_param ("p2p_encryption_enabled" )
188
+
173
189
174
190
class ContainerappEnvPreviewUpdateDecorator (ContainerAppEnvUpdateDecorator ):
175
191
def validate_arguments (self ):
@@ -178,6 +194,15 @@ def validate_arguments(self):
178
194
# validate custom domain configuration
179
195
if self .get_argument_certificate_file () and self .get_argument_certificate_key_vault_url ():
180
196
raise ValidationError ("Cannot use certificate --certificate-file with --certificate-akv-url at the same time" )
197
+
198
+ # validate mtls and p2p traffic encryption
199
+ if self .get_argument_p2p_encryption_enabled () is False and self .get_argument_mtls_enabled () is True :
200
+ raise ValidationError ("Cannot use '--enable-mtls' with '--enable-peer-to-peer-encryption False'" )
201
+
202
+ def construct_payload (self ):
203
+ super ().construct_payload ()
204
+
205
+ self .set_up_peer_to_peer_encryption ()
181
206
182
207
def set_up_app_log_configuration (self ):
183
208
logs_destination = self .get_argument_logs_destination ()
@@ -217,12 +242,24 @@ def set_up_custom_domain_configuration(self):
217
242
safe_set (self .managed_env_def , "properties" , "customDomainConfiguration" , "certificateValue" , value = "" )
218
243
safe_set (self .managed_env_def , "properties" , "customDomainConfiguration" , "certificatePassword" , value = "" )
219
244
245
+ def set_up_peer_to_peer_encryption (self ):
246
+ is_p2p_encryption_enabled = self .get_argument_p2p_encryption_enabled ()
247
+ is_mtls_enabled = self .get_argument_mtls_enabled ()
248
+
249
+ if is_p2p_encryption_enabled is not None :
250
+ safe_set (self .managed_env_def , "properties" , "peerTrafficConfiguration" , "encryption" , "enabled" , value = is_p2p_encryption_enabled )
251
+
252
+ if is_mtls_enabled is not None :
253
+ safe_set (self .managed_env_def , "properties" , "peerAuthentication" , "mtls" , "enabled" , value = is_mtls_enabled )
254
+
220
255
def get_argument_logs_dynamic_json_columns (self ):
221
256
return self .get_param ("logs_dynamic_json_columns" )
222
-
257
+
223
258
def get_argument_certificate_identity (self ):
224
259
return self .get_param ("certificate_identity" )
225
-
260
+
226
261
def get_argument_certificate_key_vault_url (self ):
227
262
return self .get_param ("certificate_key_vault_url" )
228
-
263
+
264
+ def get_argument_p2p_encryption_enabled (self ):
265
+ return self .get_param ("p2p_encryption_enabled" )
0 commit comments