-
Notifications
You must be signed in to change notification settings - Fork 427
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
Exclude DaemonSets (PEMs) from modification by a Vizier's nodeSelector #1887
Merged
ddelnano
merged 2 commits into
pixie-io:main
from
ddelnano:ddelnano/exclude-pems-for-vizier-node-selectors
May 9, 2024
Merged
Exclude DaemonSets (PEMs) from modification by a Vizier's nodeSelector #1887
ddelnano
merged 2 commits into
pixie-io:main
from
ddelnano:ddelnano/exclude-pems-for-vizier-node-selectors
May 9, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ddelnano
force-pushed
the
ddelnano/exclude-pems-for-vizier-node-selectors
branch
from
May 6, 2024 04:00
b6fab9b
to
3add443
Compare
ddelnano
commented
May 6, 2024
.golangci.yaml
Outdated
- path: .*slices\/sort.go | ||
linters: | ||
- typecheck | ||
text: "^(undefined: (min|max))" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I considered upgrading golangci-lint in this PR. While upgrading fixed this undefined error from typecheck
, there are many other unrelated linting errors introduced by the upgrade. I'll follow up with this upgrade soon.
Here's the original error:
ddelnano@nas-metal-ubuntu22-l1-kvm:~/code/pixie (ddelnano/exclude-pems-for-vizier-node-selectors) $ golangci-lint run '--timeout=5m0s' '--out-format=checkstyle' /home/ddelnano/code/pixie/src/operator/controllers
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="5.0">
<file name="../../../../opt/px_dev/tools/golang/src/slices/sort.go">
<error column="7" line="67" message="undefined: min" severity="error" source="typecheck"></error>
<error column="7" line="97" message="undefined: max" severity="error" source="typecheck"></error>
</file>
</checkstyle>
Signed-off-by: Dom Delnano <ddelnano@gmail.com>
Signed-off-by: Dom Delnano <ddelnano@gmail.com>
ddelnano
force-pushed
the
ddelnano/exclude-pems-for-vizier-node-selectors
branch
from
May 6, 2024 04:07
3add443
to
f581db1
Compare
aimichelle
approved these changes
May 8, 2024
This was referenced May 21, 2024
ddelnano
added a commit
that referenced
this pull request
May 24, 2024
…and operator pods (#1913) Summary: Add node selectors fields in helm chart to control scheduling of OLM and operator pods Previously a helm chart user could only specify the node selectors for the vizier components. This PR allows for applying node selectors to OLM and the operator. This was feedback from @ashutoshrathore after the functionality from #1887 was released. Relevant Issues: #1861 Type of change: /kind feature Test Plan: Tested the following scenarios - [x] Used `helm template` to verify that the manifests are the same if node selectors are not defined ``` $ helm template pixie-operator k8s/operator/helm/ -f k8s/operator/helm/values.yaml --debug > new.yaml install.go:200: [debug] Original chart version: "" install.go:217: [debug] CHART PATH: /home/ddelnano/code/pixie-worktree/k8s/operator/helm # Switch branches to capture templated output from existing helm chart $ git checkout main Switched to branch 'main' Your branch is up to date with 'origin/main'. $ helm template pixie-operator k8s/operator/helm/ -f k8s/operator/helm/values.yaml --debug > old.yaml install.go:200: [debug] Original chart version: "" install.go:217: [debug] CHART PATH: /home/ddelnano/code/pixie-worktree/k8s/operator/helm $ diff old.yaml new.yaml $ ``` - [x] Deployed a local version of the helm chart to a cluster and verified that the node selector values are set properly for pods in the `olm` and `px-operator` namespace - [x] Verified that pods failed to schedule if the pinned host was terminated ``` $ kubectl -n olm get pods NAME READY STATUS RESTARTS AGE catalog-operator-77554fbc46-zjq8m 0/1 Pending 0 2m13s olm-operator-76dc499446-d8qvh 0/1 Pending 0 2m11s $ kubectl -n px-operator get pods NAME READY STATUS RESTARTS AGE vizier-operator-5ff9749c94-98q87 0/1 Pending 0 2m17s ``` Changelog Message: Add support for specifying node selector in the helm chart for OLM and operator pods Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary: Exclude DaemonSets (PEMs) from modification by a Vizier's nodeSelector
This accomplishes part of #1861. The remaining work is to include new additional node selector configuration values that only apply to PEMs -- similar to how
pemMemoryLimit
andpemMemoryRequest
work. From my investigation so far, it appears that adding the PEM specific selectors will require a different implementation (via the vizier yaml templating on the Pixie cloud side) and so I thought staging this in two changes made sense.Relevant Issues: #1861
Type of change: /kind bug
Test Plan: Skaffolded a vizier operator and verified that setting a
kubernetes.io/hostname
node selector no longer prevents PEMs from being scheduled on all nodesChangelog Message: Fixed an issue that caused the
Vizier
CRD to apply node selectors to pods that should be scheduled on all nodes (DaemonSets)