spinframework / spinframework/spin-operator

Support specifying node affinity for executors that create K8s Deployments

Open
#460 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
289
Forks
34
PR merge metrics
No merged PRs in 30d

Description

The SpinApp CRD supports Pod and Deployment annotations; however there is currently no way to declare node affinity for scheduling SpinApps.

Concern arose from Discord question:

Hey, i was curious as to handle things like pod affinity, priority classes, tolerations and schedulers 🙂
Some of the pods have for example the requirement to be ran on specific nodes, due to region based data laws. However I also would like these nodes to be seen as opportunistic, so that when they have no dedicated task, any pod can use them

One concern around specifically adding NodeAffinity to the SpinApp CRD is that it is specific to executors that create Deployments, but there are already several fields like this.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the SpinApp CRD and the executors that create Kubernetes Deployments. Review how existing Pod and Deployment annotations are represented, then determine how node affinity should be exposed without coupling it to executors that do not create Deployments. Done means the API design is agreed and node-affinity scheduling works for supported SpinApps with appropriate validation and tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.