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

[Feature Request]: add option to set custom nodeSelector values for helm deployment #1315

Open
Anntey opened this issue Feb 7, 2024 · 0 comments

Comments

@Anntey
Copy link

Anntey commented Feb 7, 2024

Description

If you are deploying to kubernetes and have existing cluster with existing node pools, you might want to

  • A. Use pre-existing node_pool_x and assign all featureform pods to that with nodeSelector: label=node_pool_label

OR

  • B. Create new exclusive node_pool_featureform and assign all featureform pods to that pool rather than them getting randomly assigned to pre-existing node pools along with the new one.

Current Behavior

It is possible to set value for helm for nodeSelector but it isnt utilised for all services

https://github.com/search?q=repo%3Afeatureform%2Ffeatureform%20nodeselector&type=code

If I'm lacking on kube/helm knowledge and there is currently a way to set it explicitly, please advice me.

Desired Behavior

All individual services' charts utilise the value nodeSelector that is set for helm deployment

Benefits

You might not have the option to create a new kube cluster but also have existing node pools that are configured elsewhere, and you wouldn't want to use in you featureform deployment. Being able to explicitly assign pods to a node pool would help.

Possible Implementation

Add

{{- with .Values.nodeSelector }}
nodeSelector:
    {{- toYaml . | nindent 8 }}
{{- end }}

to all services' yamls

then in terraform of you deployment

resource "google_container_node_pool" "featureform_nodes" {
  ...
  node_config {
    ...
    labels = {
      env = "featureform"
    }
  }
}

resource "helm_release" "helm_featureform" {
  ...
  set {
    name = "nodeSelector.env"
    value = "featureform"
  }
}

Additional Context

Also, if it isn't obvious, in a corporate setting you can't use the featureform/terraform configurations but you have to adapt it bc you already have a VPC, kube cluster, DNS etc.

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

1 participant