Skip to content

Commit 6968090

Browse files
Merge pull request #302 from nsingla/rb_upstream2
chore: Rebase upstream
2 parents 2a9cf72 + 6333c3b commit 6968090

972 files changed

Lines changed: 1280972 additions & 144708 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/deploy/action.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,17 @@ runs:
128128
run: ./.github/resources/squid/deploy-squid.sh
129129

130130
- name: Download Docker Images
131-
uses: actions/download-artifact@v6
131+
uses: actions/download-artifact@v7
132132
if: ${{ inputs.skip_load_docker_images != 'true' }}
133133
with:
134-
path: "${{ inputs.image_path }}"
134+
path: "images_${{ github.run_id }}"
135+
pattern: "!*.dockerbuild"
135136

136137
- name: Load Docker Images
137138
shell: bash
138139
if: ${{ inputs.skip_load_docker_images != 'true' }}
139140
run: |
140-
APPS=("apiserver" "driver" "launcher" "scheduledworkflow" "persistenceagent" "frontend" "metadata-writer" "viewer-crd-controller" "visualization-server" "cache-deployer" "cache-server" "metadata-envoy")
141+
APPS=("apiserver" "driver" "launcher" "scheduledworkflow" "persistenceagent" "frontend" "metadata-writer" "viewer-crd-controller" "visualization-server" "cache-deployer" "cache-server" "metadata-envoy" )
141142
for app in "${APPS[@]}"; do
142143
docker image load -i ${{ inputs.image_path }}/$app/$app.tar
143144
docker tag ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }} localhost:5000/$app:${{ inputs.image_tag }}

.github/actions/deploy/infra_deployer.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,23 @@ def deploy_cert_manager(self):
6262
resource_type=ResourceType.DEPLOYMENT)
6363
raise RuntimeError('Cert-manager deployment failed')
6464

65+
# Wait for the cert-manager webhook to be ready to accept requests
66+
print('⏳ Waiting for cert-manager webhook to be ready...')
67+
webhook_ready = self.deployment_manager.wait_for_resource(
68+
resource_type=ResourceType.DEPLOYMENT,
69+
resource_name='cert-manager-webhook',
70+
namespace=cert_manager_namespace,
71+
condition=WaitCondition.AVAILABLE,
72+
timeout='120s',
73+
description='cert-manager-webhook deployment')
74+
75+
if not webhook_ready:
76+
self.deployment_manager.debug_deployment_failure(
77+
namespace=cert_manager_namespace,
78+
deployment_name='cert-manager-webhook',
79+
resource_type=ResourceType.DEPLOYMENT)
80+
raise RuntimeError('Cert-manager webhook deployment failed')
81+
6582
print('✅ Cert-manager deployed successfully')
6683

6784
def apply_webhooks(self):

.github/actions/deploy/tls_manager.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import os
1616
import subprocess
1717
import tempfile
18+
import time
1819
from typing import Any, Dict, List
1920

2021
import yaml
@@ -89,8 +90,22 @@ def _create_service_ca_issuer(self):
8990
selfSigned: {}
9091
"""
9192

92-
self._apply_yaml_content(issuer_yaml, 'service-ca-issuer')
93-
print('✅ Service CA issuer created successfully')
93+
# Retry applying the ClusterIssuer because the cert-manager webhook
94+
# may not be serving yet even after the pod is Ready.
95+
max_retries = 12
96+
for attempt in range(1, max_retries + 1):
97+
try:
98+
self._apply_yaml_content(issuer_yaml, 'service-ca-issuer')
99+
print('✅ Service CA issuer created successfully')
100+
break
101+
except Exception:
102+
if attempt == max_retries:
103+
raise
104+
print(
105+
f'⏳ cert-manager webhook not ready yet, retrying in 10s '
106+
f'(attempt {attempt}/{max_retries})...'
107+
)
108+
time.sleep(10)
94109

95110
def _create_service_ca_certificate(self):
96111
"""Create the root service CA certificate."""

.github/actions/test-and-report/action.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,10 @@ runs:
243243
API_SCHEME='http'
244244
CA_CERT_PATH='' # Force empty when TLS is disabled
245245
fi
246+
pipelineStoreKubernetes='false'
247+
if [ "$PIPELINE_STORE" == "kubernetes" ]; then
248+
pipelineStoreKubernetes='true'
249+
fi
246250
PULL_NUMBER="${{ github.event.inputs.pull_number || github.event.pull_request.number }}"
247251
REPO_NAME="${{ github.repository }}"
248252
API_URL="${{ steps.configure-api.outputs.API_URL }}"
@@ -260,7 +264,7 @@ runs:
260264
DISABLE_TLS_CHECK='false'
261265
fi
262266
263-
go run github.com/onsi/ginkgo/v2/ginkgo -r -v --cover -p --keep-going --github-output=true --nodes=${{ inputs.num_parallel_nodes }} --label-filter=${{ inputs.test_label }} --silence-skips=true -- -namespace=${{ inputs.default_namespace }} -multiUserMode=$MULTI_USER -useProxy=$USE_PROXY -userNamespace=${{ inputs.user_namespace }} -uploadPipelinesWithKubernetes=${{ inputs.upload_pipelines_with_kubernetes_client}} -disableTlsCheck=$DISABLE_TLS_CHECK -apiScheme=$API_SCHEME -tlsEnabled=$TLS_ENABLED -caCertPath=$CA_CERT_PATH -pullNumber=$PULL_NUMBER -repoName=$REPO_NAME -apiUrl="$API_URL" -authToken="$AUTH_TOKEN" -serviceAccountName="$SERVICE_ACCOUNT_NAME" $BASE_IMAGE_FLAG
267+
go run github.com/onsi/ginkgo/v2/ginkgo -r -v --cover -p --keep-going --github-output=true --nodes=${{ inputs.num_parallel_nodes }} --label-filter=${{ inputs.test_label }} --silence-skips=true -- -namespace=${{ inputs.default_namespace }} -multiUserMode=$MULTI_USER -useProxy=$USE_PROXY -userNamespace=${{ inputs.user_namespace }} -uploadPipelinesWithKubernetes=${{ inputs.upload_pipelines_with_kubernetes_client}} -pipelineStoreKubernetes=$pipelineStoreKubernetes -disableTlsCheck=$DISABLE_TLS_CHECK -apiScheme=$API_SCHEME -tlsEnabled=$TLS_ENABLED -caCertPath=$CA_CERT_PATH -pullNumber=$PULL_NUMBER -repoName=$REPO_NAME -apiUrl="$API_URL" -authToken="$AUTH_TOKEN" -serviceAccountName="$SERVICE_ACCOUNT_NAME" $BASE_IMAGE_FLAG
264268
continue-on-error: true
265269

266270
- name: Collect Pod logs in case of Test Failures
@@ -310,7 +314,7 @@ runs:
310314
311315
- name: Upload HTML Report
312316
id: upload
313-
uses: actions/upload-artifact@v4
317+
uses: actions/upload-artifact@v7
314318
if: (!cancelled()) && steps.generate-html-report.outcome == 'success'
315319
with:
316320
name: ${{ steps.name_gen.outputs.REPORT_NAME }}

.github/resources/manifests/multiuser/artifact-proxy/kustomization.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ images:
3838
newTag: latest
3939

4040
patches:
41+
- path: ../pipeline-crd-rbac.yaml
42+
target:
43+
kind: ClusterRole
44+
name: ml-pipeline
4145
- path: ../../base/apiserver-env.yaml
4246
target:
4347
kind: Deployment

.github/resources/manifests/multiuser/cache-disabled/kustomization.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ images:
3838
newTag: latest
3939

4040
patches:
41+
- path: ../pipeline-crd-rbac.yaml
42+
target:
43+
kind: ClusterRole
44+
name: ml-pipeline
4145
- path: ../../base/apiserver-env.yaml
4246
target:
4347
kind: Deployment

.github/resources/manifests/multiuser/default/kustomization.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ images:
3838
newTag: latest
3939

4040
patches:
41+
- path: ../pipeline-crd-rbac.yaml
42+
target:
43+
kind: ClusterRole
44+
name: ml-pipeline
4145
- path: ../../base/apiserver-env.yaml
4246
target:
4347
kind: Deployment
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
- op: add
2+
path: "/rules/-"
3+
value:
4+
verbs:
5+
- create
6+
- get
7+
- list
8+
- watch
9+
- update
10+
- patch
11+
- delete
12+
apiGroups:
13+
- pipelines.kubeflow.org
14+
resources:
15+
- pipelines
16+
- pipelines/finalizers
17+
- op: add
18+
path: "/rules/-"
19+
value:
20+
verbs:
21+
- create
22+
- get
23+
- list
24+
- watch
25+
- update
26+
- patch
27+
- delete
28+
apiGroups:
29+
- pipelines.kubeflow.org
30+
resources:
31+
- pipelineversions
32+
- pipelineversions/status
33+
- pipelineversions/finalizers

.github/workflows/add-ci-passed-label.yml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,34 @@ jobs:
2626
event_action: ${{ steps.extract.outputs.event_action }}
2727
steps:
2828
- name: 'Download artifact'
29-
uses: actions/github-script@v3.1.0
29+
uses: actions/github-script@v8
3030
with:
3131
script: |
32-
var artifacts = await github.actions.listWorkflowRunArtifacts({
32+
const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
3333
owner: context.repo.owner,
3434
repo: context.repo.repo,
3535
run_id: ${{github.event.workflow_run.id}},
3636
});
37-
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
38-
return artifact.name == "pr"
39-
})[0];
40-
var download = await github.actions.downloadArtifact({
37+
const matchArtifact = artifacts.data.artifacts.find((artifact) => {
38+
return artifact.name === "pr";
39+
});
40+
41+
if (!matchArtifact) {
42+
throw new Error(
43+
`Required artifact "pr" was not found for workflow run ID ${{github.event.workflow_run.id}}. ` +
44+
"It may have expired or failed to upload. Ensure the CI workflow uploads a 'pr' artifact."
45+
);
46+
}
47+
48+
const download = await github.rest.actions.downloadArtifact({
4149
owner: context.repo.owner,
4250
repo: context.repo.repo,
4351
artifact_id: matchArtifact.id,
4452
archive_format: 'zip',
4553
});
46-
var fs = require('fs');
54+
const fs = require('fs');
4755
fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data));
48-
56+
4957
- name: Unzip artifact
5058
run: unzip pr.zip
5159

.github/workflows/api-server-tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989

9090
steps:
9191
- name: Checkout code
92-
uses: actions/checkout@v4
92+
uses: actions/checkout@v6
9393

9494
- name: Create cluster
9595
uses: ./.github/actions/create-cluster
@@ -187,7 +187,7 @@ jobs:
187187

188188
steps:
189189
- name: Checkout code
190-
uses: actions/checkout@v4
190+
uses: actions/checkout@v6
191191

192192
- name: Create cluster
193193
uses: ./.github/actions/create-cluster
@@ -243,7 +243,7 @@ jobs:
243243

244244
steps:
245245
- name: Checkout code
246-
uses: actions/checkout@v4
246+
uses: actions/checkout@v6
247247

248248
- name: Create cluster
249249
uses: ./.github/actions/create-cluster

0 commit comments

Comments
 (0)