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

Helm/Operator deployment - Add nodeSelector for Controller components #20240

Closed
gustavoromerobenitez opened this issue Aug 3, 2021 · 4 comments
Labels
kind/enhancement A feature request - must adhere to the feature request template. severity/P2 Has a minor but important impact to the usage or development of the system. status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering.

Comments

@gustavoromerobenitez
Copy link

gustavoromerobenitez commented Aug 3, 2021

Is your enhancement related to a problem? Please describe.

Currently it is possible to provide a Che property value to configure the K8s node pool where the workspaces will run, but I could not find a way to define the node pool for the controller components in the Helm and Operator deployment strategies.

I have not tried chectl, but I could not find a Che property for the above purpose so I assumed it would not be possible either.

Describe the solution you'd like

Add a Che property to configure the K8s Node group where the Controller components will run, to allow both controller and workspaces to run on non-default node groups in a shared K8s cluster

Describe alternatives you've considered

For now, I have followed this approach (snippet below):

  • Edited the manifests of all the controller components I needed (server, dashboard, keycloak, postgres, devfile-registry, plugin-registry)
  • Added the nodeSelector entry under specs
  • Added new properties in values.yaml to define the nodeSelector label. In this case it is a label called workload which values were either che-controllers or che-workspaces)
spec:
  template:
    spec:
      nodeSelector:
        workload: {{ .Values.global.controllerNodeSelector }}

With the above approach, I have managed to deploy the controller components and workspaces in two different non-default K8s (GKE) node pools.

Additional context

Che 7.33.2
GKE
Multi-User mode

@gustavoromerobenitez gustavoromerobenitez added the kind/enhancement A feature request - must adhere to the feature request template. label Aug 3, 2021
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Aug 3, 2021
@xbaran4 xbaran4 added area/che-server severity/P2 Has a minor but important impact to the usage or development of the system. and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Aug 3, 2021
@skabashnyuk
Copy link
Contributor

@gustavoromerobenitez can you please clarify what do you mean by " Controller components" ?
Are you talking about this https://www.eclipse.org/che/docs/che-7/installation-guide/configuring-workspaces-nodeselector/ ?

@skabashnyuk skabashnyuk added the status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering. label Aug 17, 2021
@gustavo-benitez-ctr
Copy link

@skabashnyuk No, I'm referring to the Che Server, Dashboard, Plugin registry, Keycloak, Devfile Registry and Postgres components that form the Che Controller.

When I deployed the Helm charts in GKE for the first time, those components were always deployed to the default Node Pool. It should be possible to specify a nodeSelector for each on of those Deployments.

Adding a nodeSelector to each deployment.yaml file, allowed me to deploy them to a specific Node Pool in GKE.

Let me know if you need any additional clarification. Thank you.

@skabashnyuk
Copy link
Contributor

CC @tolusha looks like related to deployment. wdyt?

@skabashnyuk
Copy link
Contributor

Fixed for operator eclipse-che/che-operator#1301

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A feature request - must adhere to the feature request template. severity/P2 Has a minor but important impact to the usage or development of the system. status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering.
Projects
None yet
Development

No branches or pull requests

5 participants