Skip to content

Commit 7d5a933

Browse files
committed
chore(addons): add seaweedfs
1 parent e4140b8 commit 7d5a933

43 files changed

Lines changed: 1537 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright VMware, Inc.
2+
# SPDX-License-Identifier: APACHE-2.0
3+
4+
annotations:
5+
category: Infrastructure
6+
licenses: Apache-2.0
7+
images: |
8+
- name: seaweedfs
9+
image: registry.drycc.cc/drycc-addons/seaweedfs:3
10+
apiVersion: v2
11+
appVersion: "3"
12+
dependencies:
13+
- name: common
14+
repository: oci://registry.drycc.cc/charts
15+
version: ~1.1.3
16+
description: SeaweedFS is a simple and highly scalable distributed file system.
17+
home: https://seaweedfs.github.io/
18+
icon: https://raw.githubusercontent.com/seaweedfs/seaweedfs/master/note/seaweedfs.png
19+
keywords:
20+
- storage
21+
- seaweedf
22+
maintainers:
23+
- name: Drycc.
24+
url: https://github.com/drycc-addons/addons
25+
name: seaweedfs
26+
sources:
27+
- https://github.com/drycc-addons/addons/tree/main/addons/seaweedfs
28+
version: 11.7.6

addons/seaweedfs/3/chart/seaweedfs/README.md

