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

Support Node Affinity and Tolerations for EnvoyProxy Pods #1396

Closed
Gentoli opened this issue May 4, 2023 · 2 comments · Fixed by #1398
Closed

Support Node Affinity and Tolerations for EnvoyProxy Pods #1396

Gentoli opened this issue May 4, 2023 · 2 comments · Fixed by #1398
Assignees
Labels
area/api API-related issues area/infra-mgr Issues related to the provisioner used for provisioning the managed Envoy Proxy fleet. kind/enhancement New feature or request

Comments

@Gentoli
Copy link

Gentoli commented May 4, 2023

Description:

I am trying to run a set of proxy on a restricted node pool. The pod needs affinity and tolerations set to be correctly scheduled.

I would assume it would look something like this:

apiVersion: config.gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: router-public
  namespace: envoy-gateway-system
spec:
  provider:
    type: Kubernetes
    kubernetes:
      envoyDeployment:
        replicas: 2
        pod:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                  - matchExpressions:
                      - key: cloud.google.com/gke-nodepool
                        operator: In
                        values:
                          - router-node
          tolerations:
            - effect: NoSchedule
              key: node-type
              operator: Exists
              value: "router"

Where affinity and tolerations are propagated to the pod spec in the deployment.

In general, would it be better to allow any fields under spec.provider.pod but exclude anything eg controls? i.e. A user can add anything there and the will be merged to the deployment, but certain fields (such as containers, initContainer) will not be allowed.

Relevant Links:

@Gentoli Gentoli added the kind/enhancement New feature or request label May 4, 2023
@qicz qicz self-assigned this May 4, 2023
@qicz
Copy link
Member

qicz commented May 4, 2023

I will support this ASSP

@arkodg arkodg added area/api API-related issues area/infra-mgr Issues related to the provisioner used for provisioning the managed Envoy Proxy fleet. labels May 4, 2023
@arkodg
Copy link
Contributor

arkodg commented May 4, 2023

In general, would it be better to allow any fields under spec.provider.pod but exclude anything eg controls? i.e. A user can add anything there and the will be merged to the deployment, but certain fields (such as containers, initContainer) will not be allowed.

@Gentoli this is tricky from an API language/documentation perspective because the contract between the user and Envoy Gateway is not strict and compatibility cannot be guarantied in the future, if we pursue the merging approach

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api API-related issues area/infra-mgr Issues related to the provisioner used for provisioning the managed Envoy Proxy fleet. kind/enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants