-
Notifications
You must be signed in to change notification settings - Fork 841
feat(ci): add comprehensive Helm integration tests with JobSet dependency fix #2783
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Thank you for your first contribution @ombhojane! 🎉 |
81f7fc6 to
6c7a173
Compare
|
Hey @kramaranya |
|
/ok-to-test |
Pull Request Test Coverage Report for Build 18153337284Details
💛 - Coveralls |
|
hey @andreyvelich |
andreyvelich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/ok-to-test
@ombhojane Can you sign your commits please ?
|
/retest |
andreyvelich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ombhojane!
I left my initial comments.
|
thanks for detailed review, i'm going thru & resolving this |
b0c7f9f to
a6407b7
Compare
Signed-off-by: ombhojane <[email protected]>
…tall commands compatible with Debian image (kubeflow#2528) Signed-off-by: Debabrata47 <[email protected]> Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
Signed-off-by: ombhojane <[email protected]>
a68cbfc to
6fa4375
Compare
|
hey @andreyvelich |
andreyvelich
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/cc @kubeflow/kubeflow-trainer-team @astefanutti
.github/workflows/test-helm.yaml
Outdated
| # Wait for JobSet to be ready | ||
| kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=jobset --timeout=300s -n jobset-system | ||
| - name: Create test values file for chart testing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we leverage the e2e-setup-cluster.sh script to deploy Helm Chart ?
I think, the steps are similar, and we should just deploy it with Helm Charts instead of Kustomize manifests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @andreyvelich this should ideally not be duplicated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
resolved!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
leveraged e2e-setup-cluster-helm.sh
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ombhojane As I can see, you still build and load images as part of your e2e-setup-cluster-helm.sh script.
I suggest that you just add condition here, to whether you want to deploy Kubeflow Trainer with Kustomize or Helm Charts:
trainer/hack/e2e-setup-cluster.sh
Lines 43 to 54 in 5c02086
| echo "Deploy Kubeflow Trainer control plane" | |
| E2E_MANIFESTS_DIR="artifacts/e2e/manifests" | |
| mkdir -p "${E2E_MANIFESTS_DIR}" | |
| cat <<EOF >"${E2E_MANIFESTS_DIR}/kustomization.yaml" | |
| apiVersion: kustomize.config.k8s.io/v1beta1 | |
| kind: Kustomization | |
| resources: | |
| - ../../../manifests/overlays/manager | |
| images: | |
| - name: "${CONTROLLER_MANAGER_CI_IMAGE_NAME}" | |
| newTag: "${CONTROLLER_MANAGER_CI_IMAGE_TAG}" | |
| EOF |
In that case, you don't need to maintain separate script just for Helm deployment.
|
@andreyvelich: GitHub didn't allow me to request PR reviews from the following users: kubeflow/kubeflow-trainer-team. Note that only kubeflow members and repo collaborators can review this PR, and authors cannot review their own PRs. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
.github/workflows/test-helm.yaml
Outdated
| # Wait for JobSet to be ready | ||
| kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=jobset --timeout=300s -n jobset-system | ||
| - name: Create test values file for chart testing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @andreyvelich this should ideally not be duplicated.
|
sure, I'll enhance the flow as suggested |
| - name: Setup cluster and deploy with Helm | ||
| run: | | ||
| make test-e2e-setup-cluster-helm K8S_VERSION=1.32.0 | ||
| - name: Run E2E smoke tests | ||
| run: | | ||
| NAMESPACE="kubeflow-system" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After you modify the e2e setup script you should be able to just run:
- name: Setup cluster
run: |
make test-e2e-setup-cluster K8S_VERSION=${{ matrix.kubernetes-version }} DEPLOYMENT_METHOD=helm
- name: Run e2e with Go
run: |
make test-e2e || (kubectl logs -n kubeflow-system -l app.kubernetes.io/name=trainer && exit 1)
What this PR does / why we need it:
This PR adds comprehensive Helm integration tests to the GitHub Actions workflow to ensure the Kubeflow Trainer Helm chart functions correctly across different environments and configurations.
The implementation includes:
Additionally, this PR fixes a critical issue with the JobSet dependency in
Chart.yamlwhere the OCI registry path was incorrect, preventing successful chart installations.Which issue(s) this PR fixes :
Fixes #2577
Technical Details
Key Changes Made:
oci://registry.k8s.io/jobset/charts/jobsettooci://registry.k8s.io/jobset/chartsct lint-and-install: Addressed review feedback from @andreyvelich to use combined testing approach.github/ct.yamlwith proper timeout and dependency settingsWorkflow Features:
Testing Approach:
This addresses all requirements from issue #2577 and incorporates feedback from the previous PR review process, ensuring the Trainer Helm chart maintains quality and reliability standards.