Skip to content
This repository was archived by the owner on Jun 20, 2026. It is now read-only.

Add support for local simulator for Apple Silicon deployment in KIND in Helmfile configuration#225

Open
petecheslock wants to merge 2 commits into
llm-d-incubation:mainfrom
petecheslock:feat/add-kind-local-dev-apple-silicon
Open

Add support for local simulator for Apple Silicon deployment in KIND in Helmfile configuration#225
petecheslock wants to merge 2 commits into
llm-d-incubation:mainfrom
petecheslock:feat/add-kind-local-dev-apple-silicon

Conversation

@petecheslock

Copy link
Copy Markdown
Contributor

This fixes #42

  • Introduced a new environment 'apple-silicon' in helmfile.yaml with specific values for local deployment.
  • Updated model service version from v0.2.7 to v0.2.9.
  • Added README instructions for deploying on Apple Silicon, including prerequisites and ARM64 image requirements.
  • Created override files for GAIE and model service specific to Apple Silicon.
  • Enhanced existing values.yaml to accommodate new configurations for probes and resource management.

Based on the #42 issue, does this follow an example (albeit for apple silicon only) a local simulator deployment on KIND. In particular I'm using Podman here.

I was trying to avoid making any major changes to the helm files and instead wanted to pass overrides via the CLI on deployment so i could just have an updated README, but I ran into a few issues with that strategy:

When you use --set parameters or --state-values-file with helmfile, those overrides get applied globally to every single release in the helmfile, not just the one i'm targeting. So when I tried to override the ARM64 routing image, it was trying to pass those routing.* values to the infrastructure chart too, which has a strict schema that doesn't allow additional properties like routing.

I initially hoped the --selector with --state-values-file would fix this by targeting just the model service release, but even that approach had the same global behavior - the values still leaked to other releases and caused schema validation failures.

What actually worked was adding a new environment called apple-silicon to the helmfile template itself. This environment uses conditional logic ({{- if eq .Environment.Name "apple-silicon" }}) to include the ARM64 override files only for the specific releases that need them. So when you run helmfile apply -e apple-silicon, the gaie release gets its ARM64 EPP image overrides, the model service gets its ARM64 routing sidecar overrides, and the infrastructure release gets nothing extra.

I would appreciate any feedback if this is useful to the project.

- Introduced a new environment 'apple-silicon' in helmfile.yaml with specific values for local deployment.
- Updated model service version from v0.2.7 to v0.2.9.
- Added README instructions for deploying on Apple Silicon, including prerequisites and ARM64 image requirements.
- Created override files for GAIE and model service specific to Apple Silicon.
- Enhanced existing values.yaml to accommodate new configurations for probes and resource management.

Signed-off-by: Pete Cheslock <pete.cheslock@redhat.com>
@petecheslock

Copy link
Copy Markdown
Contributor Author

Although now with #244 maybe this PR needs to go against the llm-d repo instead?

Signed-off-by: Pete Cheslock <pete.cheslock@redhat.com>
@github-actions

Copy link
Copy Markdown

This PR is marked as stale after 21d of inactivity. After an additional 14d of inactivity (7d to become rotten, then 7d more), it will be closed. To prevent this PR from being closed, add a comment or remove the lifecycle/stale label.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a Kind deployment developer focused example

1 participant