chore: custom charts template namespace (#416)
* feat: update namespace logic in helm Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
parent
31fc25a991
commit
94b2684da6
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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 }}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@ apiVersion: v1
|
|||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{template "dragonfly.cdn.fullname" . }}
|
||||
namespace: {{ .Values.installation.namespace }}
|
||||
namespace: {{ template "dragonfly.namespace" . }}
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
name: {{ template "dragonfly.namespace" $ }}
|
||||
{{- end }}
|
||||
|
|
@ -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 }}
|
||||
namespace: {{ template "dragonfly.namespace" . }}
|
||||
{{- end}}
|
||||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue