-
Notifications
You must be signed in to change notification settings - Fork 959
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the helm chart for vineyard runtime. #3624
Add the helm chart for vineyard runtime. #3624
Conversation
Hi @dashanji. Thanks for your PR. I'm waiting for a fluid-cloudnative member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@@ -130,11 +130,6 @@ master: | |||
# mountPath: /data/secrets/mySecretVolume/ | |||
# - name: myConfigMapVolume | |||
# mountPath: /data/configmap/myConfigMapVolume/ | |||
# volumeMounts: |
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.
Why do you need to change alluxio chart?
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 find it's a dummy part here.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3624 +/- ##
=======================================
Coverage 64.26% 64.26%
=======================================
Files 443 443
Lines 26755 26755
=======================================
Hits 17194 17194
Misses 7546 7546
Partials 2015 2015 ☔ View full report in Codecov by Sentry. |
{{- $fullName := include "vineyard.fullname" . }} | ||
{{- $chart := include "vineyard.chart" . }} | ||
|
||
{{- if not .Values.master.externalEndpoint }} |
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.
Could you provide the reason of providing both service and headless service reason for master?
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.
The headless service is used for internal communication between master pods, and the service provides external access entry for worker.
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.
Is it imperative to use different ways to access master pods from masters and workers? According to my knowledge, Kubernetes API Server connects multiple endpoints.
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, I will try to use the headless service only.
@@ -0,0 +1,91 @@ | |||
# Copyright 2020-2023 Alibaba Group Holding Limited. |
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.
Could you use fluid copyright once contributing this to fluid project.
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.
Okay.
@@ -0,0 +1,124 @@ | |||
# Copyright 2020-2023 Alibaba Group Holding Limited. |
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.
Ditto
image: {{ .Values.master.image }}:{{ .Values.master.imageTag }} | ||
imagePullPolicy: {{ .Values.master.imagePullPolicy }} | ||
securityContext: | ||
privileged: 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 reason of using privileged.
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 pointing out. It should be false via https://github.com/bitnami/charts/blob/main/bitnami/etcd/values.yaml#L317.
@cheyang, could you please take a look at this? |
a16c94b
to
b841f50
Compare
aea1520
to
39b22bf
Compare
* Add an option for worker to wait for the master ready. * Delete the option 'etcd.prefix' in ExternalEndpoint as user can set it in the worker's options. * Add the kubebuilder markers to the vineyard runtime API. Signed-off-by: Ye Cao <[email protected]>
39b22bf
to
604f676
Compare
requiredDuringSchedulingIgnoredDuringExecution: | ||
- labelSelector: | ||
matchExpressions: | ||
- key: app.kubernetes.io/instance |
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.
The label app.kubernetes.io/instance
seems missing in Vineyard worker's Pod metadata?
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.
That's my fault. Thanks for pointing out.
- key: app.kubernetes.io/instance | ||
operator: In | ||
values: | ||
- {{ .Release.Namespace -}} - {{- .Release.Name }} |
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.
How about using
- {{ .Release.Namespace -}} - {{- .Release.Name }} | |
- {{ .Release.Namespace }}-{{ .Release.Name }} |
- /bin/bash | ||
- -c | ||
- > | ||
/usr/local/bin/vineyardd | ||
--socket /var/run/vineyard/vineyard.sock | ||
--size {{ include "vineyard.worker.size" . }} | ||
{{- if eq (toString (index .Values.worker.options "vineyardd.reserve.memory")) "true" }} | ||
--reserve_memory | ||
{{- end }} | ||
--meta_timeout {{ default "120" (index .Values.worker.options "wait.etcd.timeout") }} | ||
--etcd_prefix {{ default "/vineyard" (index .Values.worker.options "etcd.prefix") }} | ||
--etcd_endpoint {{ include "vineyard.master.endpoint" . }} | ||
{{- if eq (include "vineyard.checkTieredStore" .) "true" }} | ||
--spill_path {{ include "vineyard.spill.path" . }} | ||
--spill_lower_rate {{ include "vineyard.spill.lowerRate" . }} | ||
--spill_upper_rate {{ include "vineyard.spill.upperRate" . }} | ||
{{- end }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think better to directly use /usr/local/bin/vineyard
as the entrypoint command. Seems that bash -c
is not necessary here.
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.
Signed-off-by: Ye Cao <[email protected]>
kind: VineyardRuntime | ||
listKind: VineyardRuntimeList | ||
plural: vineyardruntimes | ||
shortNames: | ||
- vineyard |
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.
How about using v6d for shortname?
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.
Just kidding. You can decide by yourself.
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.
How about using v6d for shortname?
Make sense.
Signed-off-by: Ye Cao <[email protected]>
e3a773e
to
bd96909
Compare
Quality Gate passedKudos, no new issues were introduced! 0 New issues |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cheyang, TrafalgarZZZ The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
* * Add the helm chart for Vineyard Runtime. * Add an option for worker to wait for the master ready. * Delete the option 'etcd.prefix' in ExternalEndpoint as user can set it in the worker's options. * Add the kubebuilder markers to the vineyard runtime API. Signed-off-by: Ye Cao <[email protected]> * Add the app.kubernetes.io/instance label to the vineyard worker. Signed-off-by: Ye Cao <[email protected]> * Change the short name of vineyard to v6d. Signed-off-by: Ye Cao <[email protected]> --------- Signed-off-by: Ye Cao <[email protected]>
privileged: false | ||
command: | ||
- etcd | ||
- --name=$(POD_NAME) |
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.
Do we have to give a full url like <pod_name>.<svc_name>.namespace.svc.cluster.local, I'm not sure if users may have customized domain intead of svc.cluster.local
?
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.
Do you mean --name=<pod_name>.<svc_name>.namespace.svc.cluster.local
? Actually, the name is just used in the internal etcd cluster.
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.
Do you mean
--name=<pod_name>.<svc_name>.namespace.svc.cluster.local
?
Yes, willcluster.local
be configured globally in coreDNS config? Refering to https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options. I'm not sure if it can be modified.
- --listen-peer-urls=http://0.0.0.0:{{ $peerPort }} | ||
- --advertise-client-urls=http://$(POD_NAME).{{ $etcdServiceName }}.{{ .Release.Namespace }}.svc.cluster.local:{{ $clientPort }} | ||
- --listen-client-urls=http://0.0.0.0:{{ $clientPort }} | ||
- --initial-cluster-token=my-etcd-cluster |
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.
Replacing it with a helm release related name looks better to me.
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.
Make sense to me.
{{- range $e, $i := until $replicas }} | ||
{{- $initialCluster = append $initialCluster (printf "%s-%d=http://%s-%d.%s.%s.svc.cluster.local:%d" $etcdFullname $i $etcdFullname $i $etcdServiceName $releaseNamespace $peerPort) }} | ||
{{- end }} | ||
- --initial-cluster={{ join "," $initialCluster }} |
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.
Is it possible to reuse the helm func {{ include "vineyard.master.endpoint" . }}
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, "vineyard.master.endpoint"
use the client port, but we need the peer port here. We could make the helm func suitable for the master port and the client port.
claimName: {{ .name }} | ||
{{- else }} | ||
- name: {{ $mediumName }} | ||
emptyDir: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should consider mediumtype for emptyDir? when mediumtype=="MEM", emptyDir.meidum should be "Memory"
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.
Okay.
@@ -0,0 +1,17 @@ | |||
apiVersion: v1 | |||
appVersion: 0.18.2 | |||
version: 0.18.2 |
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.
Better not relate version
to appVersion
according to Helm‘s doc .
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.
Make sense. Thanks.
Ⅰ. Describe what this PR does
Add the helm chart for vineyard runtime including the master, worker and fuse.
Ⅱ. Does this pull request fix one issue?
A follow-up of #3555 and fix parts of #3528