Whitespace-only changes.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
{{/*
2+
Copyright VMware, Inc.
3+
SPDX-License-Identifier: APACHE-2.0
4+
*/}}
5+
6+
{{/* vim: set filetype=mustache: */}}
7+
8+
9+
{{/*
10+
Return the proper seaweedfs image name
11+
*/}}
12+
{{- define "seaweedfs.image" -}}
13+
{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
14+
{{- end -}}
15+
16+
{{/*
17+
Create the name of the deployment
18+
*/}}
19+
{{- define "seaweedfs.fullname" -}}
20+
{{ printf "%s" (include "common.names.fullname" .) }}
21+
{{- end -}}
22+
23+
{{/*
24+
Create the name of the service account to use
25+
*/}}
26+
{{- define "seaweedfs.serviceAccountName" -}}
27+
{{- if .Values.serviceAccount.create -}}
28+
{{ default (include "seaweedfs.fullname" .) .Values.serviceAccount.name }}
29+
{{- else -}}
30+
{{ default "default" .Values.serviceAccount.name }}
31+
{{- end -}}
32+
{{- end -}}
33+
34+
{{/*
35+
Return the proper Docker Image Registry Secret Names
36+
*/}}
37+
{{- define "seaweedfs.imagePullSecrets" -}}
38+
{{- include "common.images.pullSecrets" (dict "images" (list .Values.image) "global" .Values.global) -}}
39+
{{- end -}}
40+
41+
{{/*
42+
Name the configuration configmap
43+
*/}}
44+
{{- define "seaweedfs.configuration.configMap" -}}
45+
{{- printf "%s-config" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}}
46+
{{- end -}}
47+
48+
49+
{{/*
50+
Name the filer full name
51+
*/}}
52+
{{- define "seaweedfs.filer.fullname" -}}
53+
{{- printf "%s-filer" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}}
54+
{{- end -}}
55+
56+
{{/*
57+
Name the master full name
58+
*/}}
59+
{{- define "seaweedfs.master.fullname" -}}
60+
{{- printf "%s-master" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}}
61+
{{- end -}}
62+
63+
64+
{{/*
65+
Name the volume full name
66+
*/}}
67+
{{- define "seaweedfs.volume.fullname" -}}
68+
{{- printf "%s-volume" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}}
69+
{{- end -}}
70+
71+
{{/*
72+
Name the cronjob full name
73+
*/}}
74+
{{- define "seaweedfs.cronjob.fullname" -}}
75+
{{- printf "%s-cronjob" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" -}}
76+
{{- end -}}
77+
78+
{{/*
79+
Master peers url
80+
*/}}
81+
{{- define "seaweedfs.master.peers" -}}
82+
{{- $replicaCount := int .Values.master.replicas }}
83+
{{- $clusterDomain := .Values.global.clusterDomain }}
84+
{{- $messages := list -}}
85+
{{ range $i := until $replicaCount }}
86+
{{- $messages = printf "%s-%d.%s.%s.svc.%s:%v" (include "seaweedfs.master.fullname" $) $i (include "seaweedfs.master.fullname" $) $.Release.Namespace $clusterDomain $.Values.master.ports.http | append $messages -}}
87+
{{ end }}
88+
{{- $message := join "," $messages -}}
89+
{{- printf "%s" $message }}
90+
{{- end -}}
91+
92+
{{/*
93+
Master filer url
94+
*/}}
95+
{{- define "seaweedfs.filer.url" -}}
96+
{{- printf "%s.%s.svc.%s:%v" (include "seaweedfs.filer.fullname" .) .Release.Namespace .Values.global.clusterDomain .Values.filer.ports.http }}
97+
{{- end -}}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{{- /*
2+
Copyright Doopai LTD.
3+
SPDX-License-Identifier: APACHE-2.0
4+
*/}}
5+
6+
apiVersion: v1
7+
kind: ConfigMap
8+
metadata:
9+
name: {{ include "seaweedfs.configuration.configMap" . }}
10+
namespace: {{ include "common.names.namespace" . | quote }}
11+
labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
12+
app.kubernetes.io/part-of: seaweedfs
13+
{{- if .Values.commonAnnotations }}
14+
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
15+
{{- end }}
16+
data:
17+
s3.json: |
18+
{{- (tpl .Values.config.s3 $) | nindent 4 }}
19+
filer.toml: |
20+
{{- (tpl .Values.config.filer $) | nindent 4 }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
apiVersion: batch/v1
2+
kind: CronJob
3+
metadata:
4+
name: {{ include "seaweedfs.cronjob.fullname" . }}
5+
namespace: {{ .Release.Namespace | quote }}
6+
labels: {{- include "common.labels.standard" . | nindent 4 }}
7+
{{- if .Values.commonLabels }}
8+
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
9+
{{- end }}
10+
{{- if .Values.commonAnnotations }}
11+
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
12+
{{- end }}
13+
spec:
14+
timeZone: "{{ .Values.cronjob.timeZone }}"
15+
schedule: "{{ .Values.cronjob.schedule }}"
16+
concurrencyPolicy: "{{ .Values.cronjob.concurrencyPolicy }}"
17+
successfulJobsHistoryLimit: {{ .Values.cronjob.successfulJobsHistoryLimit }}
18+
failedJobsHistoryLimit: {{ .Values.cronjob.failedJobsHistoryLimit }}
19+
jobTemplate:
20+
spec:
21+
template:
22+
metadata:
23+
labels:
24+
component: {{ include "seaweedfs.fullname" . }}
25+
app: {{ include "seaweedfs.cronjob.fullname" . }}
26+
spec:
27+
restartPolicy: OnFailure
28+
serviceAccount: {{ include "seaweedfs.fullname" . }}
29+
initContainers:
30+
- name: {{ include "seaweedfs.cronjob.fullname" . }}-init
31+
image: registry.drycc.cc/drycc/python-dev
32+
imagePullPolicy: {{.Values.imagePullPolicy}}
33+
args:
34+
- netcat
35+
- -v
36+
- -a
37+
- {{ include "seaweedfs.filer.url" . }},{{ include "seaweedfs.master.peers" . }}
38+
containers:
39+
- name: {{ include "seaweedfs.cronjob.fullname" . }}
40+
image: {{ include "seaweedfs.image" . }}
41+
imagePullPolicy: {{ include "seaweedfs.imagePullSecrets" . }}
42+
args:
43+
- /usr/bin/env
44+
- bash
45+
- -ec
46+
- |
47+
# run weed shell
48+
echo -e "\n\\033[32m---> Start running audit cronjob <---\\033[0m\n"
49+
cat << EOF | weed shell -master={{ include "seaweedfs.master.peers" . }} -filer={{ include "seaweedfs.filer.url" . }}
50+
{{- (tpl .Values.cronjob.scripts $) | nindent 14 -}}
51+
EOF
52+
echo -e "\n\\033[32m---> Audit cronjob run completed <---\\033[0m\n"
53+
env:
54+
- name: TZ
55+
value: UTC
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
{{- $replicaCount := int .Values.filer.replicas }}
2+
{{- $clusterDomain := .Values.global.clusterDomain }}
3+
apiVersion: apps/v1
4+
kind: StatefulSet
5+
metadata:
6+
name: {{ include "seaweedfs.filer.fullname" . }}
7+
namespace: {{ .Release.Namespace | quote }}
8+
labels: {{- include "common.labels.standard" . | nindent 4 }}
9+
{{- if .Values.commonLabels }}
10+
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
11+
{{- end }}
12+
{{- if .Values.commonAnnotations }}
13+
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
14+
{{- end }}
15+
spec:
16+
serviceName: {{ include "seaweedfs.filer.fullname" . }}
17+
replicas: {{ $replicaCount }}
18+
updateStrategy:
19+
type: RollingUpdate
20+
podManagementPolicy: OrderedReady
21+
selector:
22+
matchLabels:
23+
component: {{ include "seaweedfs.fullname" . }}
24+
app: {{ include "seaweedfs.filer.fullname" . }}
25+
template:
26+
metadata:
27+
labels:
28+
component: {{ include "seaweedfs.fullname" . }}
29+
app: {{ include "seaweedfs.filer.fullname" . }}
30+
spec:
31+
{{- if .Values.filer.affinity }}
32+
affinity: {{- include "common.tplvalues.render" (dict "value" .Values.filer.affinity "context" $) | nindent 8 }}
33+
{{- else }}
34+
affinity:
35+
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.filer.podAffinityPreset "component" "read" "context" $) | nindent 10 }}
36+
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.filer.podAntiAffinityPreset "component" "read" "context" $) | nindent 10 }}
37+
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.filer.nodeAffinityPreset.type "key" .Values.filer.nodeAffinityPreset.key "values" .Values.filer.nodeAffinityPreset.values) | nindent 10 }}
38+
{{- end }}
39+
serviceAccount: {{ include "seaweedfs.fullname" . }}
40+
initContainers:
41+
- name: {{ include "seaweedfs.cronjob.fullname" . }}-init
42+
image: registry.drycc.cc/drycc/python-dev
43+
imagePullPolicy: {{.Values.imagePullPolicy}}
44+
args:
45+
- netcat
46+
- -v
47+
- -a
48+
- {{ include "seaweedfs.master.peers" . }}
49+
containers:
50+
- name: {{ include "seaweedfs.filer.fullname" . }}
51+
image: {{ include "seaweedfs.image" . }}
52+
imagePullPolicy: {{ include "seaweedfs.imagePullSecrets" . }}
53+
args:
54+
- weed
55+
- filer
56+
- -port={{ .Values.filer.ports.http }}
57+
- -port.grpc={{ .Values.filer.ports.grpc }}
58+
- -port.readonly={{ .Values.filer.ports.readonly }}
59+
- -master={{ include "seaweedfs.master.peers" . }}
60+
- -s3
61+
- -s3.port={{ .Values.filer.ports.s3 }}
62+
- -s3.config=/etc/seaweedfs/s3.json
63+
- -defaultStoreDir=/seaweedfs
64+
- -metricsPort={{ .Values.filer.ports.metrics }}
65+
env:
66+
- name: TZ
67+
value: UTC
68+
- name: POD_NAME
69+
valueFrom:
70+
fieldRef:
71+
fieldPath: metadata.name
72+
- name: NAMESPACE
73+
valueFrom:
74+
fieldRef:
75+
fieldPath: metadata.namespace
76+
ports:
77+
- containerPort: {{ .Values.filer.ports.s3 }}
78+
- containerPort: {{ .Values.filer.ports.http }}
79+
- containerPort: {{ .Values.filer.ports.grpc }}
80+
- containerPort: {{ .Values.filer.ports.metrics }}
81+
- containerPort: {{ .Values.filer.ports.readonly }}
82+
startupProbe:
83+
httpGet:
84+
path: /metrics
85+
port: {{ .Values.filer.ports.metrics }}
86+
initialDelaySeconds: 90
87+
periodSeconds: 5
88+
timeoutSeconds: 1
89+
successThreshold: 1
90+
failureThreshold: 5
91+
livenessProbe:
92+
tcpSocket:
93+
port: {{ .Values.filer.ports.s3 }}
94+
initialDelaySeconds: 30
95+
periodSeconds: 5
96+
timeoutSeconds: 1
97+
successThreshold: 1
98+
failureThreshold: 5
99+
readinessProbe:
100+
tcpSocket:
101+
port: {{ .Values.filer.ports.s3 }}
102+
initialDelaySeconds: 30
103+
periodSeconds: 5
104+
timeoutSeconds: 1
105+
successThreshold: 1
106+
failureThreshold: 5
107+
volumeMounts:
108+
- name: {{ include "seaweedfs.configuration.configMap" . }}
109+
mountPath: /etc/seaweedfs
110+
{{- if .Values.filer.persistence.enabled }}
111+
- name: datadir
112+
mountPath: /seaweedfs
113+
{{- end }}
114+
volumes:
115+
- name: {{ include "seaweedfs.configuration.configMap" . }}
116+
configMap:
117+
name: {{ include "seaweedfs.configuration.configMap" . }}
118+
securityContext:
119+
fsGroup: 1001
120+
runAsGroup: 1001
121+
runAsUser: 1001
122+
{{- if .Values.filer.persistence.enabled }}
123+
volumeClaimTemplates:
124+
- metadata:
125+
name: datadir
126+
spec:
127+
accessModes: [ "ReadWriteOnce" ]
128+
{{- if .Values.filer.persistence.storageClass }}
129+
{{- if (eq "-" .Values.filer.persistence.storageClass) }}
130+
storageClassName: ""
131+
{{- else }}
132+
storageClassName: "{{ .Values.filer.persistence.storageClass }}"
133+
{{- end }}
134+
{{- end }}
135+
resources:
136+
requests:
137+
storage: {{ .Values.filer.persistence.size | quote }}
138+
{{- end }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ include "seaweedfs.filer.fullname" . }}
5+
namespace: {{ .Release.Namespace | quote }}
6+
labels: {{- include "common.labels.standard" . | nindent 4 }}
7+
{{- if .Values.commonLabels }}
8+
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
9+
{{- end }}
10+
{{- if or .Values.filer.service.annotations .Values.commonAnnotations }}
11+
annotations:
12+
{{- if .Values.filer.service.annotations }}
13+
{{- include "common.tplvalues.render" ( dict "value" .Values.filer.service.annotations "context" $ ) | nindent 4 }}
14+
{{- end }}
15+
{{- if .Values.commonAnnotations }}
16+
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
17+
{{- end }}
18+
{{- end }}
19+
spec:
20+
type: {{ .Values.filer.service.type }}
21+
{{- if and .Values.filer.service.loadBalancerIP (eq .Values.filer.service.type "LoadBalancer") }}
22+
loadBalancerIP: {{ .Values.filer.service.loadBalancerIP }}
23+
externalTrafficPolicy: {{ .Values.filer.service.externalTrafficPolicy | quote }}
24+
{{- end }}
25+
{{- if and (eq .Values.filer.service.type "LoadBalancer") .Values.filer.service.loadBalancerSourceRanges }}
26+
loadBalancerSourceRanges: {{- include "common.tplvalues.render" (dict "value" .Values.filer.service.loadBalancerSourceRanges "context" $) | nindent 4 }}
27+
{{- end }}
28+
{{- if and (eq .Values.filer.service.type "ClusterIP") .Values.filer.service.clusterIP }}
29+
clusterIP: {{ .Values.filer.service.clusterIP }}
30+
{{- end }}
31+
publishNotReadyAddresses: true
32+
selector:
33+
component: {{ include "seaweedfs.fullname" . }}
34+
app: {{ include "seaweedfs.filer.fullname" . }}
35+
ports:
36+
- name: s3
37+
port: {{ .Values.filer.ports.s3 }}
38+
targetPort: {{ .Values.filer.ports.s3 }}
39+
protocol: TCP
40+
- name: http
41+
port: {{ .Values.filer.ports.http }}
42+
targetPort: {{ .Values.filer.ports.http }}
43+
protocol: TCP
44+
- name: grpc
45+
port: {{ .Values.filer.ports.grpc }}
46+
targetPort: {{ .Values.filer.ports.grpc }}
47+
protocol: TCP
48+
- name: readonly
49+
port: {{ .Values.filer.ports.readonly }}
50+
targetPort: {{ .Values.filer.ports.readonly }}
51+
protocol: TCP
52+
- name: metrics
53+
port: {{ .Values.filer.ports.metrics }}
54+
targetPort: {{ .Values.filer.ports.metrics }}
55+
protocol: TCP

0 commit comments

Comments
 (0)