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

There should be nothing that uses a node selector/affinity that is not easily configurable at deploy time #507

Closed
ns-rlewkowicz opened this issue Sep 19, 2023 · 4 comments

Comments

@ns-rlewkowicz
Copy link

ns-rlewkowicz commented Sep 19, 2023

This is an interesting project. I wonder what the reasoning was behind the need for an aggressive reconciliation loop over a slew of well established deployment models and tools.

It worked great in a dev env, trying to incorporate this into an existing environment has been a nightmare.

This fixes config daemon:

apiVersion: sriovnetwork.openshift.io/v1
kind: SriovOperatorConfig
metadata:
  annotations:
  name: default
  namespace: sriov-network-operator
spec:
  configDaemonNodeSelector:
    node-role.kubernetes.io/worker": "true"
  enableInjector: true
  enableOperatorWebhook: true
  logLevel: 2

But even this is awkward. It doesn't seem to cycle the pods automatically after application.

Then the other DS won't launch. There's a bunch of hard coded node labels.

@ns-rlewkowicz ns-rlewkowicz changed the title There should be nothing that uses a node selector that is not easily configurable There should be nothing that uses a node selector/affinity that is not easily configurable at deploy time Sep 19, 2023
@ns-rlewkowicz
Copy link
Author

If you're here because of label pains, a breakfix for now.

grep -Rl requiredDuringSchedulingIgnoredDuringExecution | grep yaml$
grep -Rl worker: | grep yaml$

You want everything in bindata. Blow all labels and affinites out or modify them to your needs.

make your image:
make image

I don't feel like dissecting their vars, just retag it.

docker tag ghcr.io/k8snetworkplumbingwg/sriov-network-operator:latest yourtag:version

Push your image where ever. Then export and deploy.

export SRIOV_NETWORK_OPERATOR_IMAGE=yourtag:version
make deploy-setup-k8s

@zeeke
Copy link
Member

zeeke commented Sep 25, 2023

Hi @ns-rlewkowicz ,

NodeSelector fields of the daemonsets are updated in sriovoperatorconfig_controller.go:

ds.Spec.Template.Spec.NodeSelector = dc.Spec.ConfigDaemonNodeSelector

ds.Spec.Template.Spec.NodeSelector = dc.Spec.ConfigDaemonNodeSelector

Can you be more specific about the problem you are having with your deploy?

@SchSeba
Copy link
Collaborator

SchSeba commented Dec 21, 2023

Hi @ns-rlewkowicz any update base on the comment from @zeeke ?

@ns-rlewkowicz
Copy link
Author

I think this is just a docs gap. It leads with this make system and I'm just a goof I suppose. I can grep around and modify stuff without issue so I thought that was just my life with this product.

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

No branches or pull requests

3 participants