Skip to content

Commit

Permalink
Add config-file-patterns for 'app deployment create' and 'app update' (
Browse files Browse the repository at this point in the history
  • Loading branch information
ninpan-ms authored Aug 11, 2021
1 parent c13404a commit 333e0cd
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 9 deletions.
15 changes: 11 additions & 4 deletions src/spring-cloud/azext_spring_cloud/_enterprise.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,15 @@ def app_update_enterprise(cmd, client, resource_group, service, name,
assign_endpoint,
deployment,
jvm_options,
env):
env,
config_file_patterns):
'''app_update_enterprise
1. update app properties (make sure some properties requires active deployment exist)
2. update deployment properties
'''
# check app properties need active deployment exist
is_app_update = any(x is not None for x in [assign_endpoint])
is_deployment_update = any(x is not None for x in [jvm_options, env])
is_deployment_update = any(x is not None for x in [jvm_options, env, config_file_patterns])
app_properties_needs_deployment_update = any(x is not None for x in [assign_endpoint])
if app_properties_needs_deployment_update or is_deployment_update:
deployment = _deployment_or_active_deployment_name(client, resource_group, service, name, deployment)
Expand All @@ -89,7 +90,7 @@ def app_update_enterprise(cmd, client, resource_group, service, name,
if is_deployment_update:
deployment_resource = models.DeploymentResource(
properties=models.DeploymentResourceProperties(
deployment_settings=_format_deployment_settings(jvm_options=jvm_options, env=env)
deployment_settings=_format_deployment_settings(jvm_options=jvm_options, env=env, config_file_patterns=config_file_patterns)
)
)
deployment_poller = client.deployments.begin_update(resource_group, service, name, deployment, deployment_resource)
Expand Down Expand Up @@ -195,6 +196,7 @@ def deployment_create_enterprise(cmd, client, resource_group, service, app, name
memory=None,
instance_count=None,
env=None,
config_file_patterns=None,
no_wait=False):
_ensure_deployment_not_exist(client, resource_group, service, app, name)
origin_deployment = _get_active_deployment_or_default(client, resource_group, service, app, skip_clone_settings)
Expand All @@ -203,7 +205,8 @@ def deployment_create_enterprise(cmd, client, resource_group, service, app, name
settings = _format_deployment_settings(cpu=cpu or origin_settings.resource_requests.cpu,
memory=memory or origin_settings.resource_requests.memory,
jvm_options=jvm_options,
env=env or origin_settings.environment_variables)
env=env or origin_settings.environment_variables,
config_file_patterns=config_file_patterns or _get_config_file_patterns(origin_settings.addon_configs))
user_source_info = _build_and_get_result(cmd, client, resource_group, service, app, version, artifact_path, target_module, additional_steps=1)
resource = models.DeploymentResource(
properties=models.DeploymentResourceProperties(
Expand Down Expand Up @@ -304,6 +307,10 @@ def _get_addon_configs(config_file_patterns):
return addon_configs


def _get_config_file_patterns(addon_configs):
return addon_configs.get(APPLICATION_CONFIGURATION_SERVICE_NAME) if addon_configs is not None else None


def _get_active_deployment(client, resource_group, service, name):
deployments = client.deployments.list(resource_group, service, name)
return next(iter(x for x in deployments if x.properties.active), None)
Expand Down
7 changes: 4 additions & 3 deletions src/spring-cloud/azext_spring_cloud/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,10 @@ def prepare_logs_argument(c):
help="A string containing jvm options, use '=' instead of ' ' for this argument to avoid bash parse error, eg: --jvm-options='-Xms1024m -Xmx2048m'")
c.argument('env', env_type)

with self.argument_context('spring-cloud app deploy') as c:
c.argument('config_file_patterns', type=str,
help="Configure file patterns separated with \',\' to decide which patterns of Application Configuration Service will be used. Use '\"\"' to clear existing configurations.",
for scope in ['spring-cloud app update', 'spring-cloud app deployment create', 'spring-cloud app deploy']:
with self.argument_context(scope) as c:
c.argument('config_file_patterns', type=str,
help="Only support in enterprise tier now. Config file patterns separated with \',\' to decide which patterns of Application Configuration Service will be used. Use '\"\"' to clear existing configurations.",
validator=validate_config_file_patterns)

with self.argument_context('spring-cloud app scale') as c:
Expand Down
3 changes: 2 additions & 1 deletion src/spring-cloud/azext_spring_cloud/tier_routing_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,14 @@ def app_update(cmd, client, resource_group, service, name,
jvm_options=None,
main_entry=None,
env=None,
config_file_patterns=None,
enable_persistent_storage=None,
https_only=None,
enable_end_to_end_tls=None):
if is_enterprise_tier(cmd, resource_group, service):
# runtime_version, enable_persistent_storage, main_entry, https_only, enable_end_to_end_tls not support
return app_update_enterprise(cmd, get_client(cmd), resource_group, service, name,
assign_endpoint, deployment, jvm_options, env)
assign_endpoint, deployment, jvm_options, env, config_file_patterns)
else:
return app_update_standard(cmd, client, resource_group, service, name,
assign_endpoint, deployment, runtime_version, jvm_options,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,12 @@ def deployment_create(cmd, client, resource_group, service, app, name,
memory=None,
instance_count=None,
env=None,
config_file_patterns=None,
no_wait=False):
if is_enterprise_tier(cmd, resource_group, service):
return deployment_create_enterprise(cmd, get_client(cmd), resource_group, service, app, name,
skip_clone_settings, version, artifact_path, target_module,
jvm_options, cpu, memory, instance_count, env, no_wait)
jvm_options, cpu, memory, instance_count, env, config_file_patterns, no_wait)
else:
return deployment_create_standard(cmd, client, resource_group, service, app, name,
skip_clone_settings, version, artifact_path, target_module, runtime_version,
Expand Down

0 comments on commit 333e0cd

Please sign in to comment.