|
1 | 1 | {{- $releaseName := include "nats.name" . }}
|
2 | 2 |
|
3 | 3 | ---
|
4 |
| -apiVersion: crds.kloudlite.io/v1 |
| 4 | +apiVersion: plugin-helm-chart.kloudlite.github.com/v1 |
5 | 5 | kind: HelmChart
|
6 | 6 | metadata:
|
7 | 7 | name: {{$releaseName}}
|
8 | 8 | namespace: {{.Release.Namespace}}
|
9 | 9 | spec:
|
10 |
| - chartRepoURL: https://nats-io.github.io/k8s/helm/charts/ |
11 |
| - chartName: nats |
12 |
| - chartVersion: 1.1.5 |
| 10 | + chart: |
| 11 | + url: https://nats-io.github.io/k8s/helm/charts/ |
| 12 | + name: nats |
| 13 | + version: 1.1.5 |
13 | 14 | jobVars:
|
14 | 15 | tolerations: {{(.Values.nats.tolerations | default .Values.scheduling.stateful.tolerations) | toYaml | nindent 6 }}
|
15 | 16 | nodeSelector: {{(.Values.nats.nodeSelector | default .Values.scheduling.stateful.nodeSelector) | toYaml | nindent 6 }}
|
16 |
| - values: |
| 17 | + |
| 18 | + postInstall: |+ |
| 19 | + cat <<EOF | kubectl apply -f - |
| 20 | + apiVersion: batch/v1 |
| 21 | + kind: Job |
| 22 | + metadata: |
| 23 | + name: nats-setup-job-{{ randAlphaNum 5 | lower }} |
| 24 | + namespace: {{ $.Release.Namespace }} |
| 25 | + spec: |
| 26 | + template: |
| 27 | + spec: |
| 28 | + tolerations: {{ (.Values.nats.tolerations | default .Values.scheduling.stateful.tolerations) |toYaml| nindent 8 }} |
| 29 | + nodeSelector: {{ (.Values.nats.nodeSelector | default .Values.scheduling.stateful.nodeSelector) | toYaml | nindent 8}} |
| 30 | + containers: |
| 31 | + - name: nats-manager |
| 32 | + image: natsio/nats-box:0.14.1 |
| 33 | + command: ["sh"] |
| 34 | + args: |
| 35 | + - -c |
| 36 | + - |+ |
| 37 | + echo "creatings NATS KVs" |
| 38 | + {{- range $k,$bucket := .Values.nats.buckets }} |
| 39 | + nats --server {{ include "nats.url" . }} kv add {{ $bucket.name }} {{- if $.Values.nats.runAsCluster}} --replicas={{$.Values.nats.replicas}} {{- end }} --storage={{$bucket.storage}} |
| 40 | + {{- end }} |
| 41 | + |
| 42 | + echo "creatings NATS STREAMs" |
| 43 | + {{- range $k,$stream := .Values.nats.streams }} |
| 44 | + nats --server {{include "nats.url" .}} stream add {{ $stream.name }} \ |
| 45 | + --replicas={{$.Values.nats.replicas}} \ |
| 46 | + --subjects={{ $stream.subjects | squote }} \ |
| 47 | + --max-msg-size={{ $stream.maxMsgBytes }} \ |
| 48 | + {{if $stream.maxMsgsPerSubject }} --max-msgs-per-subject={{$stream.maxMsgsPerSubject}} {{end}} \ |
| 49 | + --storage=file \ |
| 50 | + {{ if $stream.maxAge }} --max-age={{$stream.maxAge}} {{ end }} \ |
| 51 | + {{ if $stream.workQueue }} --retention="work" {{ end }} \ |
| 52 | + --compression=s2 \ |
| 53 | + --discard=old \ |
| 54 | + --defaults |
| 55 | + {{- end }} |
| 56 | + restartPolicy: Never |
| 57 | + backoffLimit: 0 |
| 58 | + EOF |
| 59 | + |
| 60 | + helmValues: |
17 | 61 | global:
|
18 | 62 | labels:
|
19 | 63 | kloudlite.io/helmchart: "{{$releaseName}}"
|
|
0 commit comments