Skip to content
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

feat: enable additional scheduling options for wasmCloud host pods #9

Merged
merged 1 commit into from
Apr 1, 2024

Conversation

protochron
Copy link
Contributor

Feature or Problem

This refactors the WasmCloudHostConfig CRD so that it has a single field (schedulingOptions) for configuring how the underlying Pods are scheduled in Kubernetes. This includes:

  • Relocating the daemonset option to this new field
  • Relocating the resources option to this new field
  • Adding a new pod_template_additions field that allows you to set any valid option in a PodSpec

Doing so allows cluster operators to do things like set node affinity and node selector rules, along with any other valid PodSpec option. The only thing that cannot be done is adding additional containers to the pod, since that is all handled by the controller. We could look at exposing that option if users want to be able to add additional sidecars.

Related Issues

Release Information

next

Consumer Impact

Testing

Tested locally in kind by setting daemonset: true and adding a node selector, both of which correctly changed the configuration of the underlying pods.

Unit Test(s)

Acceptance or Integration

Manual Verification

Copy link

github-actions bot commented Mar 31, 2024

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails

Scanned Manifest Files

sample.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

@thomastaylor312 thomastaylor312 left a comment

Choose a reason for hiding this comment

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

All nits, but we do need the fix in the example that @joonas called out

src/controller.rs Outdated Show resolved Hide resolved
src/controller.rs Outdated Show resolved Hide resolved
src/controller.rs Outdated Show resolved Hide resolved
This refactors the WasmCloudHostConfig CRD so that it has a single field
(`schedulingOptions`) for configuring how the underlying Pods are
scheduled in Kubernetes. This includes:
* Relocating the `daemonset` option to this new field
* Relocating the `resources` option to this new field
* Adding a new `pod_template_additions` field that allows you to set any
  valid option in a `PodSpec`

Doing so allows cluster operators to do things like set node affinity
and node selector rules, along with any other valid PodSpec option. The
only thing that cannot be done is adding additional containers to the
pod, since that is all handled by the controller. We could look at
exposing that option if users want to be able to add additional
sidecars.

Signed-off-by: Dan Norris <protochron@users.noreply.github.com>
@protochron
Copy link
Contributor Author

@thomastaylor312 all fixed. PTAL

@protochron protochron merged commit 58a9799 into main Apr 1, 2024
5 checks passed
@protochron protochron deleted the node_affinity branch April 1, 2024 18:33
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.

3 participants