From 55372da183135ba3eb1fda0bbea52b6a8ecbd784 Mon Sep 17 00:00:00 2001 From: Vivian Li Date: Wed, 12 Apr 2023 18:54:26 -0700 Subject: [PATCH] Add workflows for all endpoints (#2203) * Add workflows for all endpoints * Fixed online vs batch endpoint workflow command bug * Testing workflows catting endpoint .yml files * Removed all newly generated non-endpoint related workflows that were under endpoint folder * Testing workflows deleting endpoints before creation if exists * Add continue on failure for delete endpoint * Testing replacing endpoint names during action and deleting * Testing extra delete section * Testing -n over -f * Testing new endpoint names * Reduced endpoint names to 32 chars max * Replaced lowercase endpoint_name with uppercase, added quotes * Removed uai create endpoint workflow * Added create deployment sections to workflows if exist * Standardized all usages of conda*.yml to use .yaml ending in cli/endpoints * Standardized all usages of conda*.yml to use .yaml ending in cli/endpoints * Used same modified endpoint name for deployments in workflow * Temporarily removed deployments and endpoints which were failing due to malformed .yml and other transient reasons * Removed extra print statement and comment * Added missing name for deployment * Added 1-sai-create-endpoint to ignore list --- ...models-custom-outputs-parquet-endpoint.yml | 70 +++++++++++++++ ...odels-heart-classifier-mlflow-endpoint.yml | 63 ++++++++++++++ ...uggingface-text-summarization-endpoint.yml | 70 +++++++++++++++ ...oy-models-imagenet-classifier-endpoint.yml | 63 ++++++++++++++ ...eploy-models-mnist-classifier-endpoint.yml | 63 ++++++++++++++ ...multimodel-minimal-multimodel-endpoint.yml | 63 ++++++++++++++ ...gle-model-conda-in-dockerfile-endpoint.yml | 63 ++++++++++++++ ...le-model-minimal-single-model-endpoint.yml | 63 ++++++++++++++ ...multideployment-scikit-mlflow-endpoint.yml | 63 ++++++++++++++ ...tainer-r-multimodel-plumber-r-endpoint.yml | 63 ++++++++++++++ ...orchserve-densenet-torchserve-endpoint.yml | 63 ++++++++++++++ ...triton-single-model-triton-cc-endpoint.yml | 63 ++++++++++++++ ...-online-kubernetes-kubernetes-endpoint.yml | 77 +++++++++++++++++ ...dpoints-online-managed-sample-endpoint.yml | 77 +++++++++++++++++ ...ts-online-managed-vnet-mlflow-endpoint.yml | 63 ++++++++++++++ ...ts-online-managed-vnet-sample-endpoint.yml | 63 ++++++++++++++ cli/README.md | 16 ++++ ...container-mlflow-multideployment-scikit.sh | 4 +- ...oy-custom-container-triton-single-model.sh | 4 +- .../environment/{conda.yml => conda.yaml} | 0 .../environment/{conda.yml => conda.yaml} | 0 .../deploy-and-run.sh | 2 +- .../deployment.yml | 2 +- ..._torch113.yml => deployment_torch113.yaml} | 2 +- ...torch113-conda.yml => torch113-conda.yaml} | 0 ...ntu18.yml => torch113-cu101-ubuntu18.yaml} | 2 +- ...torch200-conda.yml => torch200-conda.yaml} | 0 ...ntu20.yml => torch200-cu117-ubuntu20.yaml} | 2 +- .../deployment-by-batch.yml | 2 +- .../deployment-by-file.yml | 2 +- .../environment/{conda.yml => conda.yaml} | 0 .../deployment-keras/deployment.yml | 2 +- .../environment/{conda.yml => conda.yaml} | 0 .../deployment-torch/deployment.yml | 2 +- .../environment/{conda.yml => conda.yaml} | 0 .../minimal-multimodel-endpoint.yml | 2 +- ...gle-model-conda-in-dockerfile-endpoint.yml | 2 +- ...ingle-model-conda-in-dockerfile.dockerfile | 2 +- .../minimal-single-model-endpoint.yml | 2 +- .../mlflow-deployment.yml | 2 +- .../mlflow-endpoint.yml | 2 +- .../multideployment-scikit/mlflow.dockerfile | 4 +- .../single-model/triton-cc-deployment.yml | 2 +- .../single-model/triton-cc-endpoint.yml | 2 +- .../kubernetes/kubernetes-blue-deployment.yml | 2 +- .../kubernetes-green-deployment.yml | 2 +- .../managed-identities/2-sai-deployment.yml | 2 +- .../managed-identities/2-uai-deployment.yml | 3 +- .../online/managed/sample/blue-deployment.yml | 2 +- .../managed/sample/green-deployment.yml | 2 +- .../vnet/mlflow/environment/Dockerfile | 6 +- .../vnet/sample/environment/Dockerfile | 6 +- ...dentity.yml => conda-managedidentity.yaml} | 0 .../environment/{conda.yml => conda.yaml} | 0 .../environment/{conda.yml => conda.yaml} | 0 .../ncd/sklearn-deployment-with-script.yaml | 2 +- cli/readme.py | 86 +++++++++++++++++-- 57 files changed, 1182 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-managed-sample-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml rename cli/endpoints/batch/deploy-models/custom-outputs-parquet/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/huggingface-text-summarization/{deployment_torch113.yml => deployment_torch113.yaml} (91%) rename cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/{torch113-conda.yml => torch113-conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/{torch113-cu101-ubuntu18.yml => torch113-cu101-ubuntu18.yaml} (85%) rename cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/{torch200-conda.yml => torch200-conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/{torch200-cu117-ubuntu20.yml => torch200-cu117-ubuntu20.yaml} (85%) rename cli/endpoints/batch/deploy-models/imagenet-classifier/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/online/model-1/environment/{conda-managedidentity.yml => conda-managedidentity.yaml} (100%) rename cli/endpoints/online/model-1/environment/{conda.yml => conda.yaml} (100%) rename cli/endpoints/online/model-2/environment/{conda.yml => conda.yaml} (100%) diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml new file mode 100644 index 00000000000..a744b482ed5 --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml @@ -0,0 +1,70 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-models/custom-outputs-parquet/** + - infra/** + - .github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n customoutputsparquetendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml + az ml batch-endpoint create -n customoutputsparquetendpoint -f endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/custom-outputs-parquet/deployment.yml + az ml batch-deployment create -e customoutputsparquetendpoint -f endpoints/batch/deploy-models/custom-outputs-parquet/deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n customoutputsparquetendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml new file mode 100644 index 00000000000..97464b78e4b --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-models/heart-classifier-mlflow/** + - infra/** + - .github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n heartclassifiermlflowendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml + az ml batch-endpoint create -n heartclassifiermlflowendpoint -f endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n heartclassifiermlflowendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml new file mode 100644 index 00000000000..86c3c5c157d --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml @@ -0,0 +1,70 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-models/huggingface-text-summarization/** + - infra/** + - .github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n facetextsummarizationendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml + az ml batch-endpoint create -n facetextsummarizationendpoint -f endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml + az ml batch-deployment create -e facetextsummarizationendpoint -f endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n facetextsummarizationendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml new file mode 100644 index 00000000000..fffc4dc614b --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-models/imagenet-classifier/** + - infra/** + - .github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n elsimagenetclassifierendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml + az ml batch-endpoint create -n elsimagenetclassifierendpoint -f endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n elsimagenetclassifierendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml new file mode 100644 index 00000000000..410893a29d7 --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-models-mnist-classifier-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-models/mnist-classifier/** + - infra/** + - .github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n modelsmnistclassifierendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/batch/deploy-models/mnist-classifier/endpoint.yml + az ml batch-endpoint create -n modelsmnistclassifierendpoint -f endpoints/batch/deploy-models/mnist-classifier/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml batch-endpoint delete -n modelsmnistclassifierendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml new file mode 100644 index 00000000000..8ee33f7b2bf --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint +on: + workflow_dispatch: + schedule: + - cron: "8 7/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/minimal/multimodel/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n odelminimalmultimodelendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml + az ml online-endpoint create -n odelminimalmultimodelendpoint -f endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n odelminimalmultimodelendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml new file mode 100644 index 00000000000..1c896ec91ce --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint +on: + workflow_dispatch: + schedule: + - cron: "11 1/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n delcondaindockerfileendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml + az ml online-endpoint create -n delcondaindockerfileendpoint -f endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n delcondaindockerfileendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml new file mode 100644 index 00000000000..a87ed70abdd --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint +on: + workflow_dispatch: + schedule: + - cron: "9 6/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/minimal/single-model/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n elminimalsinglemodelendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml + az ml online-endpoint create -n elminimalsinglemodelendpoint -f endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n elminimalsinglemodelendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml new file mode 100644 index 00000000000..e2c2aa5cae6 --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint +on: + workflow_dispatch: + schedule: + - cron: "52 0/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/mlflow/multideployment-scikit/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n eploymentscikitmlflowendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml + az ml online-endpoint create -n eploymentscikitmlflowendpoint -f endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n eploymentscikitmlflowendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml new file mode 100644 index 00000000000..fa1a61f41c3 --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint +on: + workflow_dispatch: + schedule: + - cron: "10 0/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/r/multimodel-plumber/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n rmultimodelplumberrendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml + az ml online-endpoint create -n rmultimodelplumberrendpoint -f endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n rmultimodelplumberrendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml new file mode 100644 index 00000000000..740894dee9d --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint +on: + workflow_dispatch: + schedule: + - cron: "14 4/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/torchserve/densenet/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n rvedensenettorchserveendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml + az ml online-endpoint create -n rvedensenettorchserveendpoint -f endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n rvedensenettorchserveendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml new file mode 100644 index 00000000000..f5130ea726b --- /dev/null +++ b/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint +on: + workflow_dispatch: + schedule: + - cron: "49 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/custom-container/triton/single-model/** + - infra/** + - .github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n singlemodeltritonccendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml + az ml online-endpoint create -n singlemodeltritonccendpoint -f endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n singlemodeltritonccendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml b/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml new file mode 100644 index 00000000000..5ab515a9766 --- /dev/null +++ b/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml @@ -0,0 +1,77 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-kubernetes-kubernetes-endpoint +on: + workflow_dispatch: + schedule: + - cron: "46 2/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/kubernetes/** + - infra/** + - .github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n ekuberneteskubernetesendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/kubernetes/kubernetes-endpoint.yml + az ml online-endpoint create -n ekuberneteskubernetesendpoint -f endpoints/online/kubernetes/kubernetes-endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/kubernetes/kubernetes-blue-deployment.yml + az ml online-deployment create -e ekuberneteskubernetesendpoint -f endpoints/online/kubernetes/kubernetes-blue-deployment.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/kubernetes/kubernetes-green-deployment.yml + az ml online-deployment create -e ekuberneteskubernetesendpoint -f endpoints/online/kubernetes/kubernetes-green-deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n ekuberneteskubernetesendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml new file mode 100644 index 00000000000..6d7672e5a76 --- /dev/null +++ b/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml @@ -0,0 +1,77 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-managed-sample-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/managed/sample/** + - infra/** + - .github/workflows/cli-endpoints-online-managed-sample-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n sonlinemanagedsampleendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/managed/sample/endpoint.yml + az ml online-endpoint create -n sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/managed/sample/blue-deployment.yml + az ml online-deployment create -e sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/blue-deployment.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/managed/sample/green-deployment.yml + az ml online-deployment create -e sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/green-deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n sonlinemanagedsampleendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml new file mode 100644 index 00000000000..501af5de975 --- /dev/null +++ b/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-managed-vnet-mlflow-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/managed/vnet/mlflow/** + - infra/** + - .github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n inemanagedvnetmlflowendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/managed/vnet/mlflow/endpoint.yml + az ml online-endpoint create -n inemanagedvnetmlflowendpoint -f endpoints/online/managed/vnet/mlflow/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n inemanagedvnetmlflowendpoint -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml new file mode 100644 index 00000000000..f40734cd18c --- /dev/null +++ b/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml @@ -0,0 +1,63 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-online-managed-vnet-sample-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/online/managed/vnet/sample/** + - infra/** + - .github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n inemanagedvnetsampleendpoint -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + cat endpoints/online/managed/vnet/sample/endpoint.yml + az ml online-endpoint create -n inemanagedvnetsampleendpoint -f endpoints/online/managed/vnet/sample/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/init_environment.sh"; + az ml online-endpoint delete -n inemanagedvnetsampleendpoint -y + working-directory: cli diff --git a/cli/README.md b/cli/README.md index d0dadce6a67..9c6c73b56d3 100644 --- a/cli/README.md +++ b/cli/README.md @@ -212,6 +212,22 @@ path|status|description path|status|description -|-|- +[endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml](endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml)|[![endpoints/batch/deploy-models/custom-outputs-parquet/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml)|A heart condition classifier for batch inference +[endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml](endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml)|[![endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml)|A heart condition classifier for batch inference +[endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml](endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml)|[![endpoints/batch/deploy-models/huggingface-text-summarization/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml)|A batch endpoint for summarizing text using a HuggingFace transformer model. +[endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml](endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml)|[![endpoints/batch/deploy-models/imagenet-classifier/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml)|A batch endpoint for performing image classification using a TFHub model ImageNet model. +[endpoints/batch/deploy-models/mnist-classifier/endpoint.yml](endpoints/batch/deploy-models/mnist-classifier/endpoint.yml)|[![endpoints/batch/deploy-models/mnist-classifier/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml)|A batch endpoint for scoring images from the MNIST dataset. +[endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml](endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml)|[![endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml)|*no description* +[endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml](endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml)|[![endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml)|*no description* +[endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml](endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml)|[![endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml)|*no description* +[endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml](endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml)|[![endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml)|*no description* +[endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml](endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml)|[![endpoints/online/custom-container/r/multimodel-plumber/r-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml)|*no description* +[endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml](endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml)|[![endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml)|*no description* +[endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml](endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml)|[![endpoints/online/custom-container/triton/single-model/triton-cc-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml)|*no description* +[endpoints/online/kubernetes/kubernetes-endpoint.yml](endpoints/online/kubernetes/kubernetes-endpoint.yml)|[![endpoints/online/kubernetes/kubernetes-endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml)|*no description* +[endpoints/online/managed/sample/endpoint.yml](endpoints/online/managed/sample/endpoint.yml)|[![endpoints/online/managed/sample/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-managed-sample-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-managed-sample-endpoint.yml)|*no description* +[endpoints/online/managed/vnet/mlflow/endpoint.yml](endpoints/online/managed/vnet/mlflow/endpoint.yml)|[![endpoints/online/managed/vnet/mlflow/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml)|*no description* +[endpoints/online/managed/vnet/sample/endpoint.yml](endpoints/online/managed/vnet/sample/endpoint.yml)|[![endpoints/online/managed/vnet/sample/endpoint](https://github.com/Azure/azureml-examples/workflows/cli-endpoints-online-managed-vnet-sample-endpoint/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml)|*no description* **Resources** ([resources](resources)) diff --git a/cli/deploy-custom-container-mlflow-multideployment-scikit.sh b/cli/deploy-custom-container-mlflow-multideployment-scikit.sh index ebd5d2c7776..9ba1c7b1154 100644 --- a/cli/deploy-custom-container-mlflow-multideployment-scikit.sh +++ b/cli/deploy-custom-container-mlflow-multideployment-scikit.sh @@ -24,7 +24,7 @@ cp -r $ASSET_PATH/{lightgbm-iris,sklearn-diabetes} $BASE_PATH cp $ASSET_PATH/sample-request-*.json $BASE_PATH cp $PARENT_PATH/mlflow.dockerfile $BASE_PATH/Dockerfile cp $PARENT_PATH/mlflow-endpoint.yml $BASE_PATH/endpoint.yaml -sed -i "s/{{endpoint_name}}/$ENDPOINT_NAME/g;" $BASE_PATH/endpoint.yaml +sed -i "s/{{ENDPOINT_NAME}}/$ENDPOINT_NAME/g;" $BASE_PATH/endpoint.yaml # # Create two deployment yamls, store paths in SKLEARN_DEPLOYMENT and LIGHTGBM_DEPLOYMENT @@ -35,7 +35,7 @@ make_deployment_yaml () { export ${DEPLOYMENT_ENV}="$BASE_PATH/mlflow-deployment-$MODEL_NAME.yaml" cp $PARENT_PATH/mlflow-deployment.yml ${!DEPLOYMENT_ENV} sed -i "s/{{acr_name}}/$ACR_NAME/g;\ - s/{{endpoint_name}}/$ENDPOINT_NAME/g;\ + s/{{ENDPOINT_NAME}}/$ENDPOINT_NAME/g;\ s/{{environment_name}}/mlflow-cc-$MODEL_NAME-env/g;\ s/{{model_name}}/$MODEL_NAME/g;\ s/{{deployment_name}}/$MODEL_NAME/g;" ${!DEPLOYMENT_ENV} diff --git a/cli/deploy-custom-container-triton-single-model.sh b/cli/deploy-custom-container-triton-single-model.sh index eb7b1797a0c..95499599251 100644 --- a/cli/deploy-custom-container-triton-single-model.sh +++ b/cli/deploy-custom-container-triton-single-model.sh @@ -21,8 +21,8 @@ cp -r $ASSET_PATH/models $BASE_PATH cp $PARENT_PATH/triton-cc-deployment.yml $BASE_PATH/deployment.yaml cp $PARENT_PATH/triton-cc-endpoint.yml $BASE_PATH/endpoint.yaml sed -i "s/{{acr_name}}/$ACR_NAME/g;\ - s/{{endpoint_name}}/$ENDPOINT_NAME/g;" $BASE_PATH/deployment.yaml -sed -i "s/{{endpoint_name}}/$ENDPOINT_NAME/g;" $BASE_PATH/endpoint.yaml + s/{{ENDPOINT_NAME}}/$ENDPOINT_NAME/g;" $BASE_PATH/deployment.yaml +sed -i "s/{{ENDPOINT_NAME}}/$ENDPOINT_NAME/g;" $BASE_PATH/endpoint.yaml # # diff --git a/cli/endpoints/batch/deploy-models/custom-outputs-parquet/environment/conda.yml b/cli/endpoints/batch/deploy-models/custom-outputs-parquet/environment/conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/custom-outputs-parquet/environment/conda.yml rename to cli/endpoints/batch/deploy-models/custom-outputs-parquet/environment/conda.yaml diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/environment/conda.yml b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/environment/conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/environment/conda.yml rename to cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/environment/conda.yaml diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deploy-and-run.sh b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deploy-and-run.sh index a23f0b2da5e..dcdea98e876 100644 --- a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deploy-and-run.sh +++ b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deploy-and-run.sh @@ -12,7 +12,7 @@ echo "Download model from HuggingFace" # if [ ! -d model ] then - conda env create -f environment/torch113-conda.yml + conda env create -f environment/torch113-conda.yaml conda activate huggingface-env # fix CI on GHA agents diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml index a10e8375cb4..fc0202a28f7 100644 --- a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml +++ b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml @@ -7,7 +7,7 @@ compute: azureml:gpu-cluster environment: name: torch200-transformers-gpu image: mcr.microsoft.com/azureml/openmpi4.1.0-cuda11.8-cudnn8-ubuntu22.04:latest - conda_file: environment/torch200-conda.yml + conda_file: environment/torch200-conda.yaml code_configuration: code: code scoring_script: batch_driver.py diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yaml similarity index 91% rename from cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yml rename to cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yaml index 25a93240b6d..4ecea056fa7 100644 --- a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yml +++ b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/deployment_torch113.yaml @@ -7,7 +7,7 @@ compute: azureml:gpu-cluster-k80 environment: name: torch113-transformers-gpu image: mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04:latest - conda_file: environment/torch113-conda.yml + conda_file: environment/torch113-conda.yaml code_configuration: code: code scoring_script: batch_driver.py diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-conda.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-conda.yml rename to cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-conda.yaml diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yaml similarity index 85% rename from cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yml rename to cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yaml index 819362fe16d..ef3b7f54337 100644 --- a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yml +++ b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch113-cu101-ubuntu18.yaml @@ -1,4 +1,4 @@ $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: torch113-transformers-gpu image: mcr.microsoft.com/azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04:latest -conda_file: torch113-conda.yml \ No newline at end of file +conda_file: torch113-conda.yaml \ No newline at end of file diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-conda.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-conda.yml rename to cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-conda.yaml diff --git a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yml b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yaml similarity index 85% rename from cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yml rename to cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yaml index c9991cf492d..d6cb1759841 100644 --- a/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yml +++ b/cli/endpoints/batch/deploy-models/huggingface-text-summarization/environment/torch200-cu117-ubuntu20.yaml @@ -1,4 +1,4 @@ $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: torch200-transformers-gpu image: mcr.microsoft.com/azureml/openmpi4.1.0-cuda11.7-cudnn8-ubuntu20.04:latest -conda_file: torch200-conda.yml \ No newline at end of file +conda_file: torch200-conda.yaml \ No newline at end of file diff --git a/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-batch.yml b/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-batch.yml index 100090b88df..66497e375eb 100644 --- a/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-batch.yml +++ b/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-batch.yml @@ -7,7 +7,7 @@ compute: azureml:gpu-cluster environment: name: tensorflow27-cuda11-gpu image: mcr.microsoft.com/azureml/curated/tensorflow-2.7-ubuntu20.04-py38-cuda11-gpu:latest - conda_file: environment/conda.yml + conda_file: environment/conda.yaml code_configuration: code: code/score-by-batch scoring_script: batch_driver.py diff --git a/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-file.yml b/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-file.yml index f14810e9ee9..6b35187ba6d 100644 --- a/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-file.yml +++ b/cli/endpoints/batch/deploy-models/imagenet-classifier/deployment-by-file.yml @@ -7,7 +7,7 @@ compute: azureml:gpu-cluster environment: name: tensorflow27-cuda11-gpu image: mcr.microsoft.com/azureml/curated/tensorflow-2.7-ubuntu20.04-py38-cuda11-gpu:latest - conda_file: environment/conda.yml + conda_file: environment/conda.yaml code_configuration: code: code/score-by-file scoring_script: batch_driver.py diff --git a/cli/endpoints/batch/deploy-models/imagenet-classifier/environment/conda.yml b/cli/endpoints/batch/deploy-models/imagenet-classifier/environment/conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/imagenet-classifier/environment/conda.yml rename to cli/endpoints/batch/deploy-models/imagenet-classifier/environment/conda.yaml diff --git a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/deployment.yml b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/deployment.yml index d0921cd3d65..d401327aa42 100644 --- a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/deployment.yml +++ b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/deployment.yml @@ -11,7 +11,7 @@ code_configuration: environment: name: batch-tensorflow-py38 image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest - conda_file: environment/conda.yml + conda_file: environment/conda.yaml compute: azureml:batch-cluster resources: instance_count: 1 diff --git a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/environment/conda.yml b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/environment/conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/environment/conda.yml rename to cli/endpoints/batch/deploy-models/mnist-classifier/deployment-keras/environment/conda.yaml diff --git a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/deployment.yml b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/deployment.yml index 165d7d6a7ac..c08f150f5db 100644 --- a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/deployment.yml +++ b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/deployment.yml @@ -11,7 +11,7 @@ code_configuration: environment: name: batch-torch-py38 image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest - conda_file: environment/conda.yml + conda_file: environment/conda.yaml compute: azureml:batch-cluster resources: instance_count: 1 diff --git a/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/environment/conda.yml b/cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/environment/conda.yaml similarity index 100% rename from cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/environment/conda.yml rename to cli/endpoints/batch/deploy-models/mnist-classifier/deployment-torch/environment/conda.yaml diff --git a/cli/endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml b/cli/endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml index 80742f53e76..b8a72e5d6d3 100644 --- a/cli/endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml +++ b/cli/endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml @@ -1,3 +1,3 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json -name: {{ENDPOINT_NAME}} +name: "{{ENDPOINT_NAME}}" auth_mode: key diff --git a/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml b/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml index c6be3f9c768..b8a72e5d6d3 100644 --- a/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml +++ b/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml @@ -1,3 +1,3 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json -name: {{endpoint_name}} +name: "{{ENDPOINT_NAME}}" auth_mode: key diff --git a/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile.dockerfile b/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile.dockerfile index 48b207cc984..42b1e47b59d 100644 --- a/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile.dockerfile +++ b/cli/endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile.dockerfile @@ -10,7 +10,7 @@ ENV CONDA_ENV_DIR=/opt/miniconda/envs # or can be added alongside the image in the environment yaml definition for Azure to build # Create a new conda environment and install the same version of the server -COPY ./environment/conda.yml /tmp/conda.yaml +COPY ./environment/conda.yaml /tmp/conda.yaml RUN conda env create -n userenv -f /tmp/conda.yaml && \ export SERVER_VERSION=$(pip show azureml-inference-server-http | grep Version | sed -e 's/.*: //') && \ $CONDA_ENV_DIR/userenv/bin/pip install azureml-inference-server-http==$SERVER_VERSION diff --git a/cli/endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml b/cli/endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml index 80742f53e76..b8a72e5d6d3 100644 --- a/cli/endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml +++ b/cli/endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml @@ -1,3 +1,3 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json -name: {{ENDPOINT_NAME}} +name: "{{ENDPOINT_NAME}}" auth_mode: key diff --git a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-deployment.yml b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-deployment.yml index b3149e4a61c..244edf62ca5 100644 --- a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-deployment.yml +++ b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-deployment.yml @@ -1,6 +1,6 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: {{deployment_name}} -endpoint_name: {{endpoint_name}} +endpoint_name: "{{ENDPOINT_NAME}}" model: name: {{model_name}} path: ./{{model_name}}/model diff --git a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml index c6be3f9c768..b8a72e5d6d3 100644 --- a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml +++ b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml @@ -1,3 +1,3 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json -name: {{endpoint_name}} +name: "{{ENDPOINT_NAME}}" auth_mode: key diff --git a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow.dockerfile b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow.dockerfile index f56dc0973ce..6f1ff7281e8 100644 --- a/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow.dockerfile +++ b/cli/endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow.dockerfile @@ -8,8 +8,8 @@ ARG MLFLOW_MODEL_NAME=model_name ENV CONDA_ENV_DIR=/opt/miniconda/envs # Create a new conda environment and install the same version of the server -COPY $MLFLOW_MODEL_NAME/model/conda.yaml /tmp/conda.yml -RUN conda env create -n userenv -f /tmp/conda.yml && \ +COPY $MLFLOW_MODEL_NAME/model/conda.yaml /tmp/conda.yaml +RUN conda env create -n userenv -f /tmp/conda.yaml && \ export SERVER_VERSION=$(pip show azureml-inference-server-http | grep Version | sed -e 's/.*: //') && \ $CONDA_ENV_DIR/userenv/bin/pip install azureml-inference-server-http==$SERVER_VERSION diff --git a/cli/endpoints/online/custom-container/triton/single-model/triton-cc-deployment.yml b/cli/endpoints/online/custom-container/triton/single-model/triton-cc-deployment.yml index 5513205e90f..57851ab8194 100644 --- a/cli/endpoints/online/custom-container/triton/single-model/triton-cc-deployment.yml +++ b/cli/endpoints/online/custom-container/triton/single-model/triton-cc-deployment.yml @@ -1,6 +1,6 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: triton-cc-deployment -endpoint_name: {{endpoint_name}} +endpoint_name: "{{ENDPOINT_NAME}}" model: path: ./models/model_1 model_mount_path: /models diff --git a/cli/endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml b/cli/endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml index 4cd2332dd6c..0bcc74c81d2 100644 --- a/cli/endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml +++ b/cli/endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml @@ -1,3 +1,3 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json -name: {{endpoint_name}} +name: "{{ENDPOINT_NAME}}" auth_mode: key \ No newline at end of file diff --git a/cli/endpoints/online/kubernetes/kubernetes-blue-deployment.yml b/cli/endpoints/online/kubernetes/kubernetes-blue-deployment.yml index bae6c287779..b3f607dc869 100644 --- a/cli/endpoints/online/kubernetes/kubernetes-blue-deployment.yml +++ b/cli/endpoints/online/kubernetes/kubernetes-blue-deployment.yml @@ -8,7 +8,7 @@ code_configuration: code: ../model-1/onlinescoring/ scoring_script: score.py environment: - conda_file: ../model-1/environment/conda.yml + conda_file: ../model-1/environment/conda.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest request_settings: request_timeout_ms: 3000 diff --git a/cli/endpoints/online/kubernetes/kubernetes-green-deployment.yml b/cli/endpoints/online/kubernetes/kubernetes-green-deployment.yml index 234eac38433..ca5855e3009 100644 --- a/cli/endpoints/online/kubernetes/kubernetes-green-deployment.yml +++ b/cli/endpoints/online/kubernetes/kubernetes-green-deployment.yml @@ -9,7 +9,7 @@ code_configuration: code: ../model-2/onlinescoring/ scoring_script: score.py environment: - conda_file: ../model-2/environment/conda.yml + conda_file: ../model-2/environment/conda.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: defaultinstancetype resources: diff --git a/cli/endpoints/online/managed/managed-identities/2-sai-deployment.yml b/cli/endpoints/online/managed/managed-identities/2-sai-deployment.yml index 472491b3b38..39771a3465a 100644 --- a/cli/endpoints/online/managed/managed-identities/2-sai-deployment.yml +++ b/cli/endpoints/online/managed/managed-identities/2-sai-deployment.yml @@ -6,7 +6,7 @@ code_configuration: code: ../../model-1/onlinescoring/ scoring_script: score_managedidentity.py environment: - conda_file: ../../model-1/environment/conda-managedidentity.yml + conda_file: ../../model-1/environment/conda-managedidentity.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: Standard_DS3_v2 instance_count: 1 diff --git a/cli/endpoints/online/managed/managed-identities/2-uai-deployment.yml b/cli/endpoints/online/managed/managed-identities/2-uai-deployment.yml index 7366138def3..0cde3f7a826 100644 --- a/cli/endpoints/online/managed/managed-identities/2-uai-deployment.yml +++ b/cli/endpoints/online/managed/managed-identities/2-uai-deployment.yml @@ -1,11 +1,12 @@ $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json +name: blue model: path: ../../model-1/model/ code_configuration: code: ../../model-1/onlinescoring/ scoring_script: score_managedidentity.py environment: - conda_file: ../../model-1/environment/conda-managedidentity.yml + conda_file: ../../model-1/environment/conda-managedidentity.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: Standard_DS3_v2 instance_count: 1 diff --git a/cli/endpoints/online/managed/sample/blue-deployment.yml b/cli/endpoints/online/managed/sample/blue-deployment.yml index f01ec3e2f1d..af4486cfff0 100644 --- a/cli/endpoints/online/managed/sample/blue-deployment.yml +++ b/cli/endpoints/online/managed/sample/blue-deployment.yml @@ -7,7 +7,7 @@ code_configuration: code: ../../model-1/onlinescoring/ scoring_script: score.py environment: - conda_file: ../../model-1/environment/conda.yml + conda_file: ../../model-1/environment/conda.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: Standard_DS3_v2 instance_count: 1 diff --git a/cli/endpoints/online/managed/sample/green-deployment.yml b/cli/endpoints/online/managed/sample/green-deployment.yml index d6d0589a5f5..36a25b26715 100644 --- a/cli/endpoints/online/managed/sample/green-deployment.yml +++ b/cli/endpoints/online/managed/sample/green-deployment.yml @@ -7,7 +7,7 @@ code_configuration: code: ../../model-2/onlinescoring/ scoring_script: score.py environment: - conda_file: ../../model-2/environment/conda.yml + conda_file: ../../model-2/environment/conda.yaml image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest instance_type: Standard_DS3_v2 instance_count: 1 diff --git a/cli/endpoints/online/managed/vnet/mlflow/environment/Dockerfile b/cli/endpoints/online/managed/vnet/mlflow/environment/Dockerfile index cce8fff6fc5..d981964235d 100644 --- a/cli/endpoints/online/managed/vnet/mlflow/environment/Dockerfile +++ b/cli/endpoints/online/managed/vnet/mlflow/environment/Dockerfile @@ -1,8 +1,8 @@ # Start from a azure ml mlflow inference base image FROM mcr.microsoft.com/azureml/mlflow-ubuntu18.04-py37-cpu-inference:20220110.v1 -# copy the conda.yml inside the container -COPY conda.yml /tmp/conda.yml +# copy the conda.yaml inside the container +COPY conda.yaml /tmp/conda.yaml # azure ml curated image has dependencies installed in a conda env called amlenv. Lets add our dependencies to the same env. -RUN conda env update -n amlenv --file /tmp/conda.yml \ No newline at end of file +RUN conda env update -n amlenv --file /tmp/conda.yaml \ No newline at end of file diff --git a/cli/endpoints/online/managed/vnet/sample/environment/Dockerfile b/cli/endpoints/online/managed/vnet/sample/environment/Dockerfile index 1da75865859..95799a2dea2 100644 --- a/cli/endpoints/online/managed/vnet/sample/environment/Dockerfile +++ b/cli/endpoints/online/managed/vnet/sample/environment/Dockerfile @@ -1,8 +1,8 @@ # Start from a azure ml inference curated base image FROM mcr.microsoft.com/azureml/minimal-ubuntu20.04-py38-cpu-inference:latest -# copy the conda.yml inside the container -COPY conda.yml /tmp/conda.yml +# copy the conda.yaml inside the container +COPY conda.yaml /tmp/conda.yaml # azure ml curated image has dependencies installed in a conda env called amlenv. Lets add our dependencies to the same env. -RUN conda env update -n amlenv --file /tmp/conda.yml +RUN conda env update -n amlenv --file /tmp/conda.yaml diff --git a/cli/endpoints/online/model-1/environment/conda-managedidentity.yml b/cli/endpoints/online/model-1/environment/conda-managedidentity.yaml similarity index 100% rename from cli/endpoints/online/model-1/environment/conda-managedidentity.yml rename to cli/endpoints/online/model-1/environment/conda-managedidentity.yaml diff --git a/cli/endpoints/online/model-1/environment/conda.yml b/cli/endpoints/online/model-1/environment/conda.yaml similarity index 100% rename from cli/endpoints/online/model-1/environment/conda.yml rename to cli/endpoints/online/model-1/environment/conda.yaml diff --git a/cli/endpoints/online/model-2/environment/conda.yml b/cli/endpoints/online/model-2/environment/conda.yaml similarity index 100% rename from cli/endpoints/online/model-2/environment/conda.yml rename to cli/endpoints/online/model-2/environment/conda.yaml diff --git a/cli/endpoints/online/ncd/sklearn-deployment-with-script.yaml b/cli/endpoints/online/ncd/sklearn-deployment-with-script.yaml index 350f8f5214e..888aed04c57 100644 --- a/cli/endpoints/online/ncd/sklearn-deployment-with-script.yaml +++ b/cli/endpoints/online/ncd/sklearn-deployment-with-script.yaml @@ -8,7 +8,7 @@ model: type: mlflow_model environment: image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04 - conda_file: sklearn-diabetes/environment/conda.yml + conda_file: sklearn-diabetes/environment/conda.yaml code_configuration: code: sklearn-diabetes/src scoring_script: score.py diff --git a/cli/readme.py b/cli/readme.py index 6dfb22d61ba..2e70b2dde55 100644 --- a/cli/readme.py +++ b/cli/readme.py @@ -4,10 +4,27 @@ import glob import argparse import hashlib +import random +import string +import yaml # define constants EXCLUDED_JOBS = ["java", "spark"] -EXCLUDED_ENDPOINTS = ["batch", "online", "amlarc"] +# TODO: Re-include these below endpoints and deployments when the workflow generation code supports substituting vars in .yaml files. +EXCLUDED_ENDPOINTS = [ + "1-uai-create-endpoint", + "1-sai-create-endpoint", + "tfserving-endpoint", +] +EXCLUDED_DEPLOYMENTS = [ + "minimal-multimodel-deployment", + "minimal-single-model-conda-in-dockerfile-deployment", + "mlflow-deployment", + "r-deployment", + "torchserve-deployment", + "triton-cc-deployment", + "2-sai-deployment", +] EXCLUDED_RESOURCES = [ "workspace", "datastore", @@ -88,7 +105,7 @@ def main(args): ] # get list of endpoints - endpoints = sorted(glob.glob("endpoints/**/*.yml", recursive=True)) + endpoints = sorted(glob.glob("endpoints/**/*endpoint.yml", recursive=True)) endpoints = [ endpoint.replace(".yml", "") for endpoint in endpoints @@ -176,7 +193,6 @@ def modify_notebooks(notebooks): # for each notebooks for notebook in notebooks: - # read in notebook with open(notebook, "r") as f: data = json.load(f) @@ -352,8 +368,7 @@ def write_workflows( # process endpoints for endpoint in endpoints: # write workflow file - # write_endpoint_workflow(endpoint) - pass + write_endpoint_workflow(endpoint) # process assest for resource in resources: @@ -547,9 +562,27 @@ def write_job_using_registry_components_workflow(job): def write_endpoint_workflow(endpoint): filename, project_dir, hyphenated = parse_path(endpoint) + deployments = sorted( + glob.glob(project_dir + "/*deployment.yml", recursive=True) + + glob.glob(project_dir + "/*deployment.yaml", recursive=True) + ) + deployments = [ + deployment + for deployment in deployments + if not any(excluded in deployment for excluded in EXCLUDED_DEPLOYMENTS) + ] creds = CREDENTIALS schedule_hour, schedule_minute = get_schedule_time(filename) - workflow_yaml = f"""{READONLY_HEADER} + endpoint_type = ( + "online" + if "endpoints/online/" in endpoint + else "batch" + if "endpoints/batch/" in endpoint + else "unknown" + ) + endpoint_name = hyphenated[-32:].replace("-", "") + + create_endpoint_yaml = f"""{READONLY_HEADER} name: cli-{hyphenated} on: workflow_dispatch: @@ -588,13 +621,45 @@ def write_endpoint_workflow(endpoint): bash setup.sh working-directory: cli continue-on-error: true + - name: delete endpoint if existing + run: | + source "{GITHUB_WORKSPACE}/infra/sdk_helpers.sh"; + source "{GITHUB_WORKSPACE}/infra/init_environment.sh"; + az ml {endpoint_type}-endpoint delete -n {endpoint_name} -y + working-directory: cli + continue-on-error: true - name: create endpoint run: | source "{GITHUB_WORKSPACE}/infra/sdk_helpers.sh"; source "{GITHUB_WORKSPACE}/infra/init_environment.sh"; - az ml endpoint create -f {endpoint}.yml + cat {endpoint}.yml + az ml {endpoint_type}-endpoint create -n {endpoint_name} -f {endpoint}.yml working-directory: cli\n""" + cleanup_yaml = f""" - name: cleanup endpoint + run: | + source "{GITHUB_WORKSPACE}/infra/sdk_helpers.sh"; + source "{GITHUB_WORKSPACE}/infra/init_environment.sh"; + az ml {endpoint_type}-endpoint delete -n {endpoint_name} -y + working-directory: cli\n""" + + workflow_yaml = create_endpoint_yaml + + if (deployments is not None) and (len(deployments) > 0): + for deployment in deployments: + deployment = deployment.replace(".yml", "").replace(".yaml", "") + deployment_yaml = f""" - name: create deployment + run: | + source "{GITHUB_WORKSPACE}/infra/sdk_helpers.sh"; + source "{GITHUB_WORKSPACE}/infra/init_environment.sh"; + cat {deployment}.yml + az ml {endpoint_type}-deployment create -e {endpoint_name} -f {deployment}.yml + working-directory: cli\n""" + + workflow_yaml += deployment_yaml + + workflow_yaml += cleanup_yaml + # write workflow with open(f"../.github/workflows/cli-{hyphenated}.yml", "w") as f: f.write(workflow_yaml) @@ -782,6 +847,13 @@ def get_schedule_time(filename): return schedule_hour, schedule_minute +def get_endpoint_name(filename, hyphenated): + # gets the endpoint name from the .yml file + with open(filename, "r") as f: + endpoint_name = yaml.safe_load(f)["name"] + return endpoint_name + + # run functions if __name__ == "__main__": # setup argparse