diff --git a/deploy/charts/dragonfly/README.md b/deploy/charts/dragonfly/README.md index 9bd1665b2..689715f7b 100644 --- a/deploy/charts/dragonfly/README.md +++ b/deploy/charts/dragonfly/README.md @@ -21,7 +21,6 @@ The following table lists the configurable parameters of the dragonfly chart, an | Parameter | Description | Default | | ----------------------------------------- | ------------------------------------------------------------ | ----------------------------- | -| `installation.namespace` | namespace for dragonfly installation | `dragonfly-system` | | `installation.jaeger` | whether enable an all in one jaeger for tracing | `false` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. @@ -29,7 +28,7 @@ Specify each parameter using the `--set key=value[,key=value]` argument to `helm For example: ```shell -helm install dragonfly https://... --set installation.namespace=kube-system +helm install --namespace dragonfly-system dragonfly https://... ``` ## Reference diff --git a/deploy/charts/dragonfly/templates/NOTES.txt b/deploy/charts/dragonfly/templates/NOTES.txt index e3d5412ba..0ea8d42e8 100644 --- a/deploy/charts/dragonfly/templates/NOTES.txt +++ b/deploy/charts/dragonfly/templates/NOTES.txt @@ -1,30 +1,30 @@ 1. [WIP] Get the scheduler URL by running these commands: {{- if contains "NodePort" .Values.scheduler.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Values.installation.namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "dragonfly.scheduler.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Values.installation.namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT=$(kubectl get --namespace {{ template "dragonfly.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "dragonfly.scheduler.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ template "dragonfly.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.scheduler.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Values.installation.namespace }} svc -w {{ include "dragonfly.scheduler.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Values.installation.namespace }} {{ include "dragonfly.scheduler.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + You can watch the status of by running 'kubectl get --namespace {{ template "dragonfly.namespace" . }} svc -w {{ include "dragonfly.scheduler.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ template "dragonfly.namespace" . }} {{ include "dragonfly.scheduler.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") echo http://$SERVICE_IP:{{ .Values.scheduler.service.port }} {{- else if contains "ClusterIP" .Values.scheduler.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Values.installation.namespace }} -l "app={{ include "dragonfly.scheduler.fullname" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Values.installation.namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + export POD_NAME=$(kubectl get pods --namespace {{ template "dragonfly.namespace" . }} -l "app={{ include "dragonfly.scheduler.fullname" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ template "dragonfly.namespace" . }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:8002 to use your scheduler" - kubectl --namespace {{ .Values.installation.namespace }} port-forward $POD_NAME 8002:$CONTAINER_PORT + kubectl --namespace {{ template "dragonfly.namespace" . }} port-forward $POD_NAME 8002:$CONTAINER_PORT {{- end }} 2. Get the dfdaemon port by running these commands: - export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Values.installation.namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ template "dragonfly.namespace" . }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") You can use $CONTAINER_PORT as a proxy port in Node. 3. Configure runtime to use dragonfly: https://github.com/dragonflyoss/Dragonfly2/blob/main/docs/en/user-guide/quick-start.md {{ if .Values.installation.jaeger }} 4. Get Jaeger query URL by running these commands: - export JAEGER_QUERY_PORT=$(kubectl --namespace {{ .Values.installation.namespace }} get services jaeger-all-in-one-query -o jsonpath="{.spec.ports[0].port}") - export JAEGER_QUERY_POD=$(kubectl --namespace {{ .Values.installation.namespace }} get pod -l app.kubernetes.io/name=jaeger-all-in-one -o jsonpath='{range .items[*]}{.metadata.name}{end}' | head -n 1) - kubectl --namespace {{ .Values.installation.namespace }} port-forward $JAEGER_QUERY_POD 16686:$JAEGER_QUERY_PORT + export JAEGER_QUERY_PORT=$(kubectl --namespace {{ template "dragonfly.namespace" . }} get services jaeger-all-in-one-query -o jsonpath="{.spec.ports[0].port}") + export JAEGER_QUERY_POD=$(kubectl --namespace {{ template "dragonfly.namespace" . }} get pod -l app.kubernetes.io/name=jaeger-all-in-one -o jsonpath='{range .items[*]}{.metadata.name}{end}' | head -n 1) + kubectl --namespace {{ template "dragonfly.namespace" . }} port-forward $JAEGER_QUERY_POD 16686:$JAEGER_QUERY_PORT echo "Visit http://127.0.0.1:16686/search?limit=20&lookback=1h&maxDuration&minDuration&service=dragonfly to query download events" -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deploy/charts/dragonfly/templates/_helpers.tpl b/deploy/charts/dragonfly/templates/_helpers.tpl index 3993a51a2..c8f7bad2b 100644 --- a/deploy/charts/dragonfly/templates/_helpers.tpl +++ b/deploy/charts/dragonfly/templates/_helpers.tpl @@ -6,6 +6,17 @@ Expand the name of the chart. {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Allow the release namespace to be overridden for multi-namespace in combined charts +*/}} +{{- define "dragonfly.namespace" -}} + {{- if ne .Release.Namespace "default" -}} + {{- .Release.Namespace -}} + {{- else if .Values.namespaceOverride -}} + {{- .Values.namespaceOverride -}} + {{- end -}} +{{- end -}} + {{/* Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). diff --git a/deploy/charts/dragonfly/templates/cdn/cdn-configmap.yaml b/deploy/charts/dragonfly/templates/cdn/cdn-configmap.yaml index aad503171..058ca8dbe 100644 --- a/deploy/charts/dragonfly/templates/cdn/cdn-configmap.yaml +++ b/deploy/charts/dragonfly/templates/cdn/cdn-configmap.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ template "dragonfly.cdn.fullname" . }} - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} labels: app: {{ template "dragonfly.fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" diff --git a/deploy/charts/dragonfly/templates/cdn/cdn-rabc.yaml b/deploy/charts/dragonfly/templates/cdn/cdn-rabc.yaml index f5c246676..ceb175401 100644 --- a/deploy/charts/dragonfly/templates/cdn/cdn-rabc.yaml +++ b/deploy/charts/dragonfly/templates/cdn/cdn-rabc.yaml @@ -3,7 +3,7 @@ kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: {{template "dragonfly.cdn.fullname" . }}-role - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} rules: - apiGroups: - "" @@ -22,7 +22,7 @@ kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: {{template "dragonfly.cdn.fullname" . }}-role-binding - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} roleRef: kind: Role name: {{template "dragonfly.cdn.fullname" . }}-role @@ -30,4 +30,4 @@ roleRef: subjects: - kind: ServiceAccount name: {{template "dragonfly.cdn.fullname" . }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deploy/charts/dragonfly/templates/cdn/cdn-serviceaccount.yaml b/deploy/charts/dragonfly/templates/cdn/cdn-serviceaccount.yaml index 583981325..eb5d9231c 100644 --- a/deploy/charts/dragonfly/templates/cdn/cdn-serviceaccount.yaml +++ b/deploy/charts/dragonfly/templates/cdn/cdn-serviceaccount.yaml @@ -2,4 +2,4 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{template "dragonfly.cdn.fullname" . }} - namespace: {{ .Values.installation.namespace }} \ No newline at end of file + namespace: {{ template "dragonfly.namespace" . }} diff --git a/deploy/charts/dragonfly/templates/cdn/cdn-statefulset.yaml b/deploy/charts/dragonfly/templates/cdn/cdn-statefulset.yaml index d75392524..e2ba0cb26 100644 --- a/deploy/charts/dragonfly/templates/cdn/cdn-statefulset.yaml +++ b/deploy/charts/dragonfly/templates/cdn/cdn-statefulset.yaml @@ -8,7 +8,7 @@ metadata: heritage: {{ .Release.Service }} release: {{ .Release.Name }} name: {{ template "dragonfly.cdn.fullname" . }} - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} {{- if .Values.cdn.statefulsetAnnotations }} annotations: {{ toYaml .Values.cdn.statefulsetAnnotations | indent 4 }} diff --git a/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-configmap.yaml b/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-configmap.yaml index 52e08b2b9..118d29ee0 100644 --- a/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-configmap.yaml +++ b/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-configmap.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ template "dragonfly.dfdaemon.fullname" . }} - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} labels: app: {{ template "dragonfly.fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" @@ -17,14 +17,14 @@ data: {{- if .Values.dfdaemon.config.jaeger }} jaeger: {{ .Values.dfdaemon.config.jaeger }} {{- else if .Values.installation.jaeger }} - jaeger: http://jaeger-all-in-one-collector.{{ $.Values.installation.namespace }}.svc{{ $.Values.installation.clusterDomain }}:14268/api/traces + jaeger: http://jaeger-all-in-one-collector.{{ template "dragonfly.namespace" $ }}.svc{{ $.Values.installation.clusterDomain }}:14268/api/traces {{- end }} scheduler: netAddrs: {{- $count := .Values.scheduler.replicas | int}} {{- range $i, $x := until $count }} - type: tcp - addr: {{template "dragonfly.scheduler.fullname" $ }}-{{$i}}.{{ $.Values.installation.namespace }}.svc{{ $.Values.installation.clusterDomain }}:{{ $.Values.scheduler.service.port }} + addr: {{template "dragonfly.scheduler.fullname" $ }}-{{$i}}.{{ template "dragonfly.namespace" $ }}.svc{{ $.Values.installation.clusterDomain }}:{{ $.Values.scheduler.service.port }} {{- end }} scheduleTimeout: 5m host: diff --git a/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-daemonset.yaml b/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-daemonset.yaml index d842c4c2b..e9928f7ec 100644 --- a/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-daemonset.yaml +++ b/deploy/charts/dragonfly/templates/dfdaemon/dfdaemon-daemonset.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: {{ template "dragonfly.dfdaemon.fullname" . }} - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} labels: app: {{ template "dragonfly.dfdaemon.fullname" . }} chart: {{ .Chart.Name }}-{{ .Chart.Version }} diff --git a/deploy/charts/dragonfly/templates/jaeger.yaml b/deploy/charts/dragonfly/templates/jaeger.yaml index ec4ad37c6..a0b7c104a 100644 --- a/deploy/charts/dragonfly/templates/jaeger.yaml +++ b/deploy/charts/dragonfly/templates/jaeger.yaml @@ -9,7 +9,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} --- @@ -23,7 +23,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-ui-configuration app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-ui-configuration - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} data: ui: |- { @@ -52,7 +52,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-sampling-configuration app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-sampling-configuration - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} data: sampling: |- { @@ -74,7 +74,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-collector app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-collector-headless - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} spec: clusterIP: None ports: @@ -109,7 +109,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-collector app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-collector - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} spec: ports: - name: http-zipkin @@ -143,7 +143,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-query app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-query - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} spec: ports: - name: http-query @@ -168,7 +168,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one-agent app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one-agent - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} spec: clusterIP: None ports: @@ -206,7 +206,7 @@ metadata: app.kubernetes.io/name: jaeger-all-in-one app.kubernetes.io/part-of: jaeger name: jaeger-all-in-one - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} spec: selector: matchLabels: @@ -294,4 +294,4 @@ spec: path: sampling.json name: jaeger-all-in-one-sampling-configuration name: jaeger-all-in-one-sampling-configuration-volume -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deploy/charts/dragonfly/templates/namespace.yaml b/deploy/charts/dragonfly/templates/namespace.yaml index c55afd71c..b6d8272d1 100644 --- a/deploy/charts/dragonfly/templates/namespace.yaml +++ b/deploy/charts/dragonfly/templates/namespace.yaml @@ -1,6 +1,6 @@ -{{- if ne $.Values.installation.namespace "kube-system" }} +{{- if ne $.Release.Namespace $.Values.namespaceOverride }} apiVersion: v1 kind: Namespace metadata: - name: {{ $.Values.installation.namespace }} -{{- end }} \ No newline at end of file + name: {{ template "dragonfly.namespace" $ }} +{{- end }} diff --git a/deploy/charts/dragonfly/templates/scheduler/scheduler-configmap.yaml b/deploy/charts/dragonfly/templates/scheduler/scheduler-configmap.yaml index 920ea0516..59cd324c2 100644 --- a/deploy/charts/dragonfly/templates/scheduler/scheduler-configmap.yaml +++ b/deploy/charts/dragonfly/templates/scheduler/scheduler-configmap.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ template "dragonfly.scheduler.fullname" . }} - namespace: {{ .Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" . }} labels: app: {{ template "dragonfly.fullname" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" @@ -27,5 +27,5 @@ apiVersion: v1 kind: ConfigMap metadata: name: scheduler-static-cdn - namespace: {{ .Values.installation.namespace }} -{{- end}} \ No newline at end of file + namespace: {{ template "dragonfly.namespace" . }} +{{- end}} diff --git a/deploy/charts/dragonfly/templates/scheduler/scheduler-statefulset.yaml b/deploy/charts/dragonfly/templates/scheduler/scheduler-statefulset.yaml index 237fa8b90..c02fb1927 100644 --- a/deploy/charts/dragonfly/templates/scheduler/scheduler-statefulset.yaml +++ b/deploy/charts/dragonfly/templates/scheduler/scheduler-statefulset.yaml @@ -7,8 +7,8 @@ metadata: component: "{{ .Values.scheduler.name }}" heritage: {{ .Release.Service }} release: {{ .Release.Name }} - namespace: {{ .Values.installation.namespace }} name: {{ template "dragonfly.scheduler.fullname" . }} + namespace: {{ template "dragonfly.namespace" . }} {{- if .Values.scheduler.statefulsetAnnotations }} annotations: {{ toYaml .Values.scheduler.statefulsetAnnotations | indent 4 }} @@ -77,4 +77,4 @@ spec: - name: cdn-config configMap: name: scheduler-static-cdn - {{- end}} \ No newline at end of file + {{- end}} diff --git a/deploy/charts/dragonfly/templates/scheduler/scheduler-svc.yaml b/deploy/charts/dragonfly/templates/scheduler/scheduler-svc.yaml index 8f8ae967b..be90aa270 100644 --- a/deploy/charts/dragonfly/templates/scheduler/scheduler-svc.yaml +++ b/deploy/charts/dragonfly/templates/scheduler/scheduler-svc.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: Service metadata: name: {{ template "dragonfly.scheduler.fullname" $ }}-{{$i}} - namespace: {{ $.Values.installation.namespace }} + namespace: {{ template "dragonfly.namespace" $ }} labels: app: {{ template "dragonfly.name" $ }} chart: {{ $.Chart.Name }}-{{ $.Chart.Version }} @@ -44,4 +44,4 @@ spec: {{- end }} {{- end }} --- -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deploy/charts/dragonfly/values.yaml b/deploy/charts/dragonfly/values.yaml index 9d5758c42..56a324972 100644 --- a/deploy/charts/dragonfly/values.yaml +++ b/deploy/charts/dragonfly/values.yaml @@ -1,9 +1,9 @@ nameOverride: "" +namespaceOverride: "dragonfly-system" fullnameOverride: "" # values for dragonfly installation installation: - namespace: dragonfly-system clusterDomain: "" # enable an all in one jaeger for tracing every downloading event # should not use in production environment diff --git a/docs/en/ecosystem/Kubernetes-with-Dragonfly.md b/docs/en/ecosystem/Kubernetes-with-Dragonfly.md index 58a6d17a6..96988de02 100644 --- a/docs/en/ecosystem/Kubernetes-with-Dragonfly.md +++ b/docs/en/ecosystem/Kubernetes-with-Dragonfly.md @@ -92,7 +92,6 @@ git clone https://github.com/dragonflyoss/Dragonfly2.git ### Install ```shell -kubectl create ns dragonfly-system helm install --namespace dragonfly-system dragonfly Dragonfly2/deploy/charts/dragonfly ``` @@ -109,4 +108,4 @@ kubectl -n dragonfly-system wait --for=condition=ready --all --timeout=10m pod Following [Configure Runtime](#configure-runtime) to configure runtime. Following [Using Dragonfly](#using-dragonfly) to use Dragonfly. -## Upgrade Guide \ No newline at end of file +## Upgrade Guide