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

Kubernetes toleration for FIO #111

Open
mmotejlek opened this issue Jul 18, 2022 · 1 comment
Open

Kubernetes toleration for FIO #111

mmotejlek opened this issue Jul 18, 2022 · 1 comment

Comments

@mmotejlek
Copy link
Contributor

mmotejlek commented Jul 18, 2022

Kubestr currently does not allow scheduling FIO benchmark pods on nodes with taints.

I've come up with several ways that could be achieved:

  • Ignore all taints (changes current behaviour)
  • Have a flag to ignore all taints
  • Have a flag for toleration expressions (but only implement an expression for universal toleration for now)

For the last option, I suggest a syntax based off kubectl's taint expression:

key[=value][:effect]|:effect

However, it needs a way to specify a universal toleration. I came up with these possibilities:

  • : – An empty effect in the syntax above would mean "any". This is in line with the fact that "" specifies any effect in the definition of Toleration.
  • :Any – This mimics an actual effect name (effect names use an uppercase starting letter and are case sensitive), but this also means it could clash with an actual "Any" effect (I find this unlikely to be added though).
  • :any – Using a lowercase starting letter to denote a special symbol
  • ::Any – Extra : to denote a special symbol

Or maybe these is an established solution that I'm not aware of.

I'm not sure which way would be preferred. To me, toleration :/toleration=: seems to be the cleanest and most future-proof solution.

@ihcsim @smasset-orange

@ihcsim
Copy link
Contributor

ihcsim commented Jul 21, 2022

I prefer to not over-complicate the CLI UX. It's better to not have to deal with the different permutations of taint/toleration behaviour using a CLI.

One other way to tackle this is to update kubestr fio to accept a pod override template (-T) flag. E.g.,

cat<<EOF | kubestr fio -T -
tolerations:
- key: "example-key"
  operator: "Exists"
  effect: "NoSchedule"
EOF

This offers the most flexibility to configure the pod. But I am not sure if it's desirable to let user modify container images, and security context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants