From 8bf9b82e91fc54b0ccb49736c1cf73d9be0dd003 Mon Sep 17 00:00:00 2001 From: Jiaqi Luo <6218999+jiaqiluo@users.noreply.github.com> Date: Tue, 8 Jun 2021 18:25:02 -0700 Subject: [PATCH 1/4] Update rancher-pushprox to support overriding namespace and switching the workload type of the client between Deployment and DaemonSet by adding replicas and affinity in pod.spec --- packages/rancher-pushprox/charts/README.md | 4 ++++ .../rancher-pushprox/charts/templates/_helpers.tpl | 2 +- .../charts/templates/pushprox-clients-rbac.yaml | 6 +++--- .../charts/templates/pushprox-clients.yaml | 10 ++++++++++ .../charts/templates/pushprox-proxy-rbac.yaml | 6 +++--- packages/rancher-pushprox/charts/values.yaml | 14 ++++++++++++++ 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/packages/rancher-pushprox/charts/README.md b/packages/rancher-pushprox/charts/README.md index ad14761d0..0530c56aa 100755 --- a/packages/rancher-pushprox/charts/README.md +++ b/packages/rancher-pushprox/charts/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/packages/rancher-pushprox/charts/templates/_helpers.tpl b/packages/rancher-pushprox/charts/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/packages/rancher-pushprox/charts/templates/_helpers.tpl +++ b/packages/rancher-pushprox/charts/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/packages/rancher-pushprox/charts/templates/pushprox-clients-rbac.yaml b/packages/rancher-pushprox/charts/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/packages/rancher-pushprox/charts/templates/pushprox-clients-rbac.yaml +++ b/packages/rancher-pushprox/charts/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/packages/rancher-pushprox/charts/templates/pushprox-clients.yaml b/packages/rancher-pushprox/charts/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/packages/rancher-pushprox/charts/templates/pushprox-clients.yaml +++ b/packages/rancher-pushprox/charts/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/packages/rancher-pushprox/charts/templates/pushprox-proxy-rbac.yaml b/packages/rancher-pushprox/charts/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/packages/rancher-pushprox/charts/templates/pushprox-proxy-rbac.yaml +++ b/packages/rancher-pushprox/charts/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/packages/rancher-pushprox/charts/values.yaml b/packages/rancher-pushprox/charts/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/packages/rancher-pushprox/charts/values.yaml +++ b/packages/rancher-pushprox/charts/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy From 7c182da64f17dc0befe9b8e384ed788489a54dfe Mon Sep 17 00:00:00 2001 From: Jiaqi Luo <6218999+jiaqiluo@users.noreply.github.com> Date: Tue, 8 Jun 2021 18:35:20 -0700 Subject: [PATCH 2/4] make charts --- .../rancher-pushprox-0.1.400.tgz | Bin 6639 -> 7101 bytes .../rancher-pushprox/0.1.400/README.md | 4 ++++ .../0.1.400/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +++--- .../0.1.400/templates/pushprox-clients.yaml | 10 ++++++++++ .../templates/pushprox-proxy-rbac.yaml | 6 +++--- .../rancher-pushprox/0.1.400/values.yaml | 14 ++++++++++++++ 7 files changed, 35 insertions(+), 7 deletions(-) diff --git a/assets/rancher-pushprox/rancher-pushprox-0.1.400.tgz b/assets/rancher-pushprox/rancher-pushprox-0.1.400.tgz index 5bc25ae01dd6980e65a8da65ae7694026d7c43a0..85c090cb479075f2d005b68556952ac8d958d130 100644 GIT binary patch delta 7062 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 AyZ`_I delta 6564 zcmV;V8C&MPH}5l$Jb!I-+qTkZKl4}YmD4A7rlO?SaS}~??)W%qn`xSOY`5ojGMyMA zAqh1_umEUB$M*g0cd!6R@I^0nROj?u^Fv~hz+$mj>@F4ytRQJLrJ|eVa+(SLsdqRf zLWOfOOTOCF)9?5D`+Ix%f4|?a|KH!=efHI0um5a+xBqmoyMOytf3Wwg|MV;9Zw!Ma zPc9V^U-dt`t$OGFCJ#wdu83khmBRoaB8nt@5=KO+gocdwrYw$WI)siAIqkF-;c^HG zOY=|OSIbxWb3}z=V@Bg4*thNFQZl15BM}{ff!&?)lqoJ)I_b)}RCLx}QP6}ENxK?A z(MG}10m;~}RDVdu(;-|80+MCL&we-v`$0@)Bv_{K)d^J+@(c*XG)wq=MpFfR3~EZ@ zD3{YC!9Rh9I|q`+K;RXjGoGGMEaggQL=#3+CBt9=T56urA&@LfScC%*T=;11_4~m+ zjDKVPUyvlHa-#xZ#r%K%^x1xW{y*Q_f0+OG@od2>I)5g4qQDG1jJas=Y8Y(6>6A%e z5(xZu@bla5n2Q-vipDTz3DpH&(I_E;!UYkGj1nqAaTrm^h?F!2mMRW&o(oWPmL)_{ z83sYwJe!dTg@~t$u#}|}7;!blSyxUr{mV=%xFixLG^K(d4ua3{>zF4Aztq)V@#vfi zja;w=Q-7s0IqdZ&OilAq81Y#z6MRP1l;*M<@!2d-nVR?9^zDrjKI&0Q;t_qmzrVjX z*njzQ@bu-&r~N1z6GF&tpS*Y$?LQyW7lU5e*4EoW_wC@B?$|r7=n&W#a;fnl5G6d1 zb#E?MOvN{dZ^~m$s3}pd>lHyWcio-kQUTF@D}SnO%biNaZMhR{)oL5kDGs)a5m6K_ znVJGqz*ES$P;hkx;jd=aJDG*=Z*D?(GuC4UQ*uE;W;9|X0YRk_EJB^}O|S*qETo}B zR8D!G#K6;J4kAx=BUDAP?Wi6^{G@RfJb^4BDRq^w6%s{MBJbeXYecvqN&#m_x2n;) zWPeElDW$P4E~)YuL_*K@Ue`FG35^sNhKqQj*+!$UTjL^T=_Hx!F+1exm`!r?H3%jN zACbiBMU_zf7l2VkmT!;ggh?glL+Eq@oFoTVy|6%d*%G}UuH9)dO#0)Q9KH2JzX&_hS< zAh2BAPTGPoE~hM-R!tKpA2lKwm#X|yuniBuHurLO|0P0vGlo2sRB5Tiq^WH?>_+I9 zxe18_A9M;qb0CGv+YVzq8hA<|HG#pY9WH@X_uA&&S zd~m@C{CIkLbP|A_NGRU6;1x%mRP<0I!vr;jG)7KFmx%putXgoYLu4J&MS^OrL>xPz zOwRGEngWUGpSk{?Q88mu8h@#s#t4(ZI3W|;jujRbwBnjJ_@)k5@pGCwJsiVmt_NOm zn2~b|Bv(@|*uQCP#c44V*i0^|l~e}?+M%E^O%)@Fyj{0rCN;6(#xH3a7(l(9+J!2KxbPdY^c_g%8oP8n$l^I9Xi&#mj z6iX+vXi_&)w0TbFmERFL^os-lVniaxtOs$-G?SC0!Xk>h5w2+%J8m%2eRkgr_7);q zx|TAzG%Cu$BJHg?xqnzPUyaa(C^&y1;o#_vZR)+A_jcB3*;b{Z`=H0K`ehj#qENJ| z0z8C|^MuMFeE2;;32{s%Dp5$-j3IXm`$i7o>c$j$pD9O8i6)d5QqE}QR_MB3dkf(- zfQsFP5W%;+93p7;o3Ru$<5Fw?d9hk9Rf;!4icE%ZflK$UEr0j4{H`rslEy>$(5Y4K zV1p6Q=9-`6o8>Lfm=M}l>n3a@h?sXrxtx!1Wp7a!gu8=q5CkZ(S14*V6+E9zt-`J; zYpZX48{L_|8g!wpU-Vz}1Aw)L&lYPLKpYtTLYwCVv`R>vV)R`en;%2hn*~GYKDUh^ ze(U`HrB}=UeSc5G|5L2admpDX$*7Q_%0AB(w8H=MY=5ur|9L*>?>+c`?&H~lW9yR* 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 WJUp9w{$Bt90RR85r9VgjhyVbsVB8@9 diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/README.md b/charts/rancher-pushprox/rancher-pushprox/0.1.400/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/README.md +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/_helpers.tpl b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/_helpers.tpl +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients-rbac.yaml b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients.yaml b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients.yaml +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-proxy-rbac.yaml b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-pushprox/rancher-pushprox/0.1.400/values.yaml b/charts/rancher-pushprox/rancher-pushprox/0.1.400/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-pushprox/rancher-pushprox/0.1.400/values.yaml +++ b/charts/rancher-pushprox/rancher-pushprox/0.1.400/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy From 1157b4a153cba4dc05d3f683e9e2132874d19731 Mon Sep 17 00:00:00 2001 From: Jiaqi Luo <6218999+jiaqiluo@users.noreply.github.com> Date: Tue, 8 Jun 2021 18:44:34 -0700 Subject: [PATCH 3/4] add sub-charts for scraping ingress-nginx in rke and rke2 clusters --- .../rke2IngressNginx/dependency.yaml | 2 + .../rkeIngressNginx/dependency.yaml | 2 + .../addons/ingress-nginx-dashboard.yaml | 6 +- .../exporters/ingress-nginx/service.yaml | 5 +- .../ingress-nginx/servicemonitor.yaml | 5 +- .../generated-changes/patch/Chart.yaml.patch | 4 +- .../generated-changes/patch/README.md.patch | 4 +- .../generated-changes/patch/values.yaml.patch | 116 +++++++++++++----- 8 files changed, 102 insertions(+), 42 deletions(-) create mode 100644 packages/rancher-monitoring/generated-changes/dependencies/rke2IngressNginx/dependency.yaml create mode 100644 packages/rancher-monitoring/generated-changes/dependencies/rkeIngressNginx/dependency.yaml diff --git a/packages/rancher-monitoring/generated-changes/dependencies/rke2IngressNginx/dependency.yaml b/packages/rancher-monitoring/generated-changes/dependencies/rke2IngressNginx/dependency.yaml new file mode 100644 index 000000000..136939aec --- /dev/null +++ b/packages/rancher-monitoring/generated-changes/dependencies/rke2IngressNginx/dependency.yaml @@ -0,0 +1,2 @@ +workingDir: "" +url: packages/rancher-pushprox diff --git a/packages/rancher-monitoring/generated-changes/dependencies/rkeIngressNginx/dependency.yaml b/packages/rancher-monitoring/generated-changes/dependencies/rkeIngressNginx/dependency.yaml new file mode 100644 index 000000000..136939aec --- /dev/null +++ b/packages/rancher-monitoring/generated-changes/dependencies/rkeIngressNginx/dependency.yaml @@ -0,0 +1,2 @@ +workingDir: "" +url: packages/rancher-pushprox diff --git a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml index 20c57dd2a..7b51a0bf7 100644 --- a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml +++ b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml @@ -1,12 +1,12 @@ -# Source: {{- if and .Values.grafana.enabled .Values.grafana.defaultDashboardsEnabled .Values.ingressNginx.enabled }} apiVersion: v1 kind: ConfigMap metadata: namespace: {{ .Values.grafana.defaultDashboards.namespace }} name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) "ingress-nginx" | trunc 63 | trimSuffix "-" }} - annotations: -{{ toYaml .Values.grafana.sidecar.dashboards.annotations | indent 4 }} + {{- if .Values.grafana.sidecar.dashboards.annotations }} + annotations: {{ toYaml .Values.grafana.sidecar.dashboards.annotations | nindent 4 }} + {{- end }} labels: {{- if $.Values.grafana.sidecar.dashboards.label }} {{ $.Values.grafana.sidecar.dashboards.label }}: "1" diff --git a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml index d256576ad..53a9ad689 100644 --- a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml +++ b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml @@ -1,4 +1,7 @@ -{{- if .Values.ingressNginx.enabled }} +{{- if and (not .Values.ingressNginx.enabled) (.Values.rkeIngressNginx.enabled) }} +{{- fail "Cannot set .Values.rkeIngressNginx.enabled=true when .Values.ingressNginx.enabled=false" }} +{{- end }} +{{- if and .Values.ingressNginx.enabled (not .Values.rkeIngressNginx.enabled) }} apiVersion: v1 kind: Service metadata: diff --git a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml index 643778772..a42f46e5c 100644 --- a/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml +++ b/packages/rancher-monitoring/generated-changes/overlay/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml @@ -1,4 +1,7 @@ -{{- if .Values.ingressNginx.enabled }} +{{- if and (not .Values.ingressNginx.enabled) (.Values.rkeIngressNginx.enabled) }} +{{- fail "Cannot set .Values.rkeIngressNginx.enabled=true when .Values.ingressNginx.enabled=false" }} +{{- end }} +{{- if and .Values.ingressNginx.enabled (not .Values.rkeIngressNginx.enabled) }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: diff --git a/packages/rancher-monitoring/generated-changes/patch/Chart.yaml.patch b/packages/rancher-monitoring/generated-changes/patch/Chart.yaml.patch index afb0c6eee..7611b6c7d 100644 --- a/packages/rancher-monitoring/generated-changes/patch/Chart.yaml.patch +++ b/packages/rancher-monitoring/generated-changes/patch/Chart.yaml.patch @@ -16,7 +16,7 @@ apiVersion: v2 appVersion: 0.46.0 dependencies: -@@ -65,19 +74,17 @@ +@@ -71,19 +80,17 @@ - condition: rkeScheduler.enabled name: rkeScheduler repository: file://./charts/rkeScheduler @@ -39,7 +39,7 @@ kubeVersion: '>=1.16.0-0' maintainers: - name: vsliouniaev -@@ -90,9 +97,12 @@ +@@ -96,9 +103,12 @@ name: scottrigby - email: miroslav.hadzhiev@gmail.com name: Xtigyro diff --git a/packages/rancher-monitoring/generated-changes/patch/README.md.patch b/packages/rancher-monitoring/generated-changes/patch/README.md.patch index a00130adc..67d72c1e8 100644 --- a/packages/rancher-monitoring/generated-changes/patch/README.md.patch +++ b/packages/rancher-monitoring/generated-changes/patch/README.md.patch @@ -1,6 +1,6 @@ --- charts-original/README.md +++ charts/README.md -@@ -171,7 +171,41 @@ +@@ -171,7 +171,43 @@ helm show values prometheus-community/kube-prometheus-stack ``` @@ -33,7 +33,9 @@ +| `rkeControllerManager.enabled` | Create a PushProx installation for monitoring kube-controller-manager metrics in RKE clusters | `false` | +| `rkeScheduler.enabled` | Create a PushProx installation for monitoring kube-scheduler metrics in RKE clusters | `false` | +| `rkeProxy.enabled` | Create a PushProx installation for monitoring kube-proxy metrics in RKE clusters | `false` | ++| `rkeIngressNginx.enabled` | Create a PushProx installation for monitoring ingress-nginx metrics in RKE clusters | `false` | +| `rkeEtcd.enabled` | Create a PushProx installation for monitoring etcd metrics in RKE clusters | `false` | ++| `rke2IngressNginx.enabled` | Create a PushProx installation for monitoring ingress-nginx metrics in RKE2 clusters | `false` | +| `k3sServer.enabled` | Create a PushProx installation for monitoring k3s-server metrics (accounts for kube-controller-manager, kube-scheduler, and kube-proxy metrics) in k3s clusters | `false` | +| `kubeAdmControllerManager.enabled` | Create a PushProx installation for monitoring kube-controller-manager metrics in kubeAdm clusters | `false` | +| `kubeAdmScheduler.enabled` | Create a PushProx installation for monitoring kube-scheduler metrics in kubeAdm clusters | `false` | diff --git a/packages/rancher-monitoring/generated-changes/patch/values.yaml.patch b/packages/rancher-monitoring/generated-changes/patch/values.yaml.patch index 1c4882f9f..75d4ac9fe 100644 --- a/packages/rancher-monitoring/generated-changes/patch/values.yaml.patch +++ b/packages/rancher-monitoring/generated-changes/patch/values.yaml.patch @@ -1,6 +1,6 @@ --- charts-original/values.yaml +++ charts/values.yaml -@@ -2,13 +2,375 @@ +@@ -2,13 +2,423 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. @@ -84,6 +84,21 @@ + - effect: "NoSchedule" + operator: "Exists" + ++rkeIngressNginx: ++ enabled: false ++ metricsPort: 10254 ++ component: ingress-nginx ++ clients: ++ port: 10015 ++ useLocalhost: true ++ tolerations: ++ - effect: "NoExecute" ++ operator: "Exists" ++ - effect: "NoSchedule" ++ operator: "Exists" ++ nodeSelector: ++ node-role.kubernetes.io/worker: "true" ++ +## k3s PushProx Monitoring +## ref: https://github.com/rancher/charts/tree/dev-v2.5-source/packages/rancher-pushprox +## @@ -260,6 +275,39 @@ + - effect: "NoSchedule" + operator: "Exists" + ++rke2IngressNginx: ++ enabled: false ++ metricsPort: 10254 ++ component: ingress-nginx ++ clients: ++ port: 10015 ++ useLocalhost: true ++ tolerations: ++ - effect: "NoExecute" ++ operator: "Exists" ++ - effect: "NoSchedule" ++ operator: "Exists" ++ affinity: ++ podAffinity: ++ requiredDuringSchedulingIgnoredDuringExecution: ++ - labelSelector: ++ matchExpressions: ++ - key: "app.kubernetes.io/component" ++ operator: "In" ++ values: ++ - "controller" ++ topologyKey: "kubernetes.io/hostname" ++ namespaces: ++ - "kube-system" ++ # in the RKE2 cluster, the ingress-nginx-controller is deployed as ++ # a Deployment with 1 pod when RKE2 version is <= 1.20, ++ # a DaemonSet when RKE2 version is >= 1.21 ++ deployment: ++ enabled: false ++ replicas: 1 ++ ++ ++ +## Additional PushProx Monitoring +## ref: https://github.com/rancher/charts/tree/dev-v2.5-source/packages/rancher-pushprox +## @@ -378,7 +426,7 @@ ## Provide a k8s version to auto dashboard import script example: kubeTargetVersionOverride: 1.16.6 ## -@@ -89,8 +451,32 @@ +@@ -89,8 +499,32 @@ ## global: @@ -411,7 +459,7 @@ pspEnabled: true pspAnnotations: {} ## Specify pod annotations -@@ -143,6 +529,22 @@ +@@ -143,6 +577,22 @@ ## ref: https://prometheus.io/docs/alerting/configuration/#configuration-file ## https://prometheus.io/webtools/alerting/routing-tree-editor/ ## @@ -434,7 +482,7 @@ config: global: resolve_timeout: 5m -@@ -179,25 +581,76 @@ +@@ -179,25 +629,76 @@ ## ref: https://prometheus.io/docs/alerting/notifications/ ## https://prometheus.io/docs/alerting/notification_examples/ ## @@ -530,7 +578,7 @@ ingress: enabled: false -@@ -235,6 +688,25 @@ +@@ -235,6 +736,25 @@ ## Configuration for Alertmanager secret ## secret: @@ -556,7 +604,7 @@ annotations: {} ## Configuration for creating an Ingress that will map to each Alertmanager replica service -@@ -352,7 +824,7 @@ +@@ -352,7 +872,7 @@ ## Of type: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#tlsconfig tlsConfig: {} @@ -565,7 +613,7 @@ ## metric relabel configs to apply to samples before ingestion. ## -@@ -383,7 +855,7 @@ +@@ -383,7 +903,7 @@ ## Image of Alertmanager ## image: @@ -574,7 +622,7 @@ tag: v0.21.0 sha: "" -@@ -495,9 +967,13 @@ +@@ -495,9 +1015,13 @@ ## Define resources requests and limits for single Pods. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ ## @@ -591,7 +639,7 @@ ## Pod anti-affinity can prevent the scheduler from placing Prometheus replicas on the same node. ## The default value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided. -@@ -601,10 +1077,46 @@ +@@ -601,10 +1125,46 @@ enabled: true namespaceOverride: "" @@ -638,7 +686,7 @@ adminPassword: prom-operator ingress: -@@ -644,6 +1156,7 @@ +@@ -644,6 +1204,7 @@ dashboards: enabled: true label: grafana_dashboard @@ -646,7 +694,7 @@ ## Annotations for Grafana dashboard configmaps ## -@@ -692,7 +1205,60 @@ +@@ -692,7 +1253,60 @@ ## Passed to grafana subchart and used by servicemonitor below ## service: @@ -708,7 +756,7 @@ ## If true, create a serviceMonitor for grafana ## -@@ -722,6 +1288,14 @@ +@@ -722,6 +1336,14 @@ # targetLabel: nodename # replacement: $1 # action: replace @@ -723,7 +771,7 @@ ## Component scraping the kube api server ## -@@ -879,7 +1453,7 @@ +@@ -879,7 +1501,7 @@ ## Component scraping the kube controller manager ## kubeControllerManager: @@ -732,7 +780,7 @@ ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on ## -@@ -1014,7 +1588,7 @@ +@@ -1014,7 +1636,7 @@ ## Component scraping etcd ## kubeEtcd: @@ -741,7 +789,7 @@ ## If your etcd is not deployed as a pod, specify IPs it can be found on ## -@@ -1076,7 +1650,7 @@ +@@ -1076,7 +1698,7 @@ ## Component scraping kube scheduler ## kubeScheduler: @@ -750,7 +798,7 @@ ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on ## -@@ -1131,7 +1705,7 @@ +@@ -1131,7 +1753,7 @@ ## Component scraping kube proxy ## kubeProxy: @@ -759,7 +807,7 @@ ## If your kube proxy is not deployed as a pod, specify IPs it can be found on ## -@@ -1210,6 +1784,13 @@ +@@ -1210,6 +1832,13 @@ create: true podSecurityPolicy: enabled: true @@ -773,7 +821,7 @@ ## Deploy node exporter as a daemonset to all nodes ## -@@ -1259,6 +1840,16 @@ +@@ -1259,6 +1888,16 @@ extraArgs: - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$ @@ -790,7 +838,7 @@ ## Manages Prometheus and Alertmanager components ## -@@ -1271,8 +1862,8 @@ +@@ -1271,8 +1910,8 @@ enabled: true # Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants tlsMinVersion: VersionTLS13 @@ -801,7 +849,7 @@ ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted ## rules from making their way into prometheus and potentially preventing the container from starting -@@ -1289,7 +1880,7 @@ +@@ -1289,7 +1928,7 @@ patch: enabled: true image: @@ -810,7 +858,7 @@ tag: v1.5.0 sha: "" pullPolicy: IfNotPresent -@@ -1428,13 +2019,13 @@ +@@ -1428,13 +2067,13 @@ ## Resource limits & requests ## @@ -831,7 +879,7 @@ # Required for use in managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), # because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working -@@ -1487,7 +2078,7 @@ +@@ -1487,7 +2126,7 @@ ## Prometheus-operator image ## image: @@ -840,7 +888,7 @@ tag: v0.46.0 sha: "" pullPolicy: IfNotPresent -@@ -1503,7 +2094,7 @@ +@@ -1503,7 +2142,7 @@ ## Prometheus-config-reloader image to use for config and rule reloading ## prometheusConfigReloaderImage: @@ -849,7 +897,7 @@ tag: v0.46.0 sha: "" -@@ -1558,6 +2149,14 @@ +@@ -1558,6 +2197,14 @@ ## nodePort: 30901 @@ -864,7 +912,7 @@ ## Configuration for Prometheus service ## service: -@@ -1570,7 +2169,7 @@ +@@ -1570,7 +2217,7 @@ port: 9090 ## To be used with a proxy extraContainer port @@ -873,7 +921,7 @@ ## List of IP addresses at which the Prometheus server service is available ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips -@@ -1822,7 +2421,7 @@ +@@ -1822,7 +2469,7 @@ ## Image of Prometheus. ## image: @@ -882,7 +930,7 @@ tag: v2.24.0 sha: "" -@@ -1885,6 +2484,11 @@ +@@ -1885,6 +2532,11 @@ ## externalUrl: "" @@ -894,7 +942,7 @@ ## Define which Nodes the Pods are scheduled on. ## ref: https://kubernetes.io/docs/user-guide/node-selection/ ## -@@ -1917,7 +2521,7 @@ +@@ -1917,7 +2569,7 @@ ## prometheus resource to be created with selectors based on values in the helm deployment, ## which will also match the PrometheusRule resources created ## @@ -903,7 +951,7 @@ ## PrometheusRules to be selected for target discovery. ## If {}, select all PrometheusRules -@@ -1942,7 +2546,7 @@ +@@ -1942,7 +2594,7 @@ ## prometheus resource to be created with selectors based on values in the helm deployment, ## which will also match the servicemonitors created ## @@ -912,7 +960,7 @@ ## ServiceMonitors to be selected for target discovery. ## If {}, select all ServiceMonitors -@@ -1965,7 +2569,7 @@ +@@ -1965,7 +2617,7 @@ ## prometheus resource to be created with selectors based on values in the helm deployment, ## which will also match the podmonitors created ## @@ -921,7 +969,7 @@ ## PodMonitors to be selected for target discovery. ## If {}, select all PodMonitors -@@ -2092,9 +2696,13 @@ +@@ -2092,9 +2744,13 @@ ## Resource limits & requests ## @@ -938,7 +986,7 @@ ## Prometheus StorageSpec for persistent data ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md -@@ -2117,7 +2725,13 @@ +@@ -2117,7 +2773,13 @@ # medium: Memory # Additional volumes on the output StatefulSet definition. @@ -953,7 +1001,7 @@ # Additional VolumeMounts on the output StatefulSet definition. volumeMounts: [] -@@ -2224,9 +2838,34 @@ +@@ -2224,9 +2886,34 @@ ## thanos: {} @@ -989,7 +1037,7 @@ ## InitContainers allows injecting additional initContainers. This is meant to allow doing some changes ## (permissions, dir tree) on mounted volumes before starting prometheus -@@ -2234,7 +2873,7 @@ +@@ -2234,7 +2921,7 @@ ## PortName to use for Prometheus. ## From 4d477e50efee60944284ba936121199a1adadc98 Mon Sep 17 00:00:00 2001 From: Jiaqi Luo <6218999+jiaqiluo@users.noreply.github.com> Date: Tue, 8 Jun 2021 19:09:29 -0700 Subject: [PATCH 4/4] make charts --- .../rancher-monitoring-14.5.101+up14.5.0.tgz | Bin 331510 -> 350004 bytes .../14.5.101+up14.5.0/Chart.yaml | 6 + .../14.5.101+up14.5.0/README.md | 2 + .../charts/hardenedKubelet/README.md | 4 + .../hardenedKubelet/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/hardenedKubelet/values.yaml | 14 ++ .../charts/hardenedNodeExporter/README.md | 4 + .../templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/hardenedNodeExporter/values.yaml | 14 ++ .../charts/k3sServer/README.md | 4 + .../charts/k3sServer/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../k3sServer/templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/k3sServer/values.yaml | 14 ++ .../charts/kubeAdmControllerManager/README.md | 4 + .../templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../kubeAdmControllerManager/values.yaml | 14 ++ .../charts/kubeAdmEtcd/README.md | 4 + .../charts/kubeAdmEtcd/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/kubeAdmEtcd/values.yaml | 14 ++ .../charts/kubeAdmProxy/README.md | 4 + .../kubeAdmProxy/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/kubeAdmProxy/values.yaml | 14 ++ .../charts/kubeAdmScheduler/README.md | 4 + .../kubeAdmScheduler/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/kubeAdmScheduler/values.yaml | 14 ++ .../charts/rke2ControllerManager/README.md | 4 + .../templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rke2ControllerManager/values.yaml | 14 ++ .../charts/rke2Etcd/README.md | 4 + .../charts/rke2Etcd/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../rke2Etcd/templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rke2Etcd/values.yaml | 14 ++ .../charts/rke2IngressNginx/.helmignore | 23 +++ .../charts/rke2IngressNginx/Chart.yaml | 13 ++ .../charts/rke2IngressNginx/README.md | 60 ++++++++ .../rke2IngressNginx/templates/_helpers.tpl | 104 +++++++++++++ .../templates/pushprox-clients-rbac.yaml | 77 ++++++++++ .../templates/pushprox-clients.yaml | 145 ++++++++++++++++++ .../templates/pushprox-proxy-rbac.yaml | 63 ++++++++ .../templates/pushprox-proxy.yaml | 52 +++++++ .../templates/pushprox-servicemonitor.yaml | 33 ++++ .../charts/rke2IngressNginx/values.yaml | 111 ++++++++++++++ .../charts/rke2Proxy/README.md | 4 + .../charts/rke2Proxy/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../rke2Proxy/templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rke2Proxy/values.yaml | 14 ++ .../charts/rke2Scheduler/README.md | 4 + .../rke2Scheduler/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rke2Scheduler/values.yaml | 14 ++ .../charts/rkeControllerManager/README.md | 4 + .../templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rkeControllerManager/values.yaml | 14 ++ .../charts/rkeEtcd/README.md | 4 + .../charts/rkeEtcd/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../rkeEtcd/templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rkeEtcd/values.yaml | 14 ++ .../charts/rkeIngressNginx/.helmignore | 23 +++ .../charts/rkeIngressNginx/Chart.yaml | 13 ++ .../charts/rkeIngressNginx/README.md | 60 ++++++++ .../rkeIngressNginx/templates/_helpers.tpl | 104 +++++++++++++ .../templates/pushprox-clients-rbac.yaml | 77 ++++++++++ .../templates/pushprox-clients.yaml | 145 ++++++++++++++++++ .../templates/pushprox-proxy-rbac.yaml | 63 ++++++++ .../templates/pushprox-proxy.yaml | 52 +++++++ .../templates/pushprox-servicemonitor.yaml | 33 ++++ .../charts/rkeIngressNginx/values.yaml | 111 ++++++++++++++ .../charts/rkeProxy/README.md | 4 + .../charts/rkeProxy/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../rkeProxy/templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rkeProxy/values.yaml | 14 ++ .../charts/rkeScheduler/README.md | 4 + .../rkeScheduler/templates/_helpers.tpl | 2 +- .../templates/pushprox-clients-rbac.yaml | 6 +- .../templates/pushprox-clients.yaml | 10 ++ .../templates/pushprox-proxy-rbac.yaml | 6 +- .../charts/rkeScheduler/values.yaml | 14 ++ .../addons/ingress-nginx-dashboard.yaml | 6 +- .../exporters/ingress-nginx/service.yaml | 5 +- .../ingress-nginx/servicemonitor.yaml | 5 +- .../14.5.101+up14.5.0/values.yaml | 48 ++++++ 117 files changed, 1954 insertions(+), 110 deletions(-) create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/.helmignore create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/Chart.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/README.md create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/_helpers.tpl create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients-rbac.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy-rbac.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-servicemonitor.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/values.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/.helmignore create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/Chart.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/README.md create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/_helpers.tpl create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients-rbac.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy-rbac.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-servicemonitor.yaml create mode 100644 charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/values.yaml diff --git a/assets/rancher-monitoring/rancher-monitoring-14.5.101+up14.5.0.tgz b/assets/rancher-monitoring/rancher-monitoring-14.5.101+up14.5.0.tgz index 6d96e4461a2be8aaf2a6a845f6f165997cd3b0e5..7816763f9dca6dee5ef174f473fe64eac528e113 100644 GIT binary patch literal 350004 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 P0Dwy4nkkS0FVO!0Gut1> literal 331510 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ķ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őWyIoQN8wF>v-C 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 diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/Chart.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/Chart.yaml index 7b48c1ff1..059b140fb 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/Chart.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/Chart.yaml @@ -56,6 +56,9 @@ dependencies: - condition: rke2Etcd.enabled name: rke2Etcd repository: file://./charts/rke2Etcd +- condition: rke2IngressNginx.enabled + name: rke2IngressNginx + repository: file://./charts/rke2IngressNginx - condition: rke2Proxy.enabled name: rke2Proxy repository: file://./charts/rke2Proxy @@ -68,6 +71,9 @@ dependencies: - condition: rkeEtcd.enabled name: rkeEtcd repository: file://./charts/rkeEtcd +- condition: rkeIngressNginx.enabled + name: rkeIngressNginx + repository: file://./charts/rkeIngressNginx - condition: rkeProxy.enabled name: rkeProxy repository: file://./charts/rkeProxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/README.md index aa5d530f2..396137e01 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/README.md @@ -199,7 +199,9 @@ The following values are enabled for different distributions via [rancher-pushpr | `rkeControllerManager.enabled` | Create a PushProx installation for monitoring kube-controller-manager metrics in RKE clusters | `false` | | `rkeScheduler.enabled` | Create a PushProx installation for monitoring kube-scheduler metrics in RKE clusters | `false` | | `rkeProxy.enabled` | Create a PushProx installation for monitoring kube-proxy metrics in RKE clusters | `false` | +| `rkeIngressNginx.enabled` | Create a PushProx installation for monitoring ingress-nginx metrics in RKE clusters | `false` | | `rkeEtcd.enabled` | Create a PushProx installation for monitoring etcd metrics in RKE clusters | `false` | +| `rke2IngressNginx.enabled` | Create a PushProx installation for monitoring ingress-nginx metrics in RKE2 clusters | `false` | | `k3sServer.enabled` | Create a PushProx installation for monitoring k3s-server metrics (accounts for kube-controller-manager, kube-scheduler, and kube-proxy metrics) in k3s clusters | `false` | | `kubeAdmControllerManager.enabled` | Create a PushProx installation for monitoring kube-controller-manager metrics in kubeAdm clusters | `false` | | `kubeAdmScheduler.enabled` | Create a PushProx installation for monitoring kube-scheduler metrics in kubeAdm clusters | `false` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedKubelet/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/hardenedNodeExporter/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/k3sServer/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmControllerManager/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmEtcd/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmProxy/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/kubeAdmScheduler/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2ControllerManager/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Etcd/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/.helmignore b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/Chart.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/Chart.yaml new file mode 100644 index 000000000..e506f7552 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/Chart.yaml @@ -0,0 +1,13 @@ +annotations: + catalog.cattle.io/hidden: "true" + catalog.cattle.io/os: linux + catalog.rancher.io/certified: rancher + catalog.rancher.io/namespace: cattle-monitoring-system + catalog.rancher.io/release-name: rancher-pushprox +apiVersion: v1 +appVersion: 0.1.0 +description: Sets up a deployment of the PushProx proxy and a DaemonSet of PushProx + clients. +name: rke2IngressNginx +type: application +version: 0.1.4 diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/README.md new file mode 100644 index 000000000..0530c56aa --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/README.md @@ -0,0 +1,60 @@ +# rancher-pushprox + +A Rancher chart based on Rancher [PushProx](https://github.com/rancher/PushProx) that sets up a Deployment of a PushProx proxy and a DaemonSet of PushProx clients on a Kubernetes cluster. + +Installs [rancher-pushprox](https://github.com/rancher/charts/tree/gh-pages/packages/rancher-pushprox) to create PushProx clients that can access their host's network and register with a PushProx proxy. A [Prometheus Operator](https://github.com/coreos/prometheus-operator) ServiceMonitor CR is also included that is configured to scrape the metrics from each of the clients through the proxy. + +Using an instance of this chart is suitable for the following scenarios: +- You need to scrape metrics from a port that should not be accessible outside of the host (e.g. scraping `etcd` metrics in a hardened cluster) +- You need to scrape metrics on a host that are not exposed outside of 127.0.0.1 (e.g. scraping `kube-proxy` metrics) +- You need to scrape metrics through HTTPS using certs hosted directly on `hostPath` +- You need to scrape metrics from Kubernetes components that require authorization via a service account (e.g. permissions to make request to `/metrics`) +- You need to scrape metrics without access to cacerts (i.e. enable `insecureSkipVerify`) + +The clients and proxy are created based on a Rancher fork of the [prometheus-community/PushProx](https://github.com/prometheus-community/PushProx) project. + +## Configuration + +The following tables list the configurable parameters of the rancher-pushprox chart and their default values. + +### General + +#### Required +| Parameter | Description | Example | +| ----- | ----------- | ------ | +| `component` | The component that is being monitored | `kube-etcd` +| `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` + +#### Optional +| Parameter | Description | Default | +| ----- | ----------- | ------ | +| `serviceMonitor.enabled` | Deploys a [Prometheus Operator](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#servicemonitor) ServiceMonitor CR that is configured to scrape metrics on the hosts that the clients are deployed on via the proxy. Also deploys a Service that points to all pods with the expected client name that exposes the `metricsPort` selected | `true` | +| `serviceMonitor.endpoints` | A list of endpoints that will be added to the ServiceMonitor based on the [Endpoint spec](https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint) | `[{port: metrics}]` | +| `clients.enabled` | Deploys a DaemonSet of clients that are each capable of scraping endpoints on the hostNetwork it is deployed on | `true` | +| `clients.port` | The port where the client will publish PushProx client-specific metrics. If deploying multiple clients onto the same node, the clients should not have conflicting ports | `9369` | +| `clients.proxyUrl` | Overrides the default proxyUrl setting of `http://pushprox-{{ .Values.component }}-proxy.{{ . Release.Namespace }}.svc.cluster.local:{{ .Values.proxy.port }}"` with the `proxyUrl` specified | `""` | +| `clients.useLocalhost` | Sets a flag on each client deployment to redirect scrapes directed to `HOST_IP` to `127.0.0.1` | `false` | +| `clients.https.enabled` | Enables scraping metrics via HTTPS using the provided TLS certs that exist on each host | `false` | +| `clients.https.useServiceAccountCredentials` | If set to true, the client will create a service account with permissions to scrape `/metrics` endpoint of Kubernetes components. The client will use the service account token provided to make authorized scrape requests to the Kubernetes API | `false` | +| `clients.https.insecureSkipVerify` | If set to true, the client will disable SSL security checks | `false` | +| `clients.https.certDir` | A `hostPath` where TLS certs can be found. This path is mounted as a volume on an `initContainer` which copies only the necessary files over to an EmptyDir volume used by each client. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.certFile` | The path to the TLS cert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | +| `clients.resources` | Set resource limits and requests for the client container | `{}` | +| `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | +| `clients.tolerations` | Specify tolerations for clients | `[]` | +| `proxy.enabled` | Deploys the proxy that each client will register with | `true` | +| `proxy.port` | The port exposed by the proxy that each client will register with to allow metrics to be scraped from the host | `8080` | +| `proxy.resources` | Set resource limits and requests for the proxy container | `{}` | +| `proxy.nodeSelector` | Select which nodes the proxy can be deployed on | `{}` | +| `proxy.tolerations` | Specify tolerations (if necessary) to allow the proxy to be deployed on the selected node | `[]` | + +*Tip: The filepaths set in `clients.https.File` can include wildcard characters*. + +See [rancher-monitoring](https://github.com/rancher/charts/tree/gh-pages/packages/rancher-monitoring) for examples of how this chart can be used. \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/_helpers.tpl new file mode 100644 index 000000000..458ad21cd --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/_helpers.tpl @@ -0,0 +1,104 @@ +# Rancher + +{{- define "system_default_registry" -}} +{{- if .Values.global.cattle.systemDefaultRegistry -}} +{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}} +{{- end -}} +{{- end -}} + +# Windows Support + +{{/* +Windows cluster will add default taint for linux nodes, +add below linux tolerations to workloads could be scheduled to those linux nodes +*/}} + +{{- define "linux-node-tolerations" -}} +- key: "cattle.io/os" + value: "linux" + effect: "NoSchedule" + operator: "Equal" +{{- end -}} + +{{- define "linux-node-selector" -}} +{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} +beta.kubernetes.io/os: linux +{{- else -}} +kubernetes.io/os: linux +{{- end -}} +{{- end -}} + +# General + +{{- define "pushprox.namespace" -}} + {{- if .Values.namespaceOverride -}} + {{- .Values.namespaceOverride -}} + {{- else -}} + {{- .Release.Namespace -}} + {{- end -}} +{{- end -}} + +{{- define "pushProxy.commonLabels" -}} +release: {{ .Release.Name }} +component: {{ .Values.component | quote }} +provider: kubernetes +{{- end -}} + +{{- define "pushProxy.proxyUrl" -}} +{{- $_ := (required "Template requires either .Values.proxy.port or .Values.client.proxyUrl to set proxyUrl for client" (or .Values.clients.proxyUrl .Values.proxy.port)) -}} +{{- if .Values.clients.proxyUrl -}} +{{ printf "%s" .Values.clients.proxyUrl }} +{{- else -}} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} +{{- end -}}{{- end -}} + +# Client + +{{- define "pushProxy.client.name" -}} +{{- printf "pushprox-%s-client" (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.client.labels" -}} +k8s-app: {{ template "pushProxy.client.name" . }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +# Proxy + +{{- define "pushProxy.proxy.name" -}} +{{- printf "pushprox-%s-proxy" (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.proxy.labels" -}} +k8s-app: {{ template "pushProxy.proxy.name" . }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +# ServiceMonitor + +{{- define "pushprox.serviceMonitor.name" -}} +{{- printf "%s-%s" .Release.Name (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.serviceMonitor.labels" -}} +app: {{ template "pushprox.serviceMonitor.name" . }} +release: {{ .Release.Name | quote }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +{{- define "pushProxy.serviceMonitor.endpoints" -}} +{{- $proxyURL := (include "pushProxy.proxyUrl" .) -}} +{{- $useHTTPS := .Values.clients.https.enabled -}} +{{- $endpoints := .Values.serviceMonitor.endpoints }} +{{- range $endpoints }} +{{- $_ := set . "proxyUrl" $proxyURL }} +{{- if $useHTTPS -}} +{{- if (hasKey . "params") }} +{{- $_ := set (get . "params") "_scheme" (list "https") }} +{{- else }} +{{- $_ := set . "params" (dict "_scheme" (list "https")) }} +{{- end }} +{{- end }} +{{- end }} +{{- toYaml $endpoints }} +{{- end -}} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients-rbac.yaml new file mode 100644 index 000000000..f1a8e7232 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients-rbac.yaml @@ -0,0 +1,77 @@ +{{- if .Values.clients }}{{- if .Values.clients.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "pushProxy.client.name" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +rules: +- apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: + - {{ template "pushProxy.client.name" . }} +{{- if and .Values.clients.https.enabled .Values.clients.https.useServiceAccountCredentials }} +- nonResourceURLs: ["/metrics"] + verbs: ["get"] +{{- if .Values.clients.rbac.additionalRules }} +{{ toYaml .Values.clients.rbac.additionalRules }} +{{- end }} +{{- end }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "pushProxy.client.name" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "pushProxy.client.name" . }} +subjects: + - kind: ServiceAccount + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +spec: + privileged: false + hostNetwork: true + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + - min: 0 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + - min: 0 + max: 65535 + readOnlyRootFilesystem: false + volumes: + - 'secret' +{{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + - 'emptyDir' + - 'hostPath' + allowedHostPaths: + - pathPrefix: {{ required "Need access to volume on host with the SSL cert files to use HTTPs" .Values.clients.https.certDir }} + readOnly: true +{{- end }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients.yaml new file mode 100644 index 000000000..3775d17b8 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-clients.yaml @@ -0,0 +1,145 @@ +{{- if .Values.clients }}{{- if .Values.clients.enabled }} +apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} +kind: DaemonSet +{{- end }} +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} + pushprox-exporter: "client" +spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} + selector: + matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} + template: + metadata: + labels: {{ include "pushProxy.client.labels" . | nindent 8 }} + spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} + nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} +{{- if .Values.clients.nodeSelector }} +{{ toYaml .Values.clients.nodeSelector | indent 8 }} +{{- end }} + tolerations: {{ include "linux-node-tolerations" . | nindent 8 }} +{{- if .Values.clients.tolerations }} +{{ toYaml .Values.clients.tolerations | indent 8 }} +{{- end }} + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + serviceAccountName: {{ template "pushProxy.client.name" . }} + containers: + - name: pushprox-client + image: {{ template "system_default_registry" . }}{{ .Values.clients.image.repository }}:{{ .Values.clients.image.tag }} + command: + {{- range .Values.clients.command }} + - {{ . | quote }} + {{- end }} + args: + - --fqdn=$(HOST_IP) + - --proxy-url=$(PROXY_URL) + - --metrics-addr=$(PORT) + - --allow-port={{ required "Need .Values.metricsPort to configure client to be allowed to scrape metrics at port" .Values.metricsPort}} + {{- if .Values.clients.useLocalhost }} + - --use-localhost + {{- end }} + {{- if .Values.clients.https.enabled }} + {{- if .Values.clients.https.insecureSkipVerify }} + - --insecure-skip-verify + {{- end }} + {{- if .Values.clients.https.useServiceAccountCredentials }} + - --token-path=/var/run/secrets/kubernetes.io/serviceaccount/token + {{- end }} + {{- if .Values.clients.https.certDir }} + - --tls.cert=/etc/ssl/push-proxy/push-proxy.pem + - --tls.key=/etc/ssl/push-proxy/push-proxy-key.pem + - --tls.cacert=/etc/ssl/push-proxy/push-proxy-ca-cert.pem + {{- end }} + {{- end }} + env: + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: PORT + value: :{{ .Values.clients.port }} + - name: PROXY_URL + value: {{ template "pushProxy.proxyUrl" . }} + securityContext: + runAsNonRoot: true + runAsUser: 1000 + {{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + volumeMounts: + - name: metrics-cert-dir + mountPath: /etc/ssl/push-proxy + {{- end }} + {{- if .Values.clients.resources }} + resources: {{ toYaml .Values.clients.resources | nindent 10 }} + {{- end }} + {{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + initContainers: + - name: copy-certs + image: {{ template "system_default_registry" . }}{{ .Values.clients.copyCertsImage.repository }}:{{ .Values.clients.copyCertsImage.tag }} + command: + - sh + - -c + - | + echo "Searching for files to copy within the source volume" + echo "cert: ${CERT_FILE_NAME}" + echo "key: ${KEY_FILE_NAME}" + echo "cacert: ${CACERT_FILE_NAME}" + + CERT_FILE_SOURCE=$(find /etc/source/ -type f -name "${CERT_FILE_NAME}" | sort -r | head -n 1) + KEY_FILE_SOURCE=$(find /etc/source/ -type f -name "${KEY_FILE_NAME}" | sort -r | head -n 1) + CACERT_FILE_SOURCE=$(find /etc/source/ -type f -name "${CACERT_FILE_NAME}" | sort -r | head -n 1) + + test -z ${CERT_FILE_SOURCE} && echo "Failed to find cert file" && exit 1 + test -z ${KEY_FILE_SOURCE} && echo "Failed to find key file" && exit 1 + test -z ${CACERT_FILE_SOURCE} && echo "Failed to find cacert file" && exit 1 + + echo "Copying cert file from $CERT_FILE_SOURCE to $CERT_FILE_TARGET" + cp $CERT_FILE_SOURCE $CERT_FILE_TARGET || exit 1 + chmod 444 $CERT_FILE_TARGET || exit 1 + + echo "Copying key file from $KEY_FILE_SOURCE to $KEY_FILE_TARGET" + cp $KEY_FILE_SOURCE $KEY_FILE_TARGET || exit 1 + chmod 444 $KEY_FILE_TARGET || exit 1 + + echo "Copying cacert file from $CACERT_FILE_SOURCE to $CACERT_FILE_TARGET" + cp $CACERT_FILE_SOURCE $CACERT_FILE_TARGET || exit 1 + chmod 444 $CACERT_FILE_TARGET || exit 1 + env: + - name: CERT_FILE_NAME + value: {{ required "Need a TLS cert file for scraping metrics endpoint over HTTPs" .Values.clients.https.certFile }} + - name: KEY_FILE_NAME + value: {{ required "Need a TLS key file for scraping metrics endpoint over HTTPs" .Values.clients.https.keyFile }} + - name: CACERT_FILE_NAME + value: {{ required "Need a TLS CA cert file for scraping metrics endpoint over HTTPs" .Values.clients.https.caCertFile }} + - name: CERT_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy.pem + - name: KEY_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy-key.pem + - name: CACERT_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy-ca-cert.pem + securityContext: + runAsNonRoot: false + volumeMounts: + - name: metrics-cert-dir-source + mountPath: /etc/source + readOnly: true + - name: metrics-cert-dir + mountPath: /etc/ssl/push-proxy + volumes: + - name: metrics-cert-dir-source + hostPath: + path: {{ required "Need access to volume on host with the SSL cert files to use HTTPs" .Values.clients.https.certDir }} + - name: metrics-cert-dir + emptyDir: {} + {{- end }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy-rbac.yaml new file mode 100644 index 000000000..147eb4374 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy-rbac.yaml @@ -0,0 +1,63 @@ +{{- if and .Values.proxy }}{{ if .Values.proxy.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "pushProxy.proxy.name" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +rules: +- apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: + - {{ template "pushProxy.proxy.name" . }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "pushProxy.proxy.name" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "pushProxy.proxy.name" . }} +subjects: + - kind: ServiceAccount + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +spec: + privileged: false + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'MustRunAsNonRoot' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + readOnlyRootFilesystem: false + volumes: + - 'secret' +{{- end }}{{- end }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy.yaml new file mode 100644 index 000000000..571e13138 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-proxy.yaml @@ -0,0 +1,52 @@ +{{- if and .Values.proxy }}{{ if .Values.proxy.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} + pushprox-exporter: "proxy" +spec: + selector: + matchLabels: {{ include "pushProxy.proxy.labels" . | nindent 6 }} + template: + metadata: + labels: {{ include "pushProxy.proxy.labels" . | nindent 8 }} + spec: + securityContext: + runAsNonRoot: true + runAsUser: 1000 + nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} +{{- if .Values.proxy.nodeSelector }} +{{ toYaml .Values.proxy.nodeSelector | indent 8 }} +{{- end }} + tolerations: {{ include "linux-node-tolerations" . | nindent 8 }} +{{- if .Values.proxy.tolerations }} +{{ toYaml .Values.proxy.tolerations | indent 8 }} +{{- end }} + serviceAccountName: {{ template "pushProxy.proxy.name" . }} + containers: + - name: pushprox-proxy + image: {{ template "system_default_registry" . }}{{ .Values.proxy.image.repository }}:{{ .Values.proxy.image.tag }} + command: + {{- range .Values.proxy.command }} + - {{ . | quote }} + {{- end }} + {{- if .Values.proxy.resources }} + resources: {{ toYaml .Values.proxy.resources | nindent 10 }} + {{- end }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +spec: + ports: + - name: pp-proxy + port: {{ required "Need .Values.proxy.port to configure proxy" .Values.proxy.port }} + protocol: TCP + targetPort: {{ .Values.proxy.port }} + selector: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-servicemonitor.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-servicemonitor.yaml new file mode 100644 index 000000000..7f961d6f4 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/templates/pushprox-servicemonitor.yaml @@ -0,0 +1,33 @@ +{{- if .Values.serviceMonitor }}{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "pushprox.serviceMonitor.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.serviceMonitor.labels" . | nindent 4 }} +spec: + endpoints: {{include "pushProxy.serviceMonitor.endpoints" . | nindent 4 }} + jobLabel: component + podTargetLabels: + - component + - pushprox-exporter + namespaceSelector: + matchNames: + - {{ template "pushprox.namespace" . }} + selector: + matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +spec: + ports: + - name: metrics + port: {{ required "Need .Values.metricsPort to configure client to listen to metrics at port" .Values.metricsPort}} + protocol: TCP + targetPort: {{ .Values.metricsPort }} + selector: {{ include "pushProxy.client.labels" . | nindent 4 }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/values.yaml new file mode 100644 index 000000000..6ad1eab4d --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2IngressNginx/values.yaml @@ -0,0 +1,111 @@ +# Default values for rancher-pushprox. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# Default image containing both the proxy and the client was generated from the following Dockerfile +# https://github.com/prometheus-community/PushProx/blob/eeadbe766641699129920ccfaaaa30a85c67fe81/Dockerfile#L1-L15 + +# Note: if using a cloud provider, the nodes that contain the PushProxy client must allow the node(s) that contain(s) +# the PushProxy proxy to communicate with it on port {{ .Values.clients.port }}. If you have special restrictions, +# (i.e. client should only run on etcd nodes and only control plane should have access to the port on the etcd node), +# you will need to set the clients / proxy nodeSelector and tolerations accordingly + +# Configuration + +global: + cattle: + systemDefaultRegistry: "" + +namespaceOverride: "" + +# The component that is being monitored (i.e. etcd) +component: "component" + +# The port containing the metrics that need to be scraped +metricsPort: 2739 + +# Configure ServiceMonitor that monitors metrics from the metricsPort endpoint +serviceMonitor: + enabled: true + # A list of endpoints that will be added to the ServiceMonitor based on the Endpoint spec + # Source: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + # By default, proxyUrl and params._scheme will be overridden based on other values + endpoints: + - port: metrics + +clients: + enabled: true + # The port which the PushProx client will post PushProx metrics to + port: 9369 + # If unset, this will default to the URL for the proxy service: http://pushprox-{{component}}-proxy.{{namepsace}}.svc.cluster.local:{{proxy.port}} + # Should be modified if the clients are being deployed outside the cluster where the proxy rests, otherwise leave it null + proxyUrl: "" + # If set to true, the client will forward any requests from the host IP to 127.0.0.1 + # It will only allow proxy requests to the metricsPort specified + useLocalhost: false + # Configuration for accessing metrics via HTTPS + https: + # Does the client require https to access the metrics? + enabled: false + # If set to true, the client will create a service account with adequate permissions and set a flag + # on the client to use the service account token provided by it to make authorized scrape requests + useServiceAccountCredentials: false + # If set to true, the client will disable SSL security checks + insecureSkipVerify: false + # Directory on host where necessary TLS cert and key to scrape metrics can be found + certDir: "" + # Filenames for files located in .Values.clients.https.certDir that correspond to TLS settings + certFile: "" + keyFile: "" + caCertFile: "" + + rbac: + # Additional permissions to provide to the ServiceAccount bound to the client + # This can be used to provide additional permissions for the client to scrape metrics from the k8s API + # Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true + additionalRules: [] + + # Resource limits + resources: {} + + # Options to select all nodes to deploy client DaemonSet on + nodeSelector: {} + tolerations: [] + affinity: {} + + image: + repository: rancher/pushprox-client + tag: v0.1.0-rancher2-client + command: ["pushprox-client"] + + copyCertsImage: + repository: rancher/mirrored-library-busybox + tag: 1.31.1 + + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + +proxy: + enabled: true + # The port through which PushProx clients will communicate to the proxy + port: 8080 + + # Resource limits + resources: {} + + # Options to select a node to run a single proxy deployment on + nodeSelector: {} + tolerations: [] + + image: + repository: rancher/pushprox-proxy + tag: v0.1.0-rancher2-proxy + command: ["pushprox-proxy"] \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Proxy/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rke2Scheduler/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeControllerManager/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeEtcd/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/.helmignore b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/Chart.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/Chart.yaml new file mode 100644 index 000000000..835ee8a83 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/Chart.yaml @@ -0,0 +1,13 @@ +annotations: + catalog.cattle.io/hidden: "true" + catalog.cattle.io/os: linux + catalog.rancher.io/certified: rancher + catalog.rancher.io/namespace: cattle-monitoring-system + catalog.rancher.io/release-name: rancher-pushprox +apiVersion: v1 +appVersion: 0.1.0 +description: Sets up a deployment of the PushProx proxy and a DaemonSet of PushProx + clients. +name: rkeIngressNginx +type: application +version: 0.1.4 diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/README.md new file mode 100644 index 000000000..0530c56aa --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/README.md @@ -0,0 +1,60 @@ +# rancher-pushprox + +A Rancher chart based on Rancher [PushProx](https://github.com/rancher/PushProx) that sets up a Deployment of a PushProx proxy and a DaemonSet of PushProx clients on a Kubernetes cluster. + +Installs [rancher-pushprox](https://github.com/rancher/charts/tree/gh-pages/packages/rancher-pushprox) to create PushProx clients that can access their host's network and register with a PushProx proxy. A [Prometheus Operator](https://github.com/coreos/prometheus-operator) ServiceMonitor CR is also included that is configured to scrape the metrics from each of the clients through the proxy. + +Using an instance of this chart is suitable for the following scenarios: +- You need to scrape metrics from a port that should not be accessible outside of the host (e.g. scraping `etcd` metrics in a hardened cluster) +- You need to scrape metrics on a host that are not exposed outside of 127.0.0.1 (e.g. scraping `kube-proxy` metrics) +- You need to scrape metrics through HTTPS using certs hosted directly on `hostPath` +- You need to scrape metrics from Kubernetes components that require authorization via a service account (e.g. permissions to make request to `/metrics`) +- You need to scrape metrics without access to cacerts (i.e. enable `insecureSkipVerify`) + +The clients and proxy are created based on a Rancher fork of the [prometheus-community/PushProx](https://github.com/prometheus-community/PushProx) project. + +## Configuration + +The following tables list the configurable parameters of the rancher-pushprox chart and their default values. + +### General + +#### Required +| Parameter | Description | Example | +| ----- | ----------- | ------ | +| `component` | The component that is being monitored | `kube-etcd` +| `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` + +#### Optional +| Parameter | Description | Default | +| ----- | ----------- | ------ | +| `serviceMonitor.enabled` | Deploys a [Prometheus Operator](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#servicemonitor) ServiceMonitor CR that is configured to scrape metrics on the hosts that the clients are deployed on via the proxy. Also deploys a Service that points to all pods with the expected client name that exposes the `metricsPort` selected | `true` | +| `serviceMonitor.endpoints` | A list of endpoints that will be added to the ServiceMonitor based on the [Endpoint spec](https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint) | `[{port: metrics}]` | +| `clients.enabled` | Deploys a DaemonSet of clients that are each capable of scraping endpoints on the hostNetwork it is deployed on | `true` | +| `clients.port` | The port where the client will publish PushProx client-specific metrics. If deploying multiple clients onto the same node, the clients should not have conflicting ports | `9369` | +| `clients.proxyUrl` | Overrides the default proxyUrl setting of `http://pushprox-{{ .Values.component }}-proxy.{{ . Release.Namespace }}.svc.cluster.local:{{ .Values.proxy.port }}"` with the `proxyUrl` specified | `""` | +| `clients.useLocalhost` | Sets a flag on each client deployment to redirect scrapes directed to `HOST_IP` to `127.0.0.1` | `false` | +| `clients.https.enabled` | Enables scraping metrics via HTTPS using the provided TLS certs that exist on each host | `false` | +| `clients.https.useServiceAccountCredentials` | If set to true, the client will create a service account with permissions to scrape `/metrics` endpoint of Kubernetes components. The client will use the service account token provided to make authorized scrape requests to the Kubernetes API | `false` | +| `clients.https.insecureSkipVerify` | If set to true, the client will disable SSL security checks | `false` | +| `clients.https.certDir` | A `hostPath` where TLS certs can be found. This path is mounted as a volume on an `initContainer` which copies only the necessary files over to an EmptyDir volume used by each client. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.certFile` | The path to the TLS cert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | +| `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | +| `clients.resources` | Set resource limits and requests for the client container | `{}` | +| `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | +| `clients.tolerations` | Specify tolerations for clients | `[]` | +| `proxy.enabled` | Deploys the proxy that each client will register with | `true` | +| `proxy.port` | The port exposed by the proxy that each client will register with to allow metrics to be scraped from the host | `8080` | +| `proxy.resources` | Set resource limits and requests for the proxy container | `{}` | +| `proxy.nodeSelector` | Select which nodes the proxy can be deployed on | `{}` | +| `proxy.tolerations` | Specify tolerations (if necessary) to allow the proxy to be deployed on the selected node | `[]` | + +*Tip: The filepaths set in `clients.https.File` can include wildcard characters*. + +See [rancher-monitoring](https://github.com/rancher/charts/tree/gh-pages/packages/rancher-monitoring) for examples of how this chart can be used. \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/_helpers.tpl new file mode 100644 index 000000000..458ad21cd --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/_helpers.tpl @@ -0,0 +1,104 @@ +# Rancher + +{{- define "system_default_registry" -}} +{{- if .Values.global.cattle.systemDefaultRegistry -}} +{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}} +{{- end -}} +{{- end -}} + +# Windows Support + +{{/* +Windows cluster will add default taint for linux nodes, +add below linux tolerations to workloads could be scheduled to those linux nodes +*/}} + +{{- define "linux-node-tolerations" -}} +- key: "cattle.io/os" + value: "linux" + effect: "NoSchedule" + operator: "Equal" +{{- end -}} + +{{- define "linux-node-selector" -}} +{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} +beta.kubernetes.io/os: linux +{{- else -}} +kubernetes.io/os: linux +{{- end -}} +{{- end -}} + +# General + +{{- define "pushprox.namespace" -}} + {{- if .Values.namespaceOverride -}} + {{- .Values.namespaceOverride -}} + {{- else -}} + {{- .Release.Namespace -}} + {{- end -}} +{{- end -}} + +{{- define "pushProxy.commonLabels" -}} +release: {{ .Release.Name }} +component: {{ .Values.component | quote }} +provider: kubernetes +{{- end -}} + +{{- define "pushProxy.proxyUrl" -}} +{{- $_ := (required "Template requires either .Values.proxy.port or .Values.client.proxyUrl to set proxyUrl for client" (or .Values.clients.proxyUrl .Values.proxy.port)) -}} +{{- if .Values.clients.proxyUrl -}} +{{ printf "%s" .Values.clients.proxyUrl }} +{{- else -}} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} +{{- end -}}{{- end -}} + +# Client + +{{- define "pushProxy.client.name" -}} +{{- printf "pushprox-%s-client" (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.client.labels" -}} +k8s-app: {{ template "pushProxy.client.name" . }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +# Proxy + +{{- define "pushProxy.proxy.name" -}} +{{- printf "pushprox-%s-proxy" (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.proxy.labels" -}} +k8s-app: {{ template "pushProxy.proxy.name" . }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +# ServiceMonitor + +{{- define "pushprox.serviceMonitor.name" -}} +{{- printf "%s-%s" .Release.Name (required ".Values.component is required" .Values.component) -}} +{{- end -}} + +{{- define "pushProxy.serviceMonitor.labels" -}} +app: {{ template "pushprox.serviceMonitor.name" . }} +release: {{ .Release.Name | quote }} +{{ template "pushProxy.commonLabels" . }} +{{- end -}} + +{{- define "pushProxy.serviceMonitor.endpoints" -}} +{{- $proxyURL := (include "pushProxy.proxyUrl" .) -}} +{{- $useHTTPS := .Values.clients.https.enabled -}} +{{- $endpoints := .Values.serviceMonitor.endpoints }} +{{- range $endpoints }} +{{- $_ := set . "proxyUrl" $proxyURL }} +{{- if $useHTTPS -}} +{{- if (hasKey . "params") }} +{{- $_ := set (get . "params") "_scheme" (list "https") }} +{{- else }} +{{- $_ := set . "params" (dict "_scheme" (list "https")) }} +{{- end }} +{{- end }} +{{- end }} +{{- toYaml $endpoints }} +{{- end -}} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients-rbac.yaml new file mode 100644 index 000000000..f1a8e7232 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients-rbac.yaml @@ -0,0 +1,77 @@ +{{- if .Values.clients }}{{- if .Values.clients.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "pushProxy.client.name" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +rules: +- apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: + - {{ template "pushProxy.client.name" . }} +{{- if and .Values.clients.https.enabled .Values.clients.https.useServiceAccountCredentials }} +- nonResourceURLs: ["/metrics"] + verbs: ["get"] +{{- if .Values.clients.rbac.additionalRules }} +{{ toYaml .Values.clients.rbac.additionalRules }} +{{- end }} +{{- end }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "pushProxy.client.name" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "pushProxy.client.name" . }} +subjects: + - kind: ServiceAccount + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +spec: + privileged: false + hostNetwork: true + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + - min: 0 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + - min: 0 + max: 65535 + readOnlyRootFilesystem: false + volumes: + - 'secret' +{{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + - 'emptyDir' + - 'hostPath' + allowedHostPaths: + - pathPrefix: {{ required "Need access to volume on host with the SSL cert files to use HTTPs" .Values.clients.https.certDir }} + readOnly: true +{{- end }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients.yaml new file mode 100644 index 000000000..3775d17b8 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-clients.yaml @@ -0,0 +1,145 @@ +{{- if .Values.clients }}{{- if .Values.clients.enabled }} +apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} +kind: DaemonSet +{{- end }} +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} + pushprox-exporter: "client" +spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} + selector: + matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} + template: + metadata: + labels: {{ include "pushProxy.client.labels" . | nindent 8 }} + spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} + nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} +{{- if .Values.clients.nodeSelector }} +{{ toYaml .Values.clients.nodeSelector | indent 8 }} +{{- end }} + tolerations: {{ include "linux-node-tolerations" . | nindent 8 }} +{{- if .Values.clients.tolerations }} +{{ toYaml .Values.clients.tolerations | indent 8 }} +{{- end }} + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + serviceAccountName: {{ template "pushProxy.client.name" . }} + containers: + - name: pushprox-client + image: {{ template "system_default_registry" . }}{{ .Values.clients.image.repository }}:{{ .Values.clients.image.tag }} + command: + {{- range .Values.clients.command }} + - {{ . | quote }} + {{- end }} + args: + - --fqdn=$(HOST_IP) + - --proxy-url=$(PROXY_URL) + - --metrics-addr=$(PORT) + - --allow-port={{ required "Need .Values.metricsPort to configure client to be allowed to scrape metrics at port" .Values.metricsPort}} + {{- if .Values.clients.useLocalhost }} + - --use-localhost + {{- end }} + {{- if .Values.clients.https.enabled }} + {{- if .Values.clients.https.insecureSkipVerify }} + - --insecure-skip-verify + {{- end }} + {{- if .Values.clients.https.useServiceAccountCredentials }} + - --token-path=/var/run/secrets/kubernetes.io/serviceaccount/token + {{- end }} + {{- if .Values.clients.https.certDir }} + - --tls.cert=/etc/ssl/push-proxy/push-proxy.pem + - --tls.key=/etc/ssl/push-proxy/push-proxy-key.pem + - --tls.cacert=/etc/ssl/push-proxy/push-proxy-ca-cert.pem + {{- end }} + {{- end }} + env: + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: PORT + value: :{{ .Values.clients.port }} + - name: PROXY_URL + value: {{ template "pushProxy.proxyUrl" . }} + securityContext: + runAsNonRoot: true + runAsUser: 1000 + {{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + volumeMounts: + - name: metrics-cert-dir + mountPath: /etc/ssl/push-proxy + {{- end }} + {{- if .Values.clients.resources }} + resources: {{ toYaml .Values.clients.resources | nindent 10 }} + {{- end }} + {{- if and .Values.clients.https.enabled .Values.clients.https.certDir }} + initContainers: + - name: copy-certs + image: {{ template "system_default_registry" . }}{{ .Values.clients.copyCertsImage.repository }}:{{ .Values.clients.copyCertsImage.tag }} + command: + - sh + - -c + - | + echo "Searching for files to copy within the source volume" + echo "cert: ${CERT_FILE_NAME}" + echo "key: ${KEY_FILE_NAME}" + echo "cacert: ${CACERT_FILE_NAME}" + + CERT_FILE_SOURCE=$(find /etc/source/ -type f -name "${CERT_FILE_NAME}" | sort -r | head -n 1) + KEY_FILE_SOURCE=$(find /etc/source/ -type f -name "${KEY_FILE_NAME}" | sort -r | head -n 1) + CACERT_FILE_SOURCE=$(find /etc/source/ -type f -name "${CACERT_FILE_NAME}" | sort -r | head -n 1) + + test -z ${CERT_FILE_SOURCE} && echo "Failed to find cert file" && exit 1 + test -z ${KEY_FILE_SOURCE} && echo "Failed to find key file" && exit 1 + test -z ${CACERT_FILE_SOURCE} && echo "Failed to find cacert file" && exit 1 + + echo "Copying cert file from $CERT_FILE_SOURCE to $CERT_FILE_TARGET" + cp $CERT_FILE_SOURCE $CERT_FILE_TARGET || exit 1 + chmod 444 $CERT_FILE_TARGET || exit 1 + + echo "Copying key file from $KEY_FILE_SOURCE to $KEY_FILE_TARGET" + cp $KEY_FILE_SOURCE $KEY_FILE_TARGET || exit 1 + chmod 444 $KEY_FILE_TARGET || exit 1 + + echo "Copying cacert file from $CACERT_FILE_SOURCE to $CACERT_FILE_TARGET" + cp $CACERT_FILE_SOURCE $CACERT_FILE_TARGET || exit 1 + chmod 444 $CACERT_FILE_TARGET || exit 1 + env: + - name: CERT_FILE_NAME + value: {{ required "Need a TLS cert file for scraping metrics endpoint over HTTPs" .Values.clients.https.certFile }} + - name: KEY_FILE_NAME + value: {{ required "Need a TLS key file for scraping metrics endpoint over HTTPs" .Values.clients.https.keyFile }} + - name: CACERT_FILE_NAME + value: {{ required "Need a TLS CA cert file for scraping metrics endpoint over HTTPs" .Values.clients.https.caCertFile }} + - name: CERT_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy.pem + - name: KEY_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy-key.pem + - name: CACERT_FILE_TARGET + value: /etc/ssl/push-proxy/push-proxy-ca-cert.pem + securityContext: + runAsNonRoot: false + volumeMounts: + - name: metrics-cert-dir-source + mountPath: /etc/source + readOnly: true + - name: metrics-cert-dir + mountPath: /etc/ssl/push-proxy + volumes: + - name: metrics-cert-dir-source + hostPath: + path: {{ required "Need access to volume on host with the SSL cert files to use HTTPs" .Values.clients.https.certDir }} + - name: metrics-cert-dir + emptyDir: {} + {{- end }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy-rbac.yaml new file mode 100644 index 000000000..147eb4374 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy-rbac.yaml @@ -0,0 +1,63 @@ +{{- if and .Values.proxy }}{{ if .Values.proxy.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ template "pushProxy.proxy.name" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +rules: +- apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: + - {{ template "pushProxy.proxy.name" . }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "pushProxy.proxy.name" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "pushProxy.proxy.name" . }} +subjects: + - kind: ServiceAccount + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ include "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +spec: + privileged: false + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'MustRunAsNonRoot' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + - min: 1 + max: 65535 + readOnlyRootFilesystem: false + volumes: + - 'secret' +{{- end }}{{- end }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy.yaml new file mode 100644 index 000000000..571e13138 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-proxy.yaml @@ -0,0 +1,52 @@ +{{- if and .Values.proxy }}{{ if .Values.proxy.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} + pushprox-exporter: "proxy" +spec: + selector: + matchLabels: {{ include "pushProxy.proxy.labels" . | nindent 6 }} + template: + metadata: + labels: {{ include "pushProxy.proxy.labels" . | nindent 8 }} + spec: + securityContext: + runAsNonRoot: true + runAsUser: 1000 + nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} +{{- if .Values.proxy.nodeSelector }} +{{ toYaml .Values.proxy.nodeSelector | indent 8 }} +{{- end }} + tolerations: {{ include "linux-node-tolerations" . | nindent 8 }} +{{- if .Values.proxy.tolerations }} +{{ toYaml .Values.proxy.tolerations | indent 8 }} +{{- end }} + serviceAccountName: {{ template "pushProxy.proxy.name" . }} + containers: + - name: pushprox-proxy + image: {{ template "system_default_registry" . }}{{ .Values.proxy.image.repository }}:{{ .Values.proxy.image.tag }} + command: + {{- range .Values.proxy.command }} + - {{ . | quote }} + {{- end }} + {{- if .Values.proxy.resources }} + resources: {{ toYaml .Values.proxy.resources | nindent 10 }} + {{- end }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ template "pushProxy.proxy.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +spec: + ports: + - name: pp-proxy + port: {{ required "Need .Values.proxy.port to configure proxy" .Values.proxy.port }} + protocol: TCP + targetPort: {{ .Values.proxy.port }} + selector: {{ include "pushProxy.proxy.labels" . | nindent 4 }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-servicemonitor.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-servicemonitor.yaml new file mode 100644 index 000000000..7f961d6f4 --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/templates/pushprox-servicemonitor.yaml @@ -0,0 +1,33 @@ +{{- if .Values.serviceMonitor }}{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "pushprox.serviceMonitor.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.serviceMonitor.labels" . | nindent 4 }} +spec: + endpoints: {{include "pushProxy.serviceMonitor.endpoints" . | nindent 4 }} + jobLabel: component + podTargetLabels: + - component + - pushprox-exporter + namespaceSelector: + matchNames: + - {{ template "pushprox.namespace" . }} + selector: + matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ template "pushProxy.client.name" . }} + namespace: {{ template "pushprox.namespace" . }} + labels: {{ include "pushProxy.client.labels" . | nindent 4 }} +spec: + ports: + - name: metrics + port: {{ required "Need .Values.metricsPort to configure client to listen to metrics at port" .Values.metricsPort}} + protocol: TCP + targetPort: {{ .Values.metricsPort }} + selector: {{ include "pushProxy.client.labels" . | nindent 4 }} +{{- end }}{{- end }} \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/values.yaml new file mode 100644 index 000000000..6ad1eab4d --- /dev/null +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeIngressNginx/values.yaml @@ -0,0 +1,111 @@ +# Default values for rancher-pushprox. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# Default image containing both the proxy and the client was generated from the following Dockerfile +# https://github.com/prometheus-community/PushProx/blob/eeadbe766641699129920ccfaaaa30a85c67fe81/Dockerfile#L1-L15 + +# Note: if using a cloud provider, the nodes that contain the PushProxy client must allow the node(s) that contain(s) +# the PushProxy proxy to communicate with it on port {{ .Values.clients.port }}. If you have special restrictions, +# (i.e. client should only run on etcd nodes and only control plane should have access to the port on the etcd node), +# you will need to set the clients / proxy nodeSelector and tolerations accordingly + +# Configuration + +global: + cattle: + systemDefaultRegistry: "" + +namespaceOverride: "" + +# The component that is being monitored (i.e. etcd) +component: "component" + +# The port containing the metrics that need to be scraped +metricsPort: 2739 + +# Configure ServiceMonitor that monitors metrics from the metricsPort endpoint +serviceMonitor: + enabled: true + # A list of endpoints that will be added to the ServiceMonitor based on the Endpoint spec + # Source: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#endpoint + # By default, proxyUrl and params._scheme will be overridden based on other values + endpoints: + - port: metrics + +clients: + enabled: true + # The port which the PushProx client will post PushProx metrics to + port: 9369 + # If unset, this will default to the URL for the proxy service: http://pushprox-{{component}}-proxy.{{namepsace}}.svc.cluster.local:{{proxy.port}} + # Should be modified if the clients are being deployed outside the cluster where the proxy rests, otherwise leave it null + proxyUrl: "" + # If set to true, the client will forward any requests from the host IP to 127.0.0.1 + # It will only allow proxy requests to the metricsPort specified + useLocalhost: false + # Configuration for accessing metrics via HTTPS + https: + # Does the client require https to access the metrics? + enabled: false + # If set to true, the client will create a service account with adequate permissions and set a flag + # on the client to use the service account token provided by it to make authorized scrape requests + useServiceAccountCredentials: false + # If set to true, the client will disable SSL security checks + insecureSkipVerify: false + # Directory on host where necessary TLS cert and key to scrape metrics can be found + certDir: "" + # Filenames for files located in .Values.clients.https.certDir that correspond to TLS settings + certFile: "" + keyFile: "" + caCertFile: "" + + rbac: + # Additional permissions to provide to the ServiceAccount bound to the client + # This can be used to provide additional permissions for the client to scrape metrics from the k8s API + # Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true + additionalRules: [] + + # Resource limits + resources: {} + + # Options to select all nodes to deploy client DaemonSet on + nodeSelector: {} + tolerations: [] + affinity: {} + + image: + repository: rancher/pushprox-client + tag: v0.1.0-rancher2-client + command: ["pushprox-client"] + + copyCertsImage: + repository: rancher/mirrored-library-busybox + tag: 1.31.1 + + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + +proxy: + enabled: true + # The port through which PushProx clients will communicate to the proxy + port: 8080 + + # Resource limits + resources: {} + + # Options to select a node to run a single proxy deployment on + nodeSelector: {} + tolerations: [] + + image: + repository: rancher/pushprox-proxy + tag: v0.1.0-rancher2-proxy + command: ["pushprox-proxy"] \ No newline at end of file diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeProxy/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/README.md b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/README.md index ad14761d0..0530c56aa 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/README.md +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/README.md @@ -24,6 +24,7 @@ The following tables list the configurable parameters of the rancher-pushprox ch | ----- | ----------- | ------ | | `component` | The component that is being monitored | `kube-etcd` | `metricsPort` | The port on the host that contains the metrics you want to scrape (e.g. `http://:/metrics`) | `2379` | +| `namespaceOverride` | The namespace to install the chart | `""` #### Optional | Parameter | Description | Default | @@ -42,6 +43,9 @@ The following tables list the configurable parameters of the rancher-pushprox ch | `clients.https.keyFile` | The path to the TLS key file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.https.caCertFile` | The path to the TLS cacert file located within `clients.https.certDir`. Required and only used if `clients.https.enabled` is set | `""` | | `clients.rbac.additionalRules` | Additional permissions to provide to the ServiceAccount bound to the client. This can be used to provide additional permissions for the client to scrape metrics from the k8s API. Only enabled if clients.https.enabled and clients.https.useServiceAccountCredentials are true | `[]` | +| `clients.deployment.enabled` | Deploys the client as a Deployment (generally used if the underlying hostNetwork Pod that is being scraped is managed by a Deployment) | `false` | +| `clients.deployment.replicas` | The number of pods the Deployment has, it should match the number of pod the hostNetwork Deployment has. Required and only used if `client.deployment.enable` is set | `0` | +| `clients.deployment.affinity` | The affinity rules that allocate the pod to the node in which the hostNetwork Deployment's pods run. Required and only used if `client.deployment.enable` is set | `{}` | | `clients.resources` | Set resource limits and requests for the client container | `{}` | | `clients.nodeSelector` | Select which nodes to deploy the clients on | `{}` | | `clients.tolerations` | Specify tolerations for clients | `[]` | diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/_helpers.tpl b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/_helpers.tpl index b404126e3..458ad21cd 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/_helpers.tpl +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/_helpers.tpl @@ -49,7 +49,7 @@ provider: kubernetes {{- if .Values.clients.proxyUrl -}} {{ printf "%s" .Values.clients.proxyUrl }} {{- else -}} -{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) .Release.Namespace (int .Values.proxy.port) }} +{{ printf "http://%s.%s.svc:%d" (include "pushProxy.proxy.name" .) (include "pushprox.namespace" .) (int .Values.proxy.port) }} {{- end -}}{{- end -}} # Client diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients-rbac.yaml index 0f5a377ee..f1a8e7232 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients-rbac.yaml @@ -30,20 +30,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.client.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients.yaml index ed78792e5..3775d17b8 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-clients.yaml @@ -1,18 +1,28 @@ {{- if .Values.clients }}{{- if .Values.clients.enabled }} apiVersion: apps/v1 +{{- if .Values.clients.deployment.enabled }} +kind: Deployment +{{- else }} kind: DaemonSet +{{- end }} metadata: name: {{ template "pushProxy.client.name" . }} namespace: {{ template "pushprox.namespace" . }} labels: {{ include "pushProxy.client.labels" . | nindent 4 }} pushprox-exporter: "client" spec: + {{- if .Values.clients.deployment.enabled }} + replicas: {{ .Values.clients.deployment.replicas }} + {{- end }} selector: matchLabels: {{ include "pushProxy.client.labels" . | nindent 6 }} template: metadata: labels: {{ include "pushProxy.client.labels" . | nindent 8 }} spec: + {{- if .Values.clients.affinity }} + affinity: {{ toYaml .Values.clients.affinity | nindent 8 }} + {{- end }} nodeSelector: {{ include "linux-node-selector" . | nindent 8 }} {{- if .Values.clients.nodeSelector }} {{ toYaml .Values.clients.nodeSelector | indent 8 }} diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-proxy-rbac.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-proxy-rbac.yaml index a3509c160..147eb4374 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-proxy-rbac.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/templates/pushprox-proxy-rbac.yaml @@ -23,20 +23,20 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} --- apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: {{ template "pushProxy.proxy.name" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "pushprox.namespace" . }} labels: {{ include "pushProxy.proxy.labels" . | nindent 4 }} spec: privileged: false diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/values.yaml index 5459dcdc0..6ad1eab4d 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/charts/rkeScheduler/values.yaml @@ -16,6 +16,8 @@ global: cattle: systemDefaultRegistry: "" +namespaceOverride: "" + # The component that is being monitored (i.e. etcd) component: "component" @@ -69,6 +71,7 @@ clients: # Options to select all nodes to deploy client DaemonSet on nodeSelector: {} tolerations: [] + affinity: {} image: repository: rancher/pushprox-client @@ -79,6 +82,17 @@ clients: repository: rancher/mirrored-library-busybox tag: 1.31.1 + # The default intention of rancher-pushprox clients is to scrape hostNetwork metrics across all nodes. + # This can be used to scrape internal Kubernetes components or DaemonSets of hostNetwork Pods in + # situations where a cloud provider firewall prevents Pod-To-Host communication but not Pod-To-Pod. + # However, if the underlying hostNetwork Pod that is being scraped is managed by a Deployment, + # this advanced option enables users to deploy the client as a Deployment instead of a DaemonSet. + # If a user deploys this feature and the underlying Deployment's number of replicas changes, the user will + # be responsible for upgrading this chart accordingly to the right number of replicas. + deployment: + enabled: false + replicas: 0 + proxy: enabled: true # The port through which PushProx clients will communicate to the proxy diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml index 20c57dd2a..7b51a0bf7 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/dashboards/addons/ingress-nginx-dashboard.yaml @@ -1,12 +1,12 @@ -# Source: {{- if and .Values.grafana.enabled .Values.grafana.defaultDashboardsEnabled .Values.ingressNginx.enabled }} apiVersion: v1 kind: ConfigMap metadata: namespace: {{ .Values.grafana.defaultDashboards.namespace }} name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) "ingress-nginx" | trunc 63 | trimSuffix "-" }} - annotations: -{{ toYaml .Values.grafana.sidecar.dashboards.annotations | indent 4 }} + {{- if .Values.grafana.sidecar.dashboards.annotations }} + annotations: {{ toYaml .Values.grafana.sidecar.dashboards.annotations | nindent 4 }} + {{- end }} labels: {{- if $.Values.grafana.sidecar.dashboards.label }} {{ $.Values.grafana.sidecar.dashboards.label }}: "1" diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml index d256576ad..53a9ad689 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/service.yaml @@ -1,4 +1,7 @@ -{{- if .Values.ingressNginx.enabled }} +{{- if and (not .Values.ingressNginx.enabled) (.Values.rkeIngressNginx.enabled) }} +{{- fail "Cannot set .Values.rkeIngressNginx.enabled=true when .Values.ingressNginx.enabled=false" }} +{{- end }} +{{- if and .Values.ingressNginx.enabled (not .Values.rkeIngressNginx.enabled) }} apiVersion: v1 kind: Service metadata: diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml index 643778772..a42f46e5c 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/templates/rancher-monitoring/exporters/ingress-nginx/servicemonitor.yaml @@ -1,4 +1,7 @@ -{{- if .Values.ingressNginx.enabled }} +{{- if and (not .Values.ingressNginx.enabled) (.Values.rkeIngressNginx.enabled) }} +{{- fail "Cannot set .Values.rkeIngressNginx.enabled=true when .Values.ingressNginx.enabled=false" }} +{{- end }} +{{- if and .Values.ingressNginx.enabled (not .Values.rkeIngressNginx.enabled) }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: diff --git a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/values.yaml b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/values.yaml index dbc4c2655..fc6a6240a 100644 --- a/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/values.yaml +++ b/charts/rancher-monitoring/rancher-monitoring/14.5.101+up14.5.0/values.yaml @@ -82,6 +82,21 @@ rkeEtcd: - effect: "NoSchedule" operator: "Exists" +rkeIngressNginx: + enabled: false + metricsPort: 10254 + component: ingress-nginx + clients: + port: 10015 + useLocalhost: true + tolerations: + - effect: "NoExecute" + operator: "Exists" + - effect: "NoSchedule" + operator: "Exists" + nodeSelector: + node-role.kubernetes.io/worker: "true" + ## k3s PushProx Monitoring ## ref: https://github.com/rancher/charts/tree/dev-v2.5-source/packages/rancher-pushprox ## @@ -258,6 +273,39 @@ rke2Etcd: - effect: "NoSchedule" operator: "Exists" +rke2IngressNginx: + enabled: false + metricsPort: 10254 + component: ingress-nginx + clients: + port: 10015 + useLocalhost: true + tolerations: + - effect: "NoExecute" + operator: "Exists" + - effect: "NoSchedule" + operator: "Exists" + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: "app.kubernetes.io/component" + operator: "In" + values: + - "controller" + topologyKey: "kubernetes.io/hostname" + namespaces: + - "kube-system" + # in the RKE2 cluster, the ingress-nginx-controller is deployed as + # a Deployment with 1 pod when RKE2 version is <= 1.20, + # a DaemonSet when RKE2 version is >= 1.21 + deployment: + enabled: false + replicas: 1 + + + ## Additional PushProx Monitoring ## ref: https://github.com/rancher/charts/tree/dev-v2.5-source/packages/rancher-pushprox ##