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
Add hubble helm charts to cilium install/kubernetes #10648
Add hubble helm charts to cilium install/kubernetes #10648
Conversation
Please set the appropriate release note label. |
resources: {} | ||
# The priority class system-node-critical marks add-on pods as critical to the node itself. | ||
# This priority class is only valid under the kube-system namespace. | ||
priorityClassName: system-node-critical |
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.
please add the constraint to specify the priorityClassName
based on the k8s version
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.
Can you elaborate on this. I am not sure if I am getting it right.
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 think I added similar to the one from the cilium/daemonset.yaml, to add constraints for k8s version.
Please let me know if this would work.
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.
yes, that exactly.
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.
@soumynathan this does not seem to be addressed
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 will fix this, I am working on other values to be realigned.
install/kubernetes/cilium/charts/hubble/templates/serviceaccount.yaml
Outdated
Show resolved
Hide resolved
1e11bbb
to
c72fc09
Compare
test-me-please |
test failure doesn't seem to relate to the patch. |
Following the Ginkgo link from the box at the bottom of the issue: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/18092/ The tests that fail, fail on both k8s-1.11 and k8s-1.17 which suggests that the failure is reliable, not a flake. Following one of the test links from the bottom of the page:
This seems related to the PR. Sidenote: The Travis failure looks like #10615 which should be fixed on master, so should be resolved after rebase. |
c72fc09
to
7c2112d
Compare
test-me-please EDIT: Provisioning failure: |
test-me-please |
This is the change (hubble/values.yaml) that is causing the test to fail. ( NOT sure what is wrong with this) - Any thoughts
|
7c2112d
to
f105b80
Compare
test-me-please |
1 similar comment
test-me-please |
@soumynathan Thanks a lot for this PR! I am however a bit wary of the implications the duplicated helm chart causes with regards to user experience and code maintenance
I think we have to make a call which repository ( I personally have no strong opinion in which repository the charts should live. I can see arguments for both: |
f105b80
to
51607de
Compare
Echoing what @gandro already wrote. Given that we have merged Hubble into Cilium. It makes more sense to integrate the Hubble helm charts directly into the Cilium Helm charts to allow enablement of Hubble via a single Helm option as it runs as part of Cilium. |
@gandro the helm charts could still live in |
So a few of the developers working on Hubble discussed this PR offline a bit last week. Our conclusion (as @tgraf already mentioned) was that since we are sunsetting the Hubble "stand-alone mode" in favor of "embedded-mode" (PR #10238), we don't want the Hubble DaemonSet (the "stand-alone" mode) in the Cilium 1.8+ branch. Therefore it doesn't make much sense to me to add the additional maintenance burden of having to sync the Helm charts. So going forward, the idea is that the helm charts in the Stand-alone mode will continue to be available for users of Cilium 1.6 and 1.7, however it doesn't make sense to have these helm charts in the Cilium 1.8+ branch. |
resources: {} | ||
# The priority class system-node-critical marks add-on pods as critical to the node itself. | ||
# This priority class is only valid under the kube-system namespace. | ||
priorityClassName: system-node-critical |
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.
@soumynathan this does not seem to be addressed
apiVersion: apps/v1 | ||
kind: DaemonSet | ||
metadata: | ||
name: hubble | ||
namespace: {{ .Release.Namespace }} |
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.
As mentioned in #10648 (comment) we are deprecating this DaemonSet as of Cilium 1.8. Could you remove the hubble
DaemonSet and all related values instead make sure the chart works with embedded Hubble? The config map for embedded Hubble is here (based on #10794):
I think most of the work for the Hubble server itself is already done. The CRI metadata is not implemented in embedded Hubble, so that these values can be removed. I think the biggest change is extending the hubble-listen-addresses
in the ConfigMap to add a listener on port 50051 when .Values.ui.enabled
is true
, similar to how this DaemonSet currently does it.
Please do not hesitate to reach out to either me other other folks in #hubble-devel
on Slack if you have questions or need some help or pointers. Thanks!
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.
Sure will address your comments and will contact you for any questions.
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.
What do you think. Should I continue with this PR or drop it?
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.
It's up to you. We do want to have the UI and other components part of the Helm chart eventually, so adapting this PR does make sense. Feel free to ping me privately if you need assistance!
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.
It's up to you. We do want to have the UI and other components part of the Helm chart eventually, so adapting this PR does make sense. Feel free to ping me privately if you need assistance!
Sure will check with you.
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.
It's up to you. We do want to have the UI and other components part of the Helm chart eventually, so adapting this PR does make sense. Feel free to ping me privately if you need assistance!
@gandro So in this case do you want me to completely remove the daemonset.yaml and incorporate the changes in the config/templates/configmap.yaml or want to create a configmap.yaml in hubble/templates/configmap,yaml and configure everything there. Can you confirm.
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.
@gandro So in this case do you want me to completely remove the daemonset.yaml and incorporate the changes in the config/templates/configmap.yaml or want to create a configmap.yaml in hubble/templates/configmap,yaml and configure everything there. Can you confirm.
Kind of. So the way I imagine this is that there is not seperate hubble
chart anymore, so hubble/templates/configmap,yaml
should not exist. The only new chart should be the one for hubble-ui
. hubble
itself now lives inside cilium-agent. Therefore, all Hubble related values are set in config/templates/configmap.yaml
.
I think the version you pushed now seems to already do that 🎉 I will do a more in depth review soon!
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 just noticed that you also need to update the requirements.yaml to include the hubble-ui chart.
- containerPort: {{ regexReplaceAll ":([0-9]+)$" .Values.global.hubble.metricsServer "${1}" }} | ||
hostPort: {{ regexReplaceAll ":([0-9]+)$" .Values.global.hubble.metricsServer "${1}" }} |
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'm not sure if this should be addressed here or in a follow up. For consistency across hubble and cilium, the user should specify the metrics server in the same way it configures it for Cilium. --set global.hubble.metricsServer
is setting IP and port. In Cilium there's a flag dedicated for the address and another dedicated for port. cc @gandro
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 agree, but let's do that in a follow-up.
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.
So we will address this in the follow-up
install/kubernetes/cilium/charts/hubble-ui/templates/deployment.yaml
Outdated
Show resolved
Hide resolved
install/kubernetes/cilium/charts/hubble-ui/templates/clusterrolebinding.yaml
Outdated
Show resolved
Hide resolved
install/kubernetes/cilium/charts/hubble-ui/templates/serviceaccount.yaml
Outdated
Show resolved
Hide resolved
0f8c877
to
462b610
Compare
@soumynathan Can you please add the |
462b610
to
10cbec3
Compare
Done. |
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.
Thanks @soumynathan - only two small changes requested.
10cbec3
to
ad879b8
Compare
This patch adds hubble related helm charts to cilium install/kubernetes Fixes: cilium#10647 Signed-off-by: Swaminathan Vasudevan <svasudevan@suse.com>
ad879b8
to
ef7360c
Compare
test-me-please |
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.
Looking good! 🎉
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.
LGTM. I've added comments for a few points that need to be addressed in a follow-up PR once hubble-relay is included in the charts.
{{- end }} | ||
{{ if and .Values.global.hubble.ui.enabled (not (has "0.0.0.0:50051" .Values.global.hubble.listenAddresses)) }} | ||
# A space separated list of additional addresses for Hubble server to listen to. | ||
hubble-listen-addresses: {{ append .Values.global.hubble.listenAddresses "0.0.0.0:50051" | join " " | quote }} |
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.
Note to self: port 50051
will not work with hubble-relay. This needs to be addressed once hubble-relay is included in the charts.
cc @michi-covalent (as I think you're already working on the charts for hubble-relay).
k8s-app: hubble-ui | ||
ports: | ||
- name: http | ||
port: 12000 |
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 think we want port 80/443 for hubble-ui but this can be addressed in a follow-up PR (cc @geakstr @michi-covalent)
This PR adds a new helm chart for Hubble Relay deployment/service. A few things to note: - Each Hubble Relay pod must be scheduled on a node with Cilium running. Hubble Relay connects to the hubble unix domain socket to retrive peer information. - For now the readiness/liveness probes simply checks if the gRPC port is open since Hubble Relay doesn't have the status command yet. Closes: #11226 Ref: #11192 #10648 Signed-off-by: Michi Mutsuzaki <michi@isovalent.com>
This PR adds a new helm chart for Hubble Relay deployment/service. A few things to note: - Each Hubble Relay pod must be scheduled on a node with Cilium running. Hubble Relay connects to the hubble unix domain socket to retrive peer information. - For now the readiness/liveness probes simply checks if the gRPC port is open since Hubble Relay doesn't have the status command yet. Closes: #11226 Ref: #11192 #10648 Signed-off-by: Michi Mutsuzaki <michi@isovalent.com>
This PR adds a new helm chart for Hubble Relay deployment/service. A few things to note: - Each Hubble Relay pod must be scheduled on a node with Cilium running. Hubble Relay connects to the hubble unix domain socket to retrive peer information. - For now the readiness/liveness probes simply checks if the gRPC port is open since Hubble Relay doesn't have the status command yet. Closes: #11226 Ref: #11192 #10648 Signed-off-by: Michi Mutsuzaki <michi@isovalent.com>
Add hubble helm charts to cilium install/kubernetes
Fixes: #10647
Signed-off-by: Swaminathan Vasudevan svasudevan@suse.com