Description
Bug description
The nodeSelector configuration is applied to pixie-chart, but it seems to be ignored
Version of Helm and Kubernetes
Helm 3, Kubernetes 1.20
Which chart?
pixie-chart from nri-bundle chart
What happened?
I have configured nodeSelector on pixie-chart, but the NODE SELECTOR
for the vizier-pem DaemonSet is none:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/newrelic-nrk8s-controlplane 0 0 0 0 0 <none> 84m
daemonset.apps/newrelic-nrk8s-kubelet 4 4 4 4 4 <none> 84m
daemonset.apps/vizier-pem 4 4 4 4 4 <none> 20h
If I configure using the global nodeSelector option of nri-bundle chart it works:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/newrelic-nrk8s-controlplane 0 0 0 0 0 pixie=allowed 143m
daemonset.apps/newrelic-nrk8s-kubelet 0 0 0 0 0 pixie=allowed 143m
daemonset.apps/vizier-pem 4 4 4 4 4 <none> 21h
What you expected to happen?
Run vizier-pem DaemonSet only in a set of nodes using nodeSelector
How to reproduce it?
Add the label pixie=allowed to a node, then install the helm chart:
helm install:
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
--namespace=newrelic \
--set prometheus.enabled=true \
--set newrelic-pixie.enabled=true \
--set newrelic-pixie.apiKey=API_KEY \
--set pixie-chart.enabled=true \
--set pixie-chart.deployKey=DEPLOY_KEY \
--set pixie-chart.pathces.vizier-pem=
I also tried to use the approach from this doc:
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
--namespace=newrelic \
--set prometheus.enabled=true \
--set newrelic-pixie.enabled=true \
--set newrelic-pixie.apiKey=API_KEY \
--set pixie-chart.enabled=true \
--set pixie-chart.deployKey=DEPLOY_KEY \
--set pixie-chart.patches.vizier-pem='\{\"spec\"\: \{\"template\"\: \{\"spec\"\: \{ \"nodeSelector\"\: \{\"pixie\"\: \"allowed\" \}\}\}\}\}'
Anything else we need to know?
I used terraform to apply those helm configurations, follows the relevant part of code:
resource "helm_release" "newrelic" {
name = "newrelic"
repository = "https://helm-charts.newrelic.com"
chart = "nri-bundle"
namespace = "newrelic"
create_namespace = true
version = "4.8.7"
timeout = 900
set {
name = "pixie-chart.enabled"
value = true
}
set {
name = "newrelic-pixie.enabled"
value = true
}
set {
name = "pixie-chart.nodeSelector.pixie"
value = "allowed"
}
# set {
# name = "pixie-chart.patches.vizier-pem"
# value = "'{\"spec\": {\"template\": {\"spec\": {\"nodeSelector\": {\"pixie\": \"allowed\" }}}}}'"
# }
}
The latest px-dev-viziers.yaml
and olm-crd.yaml
CRDs are also applied.
Values from helm, after terraform apply:
helm --namespace newrelic get values newrelic
pixie-chart:
enabled: true
nodeSelector:
pixie: allowed
Or this, when using the patch model:
pixie-chart:
enabled: true
patches:
vizier-pem: '''{"spec": {"template": {"spec": {"nodeSelector": {"pixie": "allowed"
}}}}}'''