Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[containerapp] Add new commands for httprouteconfig #8302

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

Tratcher
Copy link

This adds list/create/update/show/delete commands for the new httprouteconfig feature area. For now create/update uses YAML input because the object model is quite complex. We may add more granular input in the future.


Related command

az containerapp env httprouteconfig

General Guidelines

  • Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
  • Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
  • My extension version conforms to the Extension version schema

About Extension Publish

There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Copy link

azure-client-tools-bot-prd bot commented Nov 21, 2024

⚠️Azure CLI Extensions Breaking Change Test
⚠️containerapp
rule cmd_name rule_message suggest_message
⚠️ 1011 - SubgroupAdd containerapp env http-route-config sub group containerapp env http-route-config added

Copy link

Hi @Tratcher,
Please write the description of changes which can be perceived by customers into HISTORY.rst.
If you want to release a new extension version, please update the version in setup.py as well.

@yonzhan
Copy link
Collaborator

yonzhan commented Nov 21, 2024

Thank you for your contribution! We will review the pull request and get back to you soon.

Copy link

CodeGen Tools Feedback Collection

Thank you for using our CodeGen tool. We value your feedback, and we would like to know how we can improve our product. Please take a few minutes to fill our codegen survey

Copy link

github-actions bot commented Nov 21, 2024

Hi @Tratcher

Release Suggestions

Module: containerapp

  • Update VERSION to 1.1.0b2 in src/containerapp/setup.py

Notes

@tdaroly
Copy link
Contributor

tdaroly commented Nov 21, 2024

Can you add a test?

This was for maintenance config which was also env level resource similar to httpRouteConfig. Can we do something similar?
env create:

self.cmd('containerapp env create -g {} -n {} --location {} --logs-destination none --enable-workload-profiles'.format(resource_group, env_name, TEST_LOCATION))

list:

self.cmd("az containerapp env maintenance-config list --resource-group {} --environment {}".format(resource_group, env_name), checks=[

update:

self.cmd("az containerapp env maintenance-config update --resource-group {} --environment {} -d {} -w {}".format(resource_group, env_name, updatedDuration, updatedWeekday), checks=[

delete:

self.cmd("az containerapp env maintenance-config remove --resource-group {} --environment {} -y".format(resource_group, env_name))

@yonzhan yonzhan added this to the Backlog milestone Nov 22, 2024
@Tratcher Tratcher force-pushed the feature-httprouteconfig branch from 4e0cb22 to 08585df Compare November 25, 2024 18:52
@Greedygre
Copy link
Contributor

I created a PR to fix the CI: #8340
You can sync the main branch for CI test.

yaml_httprouteconfig = load_yaml_file(yaml)
# check if the type is dict
if not isinstance(yaml_httprouteconfig, dict):
raise ValidationError('Invalid YAML provided. Please see https://aka.ms/azure-container-apps-yaml for a valid YAML spec.')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems this link doesn't contains the YAML example for httprouteconfig, right?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, the example hasn't been written yet. This link gets you to the docs where the example should be when it's ready.

Comment on lines +87 to +99
with self.argument_context('containerapp env http-route-config show') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")

with self.argument_context('containerapp env http-route-config delete') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")

with self.argument_context('containerapp env http-route-config create') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
c.argument('yaml', help="The path to the YAML input file.")

with self.argument_context('containerapp env http-route-config update') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
c.argument('yaml', help="The path to the YAML input file.")
Copy link
Contributor

@Greedygre Greedygre Dec 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can set the params duplicate arguments that will be used in multiple commands to the parent command group, for example:

tips: You can test with [command] --help, the behavior is the same.

Suggested change
with self.argument_context('containerapp env http-route-config show') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
with self.argument_context('containerapp env http-route-config delete') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
with self.argument_context('containerapp env http-route-config create') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
c.argument('yaml', help="The path to the YAML input file.")
with self.argument_context('containerapp env http-route-config update') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
c.argument('yaml', help="The path to the YAML input file.")
with self.argument_context('containerapp env http-route-config') as c:
c.argument('http_route_config_name', options_list=['--http-route-config-name', '-r'], help="The name of the http route configuration.")
c.argument('yaml', help="The path to the YAML input file.")

@zhoxing-ms
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@yanzhudd yanzhudd closed this Dec 9, 2024
@yanzhudd yanzhudd reopened this Dec 9, 2024
Copy link

github-actions bot commented Dec 9, 2024

🚫All pull requests will be blocked to merge until Jan 6, 2025 due to CCOA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants