Skip to content

[CI][HELM] Use chart-testing to install Helm charts #3412

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

Merged
merged 2 commits into from
Apr 28, 2025

Conversation

ChenYi015
Copy link
Contributor

@ChenYi015 ChenYi015 commented Apr 17, 2025

Why are these changes needed?

Use chart-testing (ct) install command to check whether the Helm charts can be installed successfully.

Related issue number

Close #3413

Checks

  • I've made sure the tests are passing.
  • Testing Strategy
    • Unit tests
    • Manual tests
    • This PR is not tested :(

@ChenYi015 ChenYi015 marked this pull request as draft April 17, 2025 01:10
@ChenYi015 ChenYi015 marked this pull request as ready for review April 18, 2025 01:35
@ChenYi015
Copy link
Contributor Author

@kevin85421 PTAL when you have time.

@kevin85421
Copy link
Member

cc @MortalHappiness would you mind taking a look? Thanks!

Copy link
Member

@MortalHappiness MortalHappiness left a comment

Choose a reason for hiding this comment

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

Generally LGTM. Only a small question.

Comment on lines +96 to +124
- name: Build Docker image (kuberay-operator)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-operator'
run: |
cd ray-operator && make docker-image -e IMG=kuberay/operator:local

- name: Build Docker image (kuberay-apiserver)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver'
run: |
cd apiserver && make docker-image -e IMG=kuberay/apiserver:local

- name: Build Docker image (security-proxy)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver'
run: |
cd experimental && make docker-image -e IMG=kuberay/security-proxy:local

- name: Load image to kind cluster (kuberay-operator)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-operator'
run: |
kind load docker-image kuberay/operator:local

- name: Load image to kind cluster (kuberay-apiserver)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver'
run: |
kind load docker-image kuberay/apiserver:local

- name: Load image to kind cluster (security-proxy)
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver'
run: |
kind load docker-image kuberay/security-proxy:local
Copy link
Member

Choose a reason for hiding this comment

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

Wondering if we want to test local build images or the production image on quay.io. This tool is used to test whether the Helm chart can be installed or not, right? So shouldn't we test the production image repo since most users won't build a KubeRay image themselves?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since this workflow runs on both master and release-* branch, I am afraid that we cannot use the production image for all branches. For example, if there are possible breaking changes on the master branch in the future, it may fail the workflow triggered by release branch.

Copy link
Member

Choose a reason for hiding this comment

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

cc @kevin85421 Do we only want to test production images or local build images? By the way, as far as I know, the CI config for GitHub Actions is branch-specific, meaning each branch relies on the config defined in that branch. So if the config in the master branch is changed, the release branch will not be affected unless we cherry-pick the changes into it.

Copy link
Member

Choose a reason for hiding this comment

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

For per-commit CI tests, we should test the local build images. Testing with the production image is a one-off test and doesn't need to run per-commit. We can add a release test to cover it. Does this make sense to you?

@kevin85421 kevin85421 merged commit cbde878 into ray-project:master Apr 28, 2025
23 checks passed
@ChenYi015 ChenYi015 deleted the chore/helm-lint branch April 28, 2025 16:11
kevin85421 added a commit that referenced this pull request Apr 28, 2025
@ChenYi015 ChenYi015 mentioned this pull request Apr 28, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature][CI] Use chart-testing to install the Helm charts
3 participants