-
Notifications
You must be signed in to change notification settings - Fork 466
Feat: Add AIBrix Helm chart CI #1370
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
Conversation
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
cc @Jeffwan |
.github/workflows/chart-ci.yml
Outdated
- name: Install kubectl | ||
uses: azure/setup-kubectl@v4 | ||
|
||
- name: Install dependencies # TODO: use main dependency and not release one |
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.
Open to suggestions on how to install the dependency from the head branch
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 updated the latest installation guidance, please take a look https://aibrix.readthedocs.io/latest/getting_started/installation/installation.html#stable-version-using-helm
Could you take a look?
Option 1, install kustomization dependency
We need to install nightly
dependencies, PR author may touch those files as well
Option 2: install helm
Install envoy-gateway helm from their remote chart repository.
I think option 2 is the preferred way and we do not need to maintain dependency manifest in future. What do you think?
one more comment, beside the installation testing, we can do some basic checks firstly. like helm lint dist/chart
etc to early fail the test
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.
Yeah. option 2 seems better to me too. I'll adjust and add lint check
To check this out run the following: kind create cluster
cd aibrix/dist/chart
kubectl create -f https://github.com/vllm-project/aibrix/releases/download/v0.3.0/aibrix-dependency-v0.3.0.yaml
kubectl create ns aibrix-system
ct install --chart-dirs . --charts . --namespace aibrix-system Make sure you install the chart testing framework brew install chart-testing |
Also tested using https://github.com/nektos/act?tab=readme-ov-file namespace/aibrix-system created
| Installing charts...
| Version increment checking disabled.
|
| ------------------------------------------------------------------------------------------------------------------------
| Charts to be processed:
| ------------------------------------------------------------------------------------------------------------------------
| aibrix => (version: "0.3.0", path: ".")
| ------------------------------------------------------------------------------------------------------------------------
|
| Installing chart "aibrix => (version: \"0.3.0\", path: \".\")"...
| NAME: aibrix-f0lw5gujjd
| LAST DEPLOYED: Fri Aug 1 13:18:34 2025
| NAMESPACE: aibrix-system
| STATUS: deployed
| REVISION: 1
| TEST SUITE: None
| NAME: aibrix-f0lw5gujjd
| LAST DEPLOYED: Fri Aug 1 13:18:34 2025
| NAMESPACE: aibrix-system
| STATUS: deployed
| REVISION: 1
| TEST SUITE: None
| ========================================================================================================================
| ........................................................................................................................
| ==> Events of namespace aibrix-system
| ........................................................................................................................
| LAST SEEN TYPE REASON OBJECT SUBOBJECT SOURCE MESSAGE FIRST SEEN COUNT NAME
| 92s Normal SuccessfulCreate replicaset/aibrix-redis-master-5d5dc77b replicaset-controller Created pod: aibrix-redis-master-5d5dc77b-xp6wl 92s 1 aibrix-redis-master-5d5dc77b.1857a71bccf666ab
| 92s Normal SuccessfulCreate replicaset/aibrix-gpu-optimizer-f49dd764d replicaset-controller Created pod: aibrix-gpu-optimizer-f49dd764d-k9sv4 92s 1 aibrix-gpu-optimizer-f49dd764d.1857a71bccf7f36c
| 92s Normal ScalingReplicaSet deployment/aibrix-metadata-service deployment-controller Scaled up replica set aibrix-metadata-service-84dbb54b9d from 0 to 1 92s 1 aibrix-metadata-service.1857a71bc40ea106
| 92s Normal Scheduled pod/aibrix-redis-master-5d5dc77b-xp6wl default-scheduler Successfully assigned aibrix-system/aibrix-redis-master-5d5dc77b-xp6wl to chart-testing-control-plane 92s 1 aibrix-redis-master-5d5dc77b-xp6wl.1857a71bd931507a
| 92s Normal SuccessfulCreate replicaset/aibrix-metadata-service-84dbb54b9d replicaset-controller Created pod: aibrix-metadata-service-84dbb54b9d-lcmb8 92s 1 aibrix-metadata-service-84dbb54b9d.1857a71bcceeff2d
| 92s Normal ScalingReplicaSet deployment/aibrix-redis-master deployment-controller Scaled up replica set aibrix-redis-master-5d5dc77b from 0 to 1 92s 1 aibrix-redis-master.1857a71bc40ff4fc
| 92s Normal SuccessfulCreate replicaset/aibrix-controller-manager-76697d65d4 replicaset-controller Created pod: aibrix-controller-manager-76697d65d4-5bdxn 92s 1 aibrix-controller-manager-76697d65d4.1857a71bccf4af73
| 92s Normal SuccessfulCreate replicaset/aibrix-gateway-plugins-98f4ddf8b replicaset-controller Created pod: aibrix-gateway-plugins-98f4ddf8b-z6qlg 92s 1 aibrix-gateway-plugins-98f4ddf8b.1857a71bccf2e094
| 92s Normal ScalingReplicaSet deployment/aibrix-gateway-plugins deployment-controller Scaled up replica set aibrix-gateway-plugins-98f4ddf8b from 0 to 1 92s 1 aibrix-gateway-plugins.1857a71bc40652e5
| 92s Normal Scheduled pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg default-scheduler Successfully assigned aibrix-system/aibrix-gateway-plugins-98f4ddf8b-z6qlg to chart-testing-control-plane 92s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71bd92b4e69
| 92s Normal ScalingReplicaSet deployment/aibrix-controller-manager deployment-controller Scaled up replica set aibrix-controller-manager-76697d65d4 from 0 to 1 92s 1 aibrix-controller-manager.1857a71bc40c3cfd
| 92s Normal Scheduled pod/aibrix-metadata-service-84dbb54b9d-lcmb8 default-scheduler Successfully assigned aibrix-system/aibrix-metadata-service-84dbb54b9d-lcmb8 to chart-testing-control-plane 92s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71bd9306ec7
| 92s Normal ScalingReplicaSet deployment/aibrix-gpu-optimizer deployment-controller Scaled up replica set aibrix-gpu-optimizer-f49dd764d from 0 to 1 92s 1 aibrix-gpu-optimizer.1857a71bc40d0b02
| 92s Normal Scheduled pod/aibrix-controller-manager-76697d65d4-5bdxn default-scheduler Successfully assigned aibrix-system/aibrix-controller-manager-76697d65d4-5bdxn to chart-testing-control-plane 92s 1 aibrix-controller-manager-76697d65d4-5bdxn.1857a71bd92fcc9b
| 92s Normal Scheduled pod/aibrix-gpu-optimizer-f49dd764d-k9sv4 default-scheduler Successfully assigned aibrix-system/aibrix-gpu-optimizer-f49dd764d-k9sv4 to chart-testing-control-plane 92s 1 aibrix-gpu-optimizer-f49dd764d-k9sv4.1857a71bd930e467
| 91s Normal Pulling pod/aibrix-redis-master-5d5dc77b-xp6wl spec.containers{master} kubelet, chart-testing-control-plane Pulling image "redis:7.4" 91s 1 aibrix-redis-master-5d5dc77b-xp6wl.1857a71c155f99e9
| 91s Normal Pulling pod/aibrix-controller-manager-76697d65d4-5bdxn spec.containers{manager} kubelet, chart-testing-control-plane Pulling image "aibrix/controller-manager:nightly" 91s 1 aibrix-controller-manager-76697d65d4-5bdxn.1857a71c13773b9b
| 91s Normal Pulling pod/aibrix-gpu-optimizer-f49dd764d-k9sv4 spec.containers{gpu-optimizer} kubelet, chart-testing-control-plane Pulling image "aibrix/runtime:nightly" 91s 1 aibrix-gpu-optimizer-f49dd764d-k9sv4.1857a71c15700669
| 91s Normal Pulling pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.initContainers{init-c} kubelet, chart-testing-control-plane Pulling image "busybox:stable" 91s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71c154e39a2
| 91s Normal Pulling pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.initContainers{init-c} kubelet, chart-testing-control-plane Pulling image "busybox:stable" 91s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71c15161fa7
| 89s Normal LeaderElection lease/aibrix-controller-manager aibrix-controller-manager-76697d65d4-5bdxn_3336893e-fc48-4c34-897e-00dd118a1b73 aibrix-controller-manager-76697d65d4-5bdxn_3336893e-fc48-4c34-897e-00dd118a1b73 became leader 89s 1 aibrix-controller-manager.1857a71c89828972
| 89s Normal Created pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.initContainers{init-c} kubelet, chart-testing-control-plane Created container: init-c 89s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71c7e38216a
| 89s Normal Pulled pod/aibrix-controller-manager-76697d65d4-5bdxn spec.containers{manager} kubelet, chart-testing-control-plane Successfully pulled image "aibrix/controller-manager:nightly" in 1.262s (1.262s including waiting). Image size: 33425040 bytes. 89s 1 aibrix-controller-manager-76697d65d4-5bdxn.1857a71c5ebe7e7c
| 89s Normal Created pod/aibrix-controller-manager-76697d65d4-5bdxn spec.containers{manager} kubelet, chart-testing-control-plane Created container: manager 89s 1 aibrix-controller-manager-76697d65d4-5bdxn.1857a71c5f7555f6
| 89s Normal Started pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.initContainers{init-c} kubelet, chart-testing-control-plane Started container init-c 89s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71c841a9bab
| 89s Normal Pulled pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.initContainers{init-c} kubelet, chart-testing-control-plane Successfully pulled image "busybox:stable" in 516ms (1.752s including waiting). Image size: 1852331 bytes. 89s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71c7d85169a
| 89s Normal Created pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.initContainers{init-c} kubelet, chart-testing-control-plane Created container: init-c 89s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71c87b4cbfa
| 89s Normal Pulled pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.initContainers{init-c} kubelet, chart-testing-control-plane Successfully pulled image "busybox:stable" in 124ms (1.873s including waiting). Image size: 1852331 bytes. 89s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71c84f365ae
| 89s Normal Started pod/aibrix-controller-manager-76697d65d4-5bdxn spec.containers{manager} kubelet, chart-testing-control-plane Started container manager 89s 1 aibrix-controller-manager-76697d65d4-5bdxn.1857a71c68cb9b6e
| 88s Normal Started pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.initContainers{init-c} kubelet, chart-testing-control-plane Started container init-c 88s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71c92810759
| 87s Normal Created pod/aibrix-redis-master-5d5dc77b-xp6wl spec.containers{master} kubelet, chart-testing-control-plane Created container: master 87s 1 aibrix-redis-master-5d5dc77b-xp6wl.1857a71cf44f13b7
| 87s Normal Pulled pod/aibrix-redis-master-5d5dc77b-xp6wl spec.containers{master} kubelet, chart-testing-control-plane Successfully pulled image "redis:7.4" in 1.852s (3.724s including waiting). Image size: 44810850 bytes. 87s 1 aibrix-redis-master-5d5dc77b-xp6wl.1857a71cf35f0d37
| 87s Normal Started pod/aibrix-redis-master-5d5dc77b-xp6wl spec.containers{master} kubelet, chart-testing-control-plane Started container master 87s 1 aibrix-redis-master-5d5dc77b-xp6wl.1857a71cfefcb16b
| 82s Normal Pulling pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.containers{gateway-plugin} kubelet, chart-testing-control-plane Pulling image "aibrix/gateway-plugins:nightly" 82s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a71e22312f66
| 82s Normal Pulling pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.containers{metadata-service} kubelet, chart-testing-control-plane Pulling image "aibrix/metadata-service:nightly" 82s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a71e224891e7
| 74s Normal Pulled pod/aibrix-gpu-optimizer-f49dd764d-k9sv4 spec.containers{gpu-optimizer} kubelet, chart-testing-control-plane Successfully pulled image "aibrix/runtime:nightly" in 12.772s (16.495s including waiting). Image size: 302384463 bytes. 74s 1 aibrix-gpu-optimizer-f49dd764d-k9sv4.1857a71feca75490
| 74s Normal Started pod/aibrix-gpu-optimizer-f49dd764d-k9sv4 spec.containers{gpu-optimizer} kubelet, chart-testing-control-plane Started container gpu-optimizer 74s 1 aibrix-gpu-optimizer-f49dd764d-k9sv4.1857a71ff8811f08
| 74s Normal Created pod/aibrix-gpu-optimizer-f49dd764d-k9sv4 spec.containers{gpu-optimizer} kubelet, chart-testing-control-plane Created container: gpu-optimizer 74s 1 aibrix-gpu-optimizer-f49dd764d-k9sv4.1857a71fede90770
| 71s Normal Started pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.containers{gateway-plugin} kubelet, chart-testing-control-plane Started container gateway-plugin 71s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a720ab834dbf
| 71s Normal Created pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.containers{gateway-plugin} kubelet, chart-testing-control-plane Created container: gateway-plugin 71s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a720a24214a6
| 71s Normal Pulled pod/aibrix-gateway-plugins-98f4ddf8b-z6qlg spec.containers{gateway-plugin} kubelet, chart-testing-control-plane Successfully pulled image "aibrix/gateway-plugins:nightly" in 1.155s (10.726s including waiting). Image size: 34210861 bytes. 71s 1 aibrix-gateway-plugins-98f4ddf8b-z6qlg.1857a720a1896528
| 70s Normal Started pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.containers{metadata-service} kubelet, chart-testing-control-plane Started container metadata-service 70s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a720f8789815
| 70s Normal Created pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.containers{metadata-service} kubelet, chart-testing-control-plane Created container: metadata-service 70s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a720ed1b28f5
| 70s Normal Pulled pod/aibrix-metadata-service-84dbb54b9d-lcmb8 spec.containers{metadata-service} kubelet, chart-testing-control-plane Successfully pulled image "aibrix/metadata-service:nightly" in 1.256s (11.981s including waiting). Image size: 31790639 bytes. 70s 1 aibrix-metadata-service-84dbb54b9d-lcmb8.1857a720ec68c79f
| 12s Warning Unhealthy pod/aibrix-controller-manager-76697d65d4-5bdxn spec.containers{manager} kubelet, chart-testing-control-plane Readiness probe failed: HTTP probe failed with statuscode: 500 78s 8 aibrix-controller-manager-76697d65d4-5bdxn.1857a71f0ebce07e
| ........................................................................................................................
| <== Events of namespace aibrix-system
| ........................................................................................................................
| ========================================================================================================================
| Deleting release "aibrix-f0lw5gujjd"...
| release "aibrix-f0lw5gujjd" uninstalled
|
| ------------------------------------------------------------------------------------------------------------------------
| ✔︎ aibrix => (version: "0.3.0", path: ".")
| ------------------------------------------------------------------------------------------------------------------------
| All charts installed successfully
[Test Helm Chart/test] ✅ Success - Main Chart test [1m39.698913859s]
[Test Helm Chart/test] ⭐ Run Post Create kind cluster
[Test Helm Chart/test] 🐳 docker exec cmd=[/opt/acttoolcache/node/18.20.8/arm64/bin/node /var/run/act/actions/[email protected]/cleanup.js] user= workdir=
| Error response from daemon: No such container: kind-registry
| Deleting cluster "chart-testing" ...
| Deleted nodes: ["chart-testing-control-plane"]
[Test Helm Chart/test] ✅ Success - Post Create kind cluster [3.10663869s]
[Test Helm Chart/test] ⭐ Run Post Set up chart-testing
[Test Helm Chart/test] 🐳 docker cp src=/home/ec2-user/.cache/act/[email protected]/ dst=/var/run/act/actions/[email protected]/
[Test Helm Chart/test] ⭐ Run Post sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da
[Test Helm Chart/test] 🐳 docker cp src=/home/ec2-user/.cache/act/sigstore-cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da/ dst=/var/run/act/actions/sigstore-cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da/
[Test Helm Chart/test] ✅ Success - Post sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da [48.419325ms]
[Test Helm Chart/test] ✅ Success - Post Set up chart-testing [116.397559ms]
[Test Helm Chart/test] ⭐ Run Post actions/[email protected]
[Test Helm Chart/test] 🐳 docker exec cmd=[/opt/acttoolcache/node/18.20.8/arm64/bin/node /var/run/act/actions/[email protected]/dist/cache-save/index.js] user= workdir=
[Test Helm Chart/test] ✅ Success - Post actions/[email protected] [321.558706ms]
[Test Helm Chart/test] ⭐ Run Complete job
[Test Helm Chart/test] Cleaning up container for job test
[Test Helm Chart/test] ✅ Success - Complete job
[Test Helm Chart/test] 🏁 Job succeeded |
Signed-off-by: Omer Aplatony <[email protected]>
Signed-off-by: Omer Aplatony <[email protected]>
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.
looks good. this is great! We can safely promote helm now
Pull Request Description
As mentioned in this comment, we need to add CI for the Helm chart. We can use the chart-testing-action for this purpose.
This action will deploy the entire aibrix-system and verify that all pods are healthy. I tested it locally (outside of GitHub Actions), and it works as expected.
Related Issues
Resolves: #[Insert issue number(s)]
Important: Before submitting, please complete the description above and review the checklist below.
Contribution Guidelines (Expand for Details)
We appreciate your contribution to aibrix! To ensure a smooth review process and maintain high code quality, please adhere to the following guidelines:
Pull Request Title Format
Your PR title should start with one of these prefixes to indicate the nature of the change:
[Bug]
: Corrections to existing functionality[CI]
: Changes to build process or CI pipeline[Docs]
: Updates or additions to documentation[API]
: Modifications to aibrix's API or interface[CLI]
: Changes or additions to the Command Line Interface[Misc]
: For changes not covered above (use sparingly)Note: For changes spanning multiple categories, use multiple prefixes in order of importance.
Submission Checklist
By submitting this PR, you confirm that you've read these guidelines and your changes align with the project's contribution standards.