-
Notifications
You must be signed in to change notification settings - Fork 274
[Helm chart] Refactoring scheduling methods #4706
Conversation
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Codecov Report
@@ Coverage Diff @@
## main #4706 +/- ##
==========================================
- Coverage 69.56% 69.53% -0.04%
==========================================
Files 220 223 +3
Lines 15800 15941 +141
==========================================
+ Hits 10992 11085 +93
- Misses 4758 4805 +47
- Partials 50 51 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
charts/osm/values.yaml
Outdated
@@ -166,13 +229,16 @@ osm: | |||
enableReconciler: false | |||
|
|||
# -- Deploy Prometheus with OSM installation | |||
deployPrometheus: false | |||
deployPrometheus: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the reasoning for changing the default values for deploying Prometheus, Grafana, Jaeger, and fluentbit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An error. Fixed
@nlamirault can you also share the full |
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
@nshankar13 can i only generate manifests from CLI ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @nlamirault for this change. Could you address the following comments:
- Describe in the PR description what additional testing was done
- Update the release notes to reflect the breaking changes to existing Helm chart values.
@nlamirault manifests/configs not needed, just need to ensure that installation succeeded and that all pods in OSM release namespace are ready. |
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
My tests was :
kubectl edit to change amd64 to arm64 :
Then update the chart, and check differences : with https://github.com/Wilfred/difftastic :
with diff :
I will try to delete my setup and install the chart with arm64 values. |
|
@nlamirault The release notes aren't updated as requested. This is important because this PR is a breaking change to install options. |
@shashankram how i update the release note ? |
@nlamirault You need to make changes to that file by adding a section for v1.2.0 and listing the breaking changes. |
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this change @nlamirault! Left a few comments inline.
- key: kubernetes.io/arch | ||
operator: In | ||
values: | ||
- amd64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say let's add arm64
here since all of the OSM images we publish will also work on arm64.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. I add arm64
in other podAntiAffinity also.
@@ -88,6 +88,41 @@ osm: | |||
# -- Average target memory utilization (%) | |||
targetAverageUtilization: 80 | |||
|
|||
## Node labels for pod assignment | |||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/ | |||
nodeSelector: {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the sake of not having multiple ways of doing the same thing, I would vote to only expose affinity
in the values here and remove nodeSelector
.
charts/osm/values.yaml
Outdated
|
||
## Affinity settings for pod assignment | ||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | ||
affinity: {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the Promtheus image we're using by default has support for several different architectures, let's define all of them as acceptable here instead of just amd64 in nodeSelector
: https://hub.docker.com/layers/prometheus/prom/prometheus/v2.34.0/images/sha256-cb42332b66ac51a05c52f255e48a4496c0a172676093123bf28b37762009e78a?context=explore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So only :
nodeSelector:
kubernetes.io/arch: amd64
I think Prometheus images are multi arch now ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean let's define all of the architectures supported by the Prometheus image in the nodeAffinity
here and remove the nodeSelector
.
"title": "The preinstall schema", | ||
"description": "Preinstall configurations", | ||
"required": [], | ||
"properties": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also add "additionalProperties": false
to these to match everything else.
…on arm64 Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
charts/osm/values.yaml
Outdated
|
||
## Affinity settings for pod assignment | ||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | ||
affinity: {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean let's define all of the architectures supported by the Prometheus image in the nodeAffinity
here and remove the nodeSelector
.
charts/osm/values.yaml
Outdated
|
||
## Affinity settings for pod assignment | ||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | ||
affinity: {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's do the same as Prometheus here and define all of the architectures supported by the image here in nodeAffinity
.
## Node labels for pod assignment | ||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/ | ||
nodeSelector: | ||
kubernetes.io/arch: amd64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shashankram The envoy-alpine image is only built for amd64. Do you see any issues if we specify envoyproxy/envoy
as the default sidecar image instead which also supports arm64?
## Node labels for pod assignment | ||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/ | ||
nodeSelector: | ||
kubernetes.io/arch: amd64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This image also supports arm64, so let's define both amd64 and arm64 as acceptable in the nodeAffinity
.
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com>
PR also addresses #4496 |
@nlamirault Please let us know if we can provide more information on the outstanding comments! |
Created #4842 to address comments in this PR - closing this PR |
Description: Currently we can't customize affinity, nodeSelectors or tolerations.
This makes it impossible to deploy OSM on an ARM64 cluster.
#4702
Testing done:
Affected area:
Please answer the following questions with yes/no.
Does this change contain code from or inspired by another project?
Is this a breaking change?
Has documentation corresponding to this change been updated in the osm-docs repo (if applicable)?
Yes into the chart README.