"vscode:/vscode.git/clone" did not exist on "204d10d5e4388aca62e3fdc4797bc615ff3be703"
Unverified Commit 65433f43 authored by Ran Rubin's avatar Ran Rubin Committed by GitHub
Browse files

ci: fix k8s fallback builder bootstrap (#8346)


Signed-off-by: default avatarrrubin <rrubin@nvidia.com>
Signed-off-by: default avatarRan Rubin <ranrubin@gmail.com>
parent 0aa1c1bb
...@@ -59,8 +59,8 @@ inputs: ...@@ -59,8 +59,8 @@ inputs:
description: 'Skip the bootstrap step (only create the builder)' description: 'Skip the bootstrap step (only create the builder)'
required: false required: false
default: 'false' default: 'false'
fresh_builder: suppress_fallback_warning:
description: 'Force creation of a new K8s builder even if one already exists. Used by the create-fresh-builder preliminary job.' description: 'Suppress the fallback pod warning when intentionally using the Kubernetes driver'
required: false required: false
default: 'false' default: 'false'
...@@ -87,13 +87,7 @@ runs: ...@@ -87,13 +87,7 @@ runs:
if: inputs.buildkit_worker_addresses == '' if: inputs.buildkit_worker_addresses == ''
shell: bash shell: bash
run: | run: |
if [[ "${{ inputs.fresh_builder }}" != "true" ]] && docker buildx inspect ${{ inputs.builder_name }} > /dev/null 2>&1; then # If the builder already exists, these commands will just set the right configurations to use it
echo "✅ Builder '${{ inputs.builder_name }}' already exists. Skipping creation."
else
if [[ "${{ inputs.fresh_builder }}" == "true" ]] && docker buildx inspect ${{ inputs.builder_name }} > /dev/null 2>&1; then
echo "🔄 Forcing fresh K8s builder: removing existing '${{ inputs.builder_name }}'."
docker buildx rm ${{ inputs.builder_name }} || true
fi
echo "🔨 Creating K8s builder '${{ inputs.builder_name }}'." echo "🔨 Creating K8s builder '${{ inputs.builder_name }}'."
docker buildx create --use --name ${{ inputs.builder_name }} --driver kubernetes --platform=linux/amd64 \ docker buildx create --use --name ${{ inputs.builder_name }} --driver kubernetes --platform=linux/amd64 \
'--driver-opt=requests.ephemeral-storage=${{ inputs.ephemeral_storage }}' \ '--driver-opt=requests.ephemeral-storage=${{ inputs.ephemeral_storage }}' \
...@@ -116,17 +110,18 @@ runs: ...@@ -116,17 +110,18 @@ runs:
'--driver-opt=limits.memory=${{ inputs.limits_memory }}' \ '--driver-opt=limits.memory=${{ inputs.limits_memory }}' \
'--driver-opt="nodeselector=kubernetes.io/arch=arm64,role=dynamo-builder-fallback"' \ '--driver-opt="nodeselector=kubernetes.io/arch=arm64,role=dynamo-builder-fallback"' \
'--driver-opt="tolerations=${{ inputs.tolerations }}"' '--driver-opt="tolerations=${{ inputs.tolerations }}"'
fi
sleep 3 # Give the builders some time to be ready sleep 3 # Give the builders some time to be ready
if [[ "${{ inputs.skip_bootstrap }}" != "true" && "${{ inputs.fresh_builder }}" != "true" ]]; then if [[ "${{ inputs.suppress_fallback_warning }}" != "true" ]]; then
echo "::warning::Build is using fallback pod. Please alert the ops team." echo "::warning::Build is using fallback pod"
echo "## ⚠️ Fallback Build Warning" >> $GITHUB_STEP_SUMMARY echo "## ⚠️ Fallback Build Warning" >> $GITHUB_STEP_SUMMARY
echo "This build is running on a **fallback pod**. Please alert the ops team." >> $GITHUB_STEP_SUMMARY echo "This build is using the **fallback pod** because the preferred remote builders are unavailable. Expected during nightly runs and outside business hours." >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY
fi fi
- name: Bootstrap buildkit - name: Bootstrap buildkit
if: inputs.skip_bootstrap != 'true' if: inputs.skip_bootstrap != 'true'
shell: bash shell: bash
......
...@@ -143,8 +143,7 @@ runs: ...@@ -143,8 +143,7 @@ runs:
uses: ./.github/actions/bootstrap-buildkit uses: ./.github/actions/bootstrap-buildkit
with: with:
builder_name: ${{ inputs.builder_name }} builder_name: ${{ inputs.builder_name }}
buildkit_worker_addresses: ${{ steps.prepare.outputs.worker_addresses }} buildkit_worker_addresses: ${{ inputs.fresh_builder != 'true' && steps.prepare.outputs.worker_addresses || '' }}
fresh_builder: ${{ inputs.fresh_builder }}
ephemeral_storage: ${{ inputs.ephemeral_storage }} ephemeral_storage: ${{ inputs.ephemeral_storage }}
namespace: ${{ inputs.namespace }} namespace: ${{ inputs.namespace }}
replicas: ${{ inputs.replicas }} replicas: ${{ inputs.replicas }}
...@@ -152,4 +151,4 @@ runs: ...@@ -152,4 +151,4 @@ runs:
requests_memory: ${{ inputs.requests_memory }} requests_memory: ${{ inputs.requests_memory }}
limits_memory: ${{ inputs.limits_memory }} limits_memory: ${{ inputs.limits_memory }}
tolerations: ${{ inputs.tolerations }} tolerations: ${{ inputs.tolerations }}
suppress_fallback_warning: ${{ inputs.fresh_builder }}
\ No newline at end of file
...@@ -102,7 +102,7 @@ jobs: ...@@ -102,7 +102,7 @@ jobs:
- name: Build EPP Image - name: Build EPP Image
id: build-epp-image id: build-epp-image
shell: bash shell: bash
timeout-minutes: 20 timeout-minutes: 30
run: | run: |
set -x set -x
EPP_REPOSITORY="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_REPOSITORY }}/dynamo-epp" EPP_REPOSITORY="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_REPOSITORY }}/dynamo-epp"
......
...@@ -39,8 +39,7 @@ jobs: ...@@ -39,8 +39,7 @@ jobs:
with: with:
builder_name: ${{ steps.export-builder-name.outputs.builder_name }} builder_name: ${{ steps.export-builder-name.outputs.builder_name }}
buildkit_worker_addresses: '' buildkit_worker_addresses: ''
fresh_builder: 'true' suppress_fallback_warning: 'true'
# ============================================================================ # ============================================================================
# FRAMEWORK PIPELINES (Build → Test → Copy) # FRAMEWORK PIPELINES (Build → Test → Copy)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment