Browse Source
Add seaweedfs-cosi-driver (#5843)
Add seaweedfs-cosi-driver (#5843)
add: seaweedfs-cosi-driver Signed-off-by: Andrei Kvapil <kvapss@gmail.com>pull/5845/head
Andrei Kvapil
5 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 303 additions and 0 deletions
-
66k8s/charts/seaweedfs/templates/cosi-cluster-role.yaml
-
199k8s/charts/seaweedfs/templates/cosi-deployment.yaml
-
13k8s/charts/seaweedfs/templates/cosi-service-account.yaml
-
25k8s/charts/seaweedfs/values.yaml
@ -0,0 +1,66 @@ |
|||
{{- if .Values.cosi.enabled }} |
|||
--- |
|||
kind: ClusterRole |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
metadata: |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
labels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/managed-by: {{ .Release.Service }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
rules: |
|||
- apiGroups: ["objectstorage.k8s.io"] |
|||
resources: |
|||
- "buckets" |
|||
- "bucketaccesses" |
|||
- "bucketclaims" |
|||
- "bucketaccessclasses" |
|||
- "buckets/status" |
|||
- "bucketaccesses/status" |
|||
- "bucketclaims/status" |
|||
- "bucketaccessclasses/status" |
|||
verbs: |
|||
- "get" |
|||
- "list" |
|||
- "watch" |
|||
- "update" |
|||
- "create" |
|||
- "delete" |
|||
- apiGroups: ["coordination.k8s.io"] |
|||
resources: ["leases"] |
|||
verbs: |
|||
- "get" |
|||
- "watch" |
|||
- "list" |
|||
- "delete" |
|||
- "update" |
|||
- "create" |
|||
- apiGroups: [""] |
|||
resources: |
|||
- "secrets" |
|||
- "events" |
|||
verbs: |
|||
- "get" |
|||
- "delete" |
|||
- "update" |
|||
- "create" |
|||
--- |
|||
kind: ClusterRoleBinding |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
metadata: |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
labels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/managed-by: {{ .Release.Service }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
namespace: {{ .Release.Namespace }} |
|||
roleRef: |
|||
kind: ClusterRole |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
apiGroup: rbac.authorization.k8s.io |
|||
{{- end }} |
@ -0,0 +1,199 @@ |
|||
{{- if .Values.cosi.enabled }} |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
namespace: {{ .Release.Namespace }} |
|||
labels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/managed-by: {{ .Release.Service }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
spec: |
|||
replicas: {{ .Values.cosi.replicas }} |
|||
selector: |
|||
matchLabels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
app.kubernetes.io/component: objectstorage-provisioner |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
app.kubernetes.io/component: objectstorage-provisioner |
|||
{{ with .Values.podLabels }} |
|||
{{- toYaml . | nindent 8 }} |
|||
{{- end }} |
|||
{{- with .Values.cosi.podLabels }} |
|||
{{- toYaml . | nindent 8 }} |
|||
{{- end }} |
|||
annotations: |
|||
{{ with .Values.podAnnotations }} |
|||
{{- toYaml . | nindent 8 }} |
|||
{{- end }} |
|||
{{- with .Values.cosi.podAnnotations }} |
|||
{{- toYaml . | nindent 8 }} |
|||
{{- end }} |
|||
spec: |
|||
restartPolicy: {{ default .Values.global.restartPolicy .Values.cosi.restartPolicy }} |
|||
{{- if .Values.cosi.tolerations }} |
|||
tolerations: |
|||
{{ tpl .Values.cosi.tolerations . | nindent 8 | trim }} |
|||
{{- end }} |
|||
{{- include "seaweedfs.imagePullSecrets" . | nindent 6 }} |
|||
terminationGracePeriodSeconds: 10 |
|||
{{- if .Values.cosi.priorityClassName }} |
|||
priorityClassName: {{ .Values.cosi.priorityClassName | quote }} |
|||
{{- end }} |
|||
enableServiceLinks: false |
|||
serviceAccountName: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
{{- if .Values.cosi.initContainers }} |
|||
initContainers: |
|||
{{ tpl .Values.cosi.initContainers . | nindent 8 | trim }} |
|||
{{- end }} |
|||
{{- if .Values.cosi.podSecurityContext.enabled }} |
|||
securityContext: {{- omit .Values.cosi.podSecurityContext "enabled" | toYaml | nindent 8 }} |
|||
{{- end }} |
|||
containers: |
|||
- name: seaweedfs-cosi-driver |
|||
image: "{{ .Values.cosi.image }}" |
|||
imagePullPolicy: {{ default "IfNotPresent" .Values.global.imagePullPolicy }} |
|||
env: |
|||
- name: DRIVERNAME |
|||
value: "{{ .Values.cosi.driverName }}" |
|||
- name: ENDPOINT |
|||
{{- if .Values.cosi.endpoint }} |
|||
value: "{{ .Values.cosi.endpoint }}" |
|||
{{- else if .Values.s3.ingress.enabled }} |
|||
value: "{{ printf "https://%s" .Values.s3.ingress.host }}" |
|||
{{- else if .Values.s3.enabled }} |
|||
value: "{{ printf "https://%s-s3.%s.svc" (include "seaweedfs.name" .) .Release.Namespace }}" |
|||
{{- else }} |
|||
value: "{{ printf "https://%s-filer.%s.svc" (include "seaweedfs.name" .) .Release.Namespace }}" |
|||
{{- end }} |
|||
{{- with .Values.cosi.region }} |
|||
- name: REGION |
|||
value: "{{ . }}" |
|||
{{- end }} |
|||
- name: SEAWEEDFS_FILER |
|||
value: "{{ template "seaweedfs.name" . }}-filer:{{ .Values.filer.grpcPort }}" |
|||
{{- if .Values.global.enableSecurity }} |
|||
- name: WEED_GRPC_CLIENT_KEY |
|||
value: /usr/local/share/ca-certificates/client/tls.key |
|||
- name: WEED_GRPC_CLIENT_CERT |
|||
value: /usr/local/share/ca-certificates/client/tls.crt |
|||
- name: WEED_GRPC_CA |
|||
value: /usr/local/share/ca-certificates/client/ca.crt |
|||
{{- end }} |
|||
{{- if .Values.cosi.extraEnvironmentVars }} |
|||
{{- range $key, $value := .Values.cosi.extraEnvironmentVars }} |
|||
- name: {{ $key }} |
|||
{{- if kindIs "string" $value }} |
|||
value: {{ $value | quote }} |
|||
{{- else }} |
|||
valueFrom: |
|||
{{ toYaml $value | nindent 16 | trim }} |
|||
{{- end -}} |
|||
{{- end }} |
|||
{{- end }} |
|||
{{- if .Values.global.extraEnvironmentVars }} |
|||
{{- range $key, $value := .Values.global.extraEnvironmentVars }} |
|||
- name: {{ $key }} |
|||
{{- if kindIs "string" $value }} |
|||
value: {{ $value | quote }} |
|||
{{- else }} |
|||
valueFrom: |
|||
{{ toYaml $value | nindent 16 | trim }} |
|||
{{- end -}} |
|||
{{- end }} |
|||
{{- end }} |
|||
volumeMounts: |
|||
- mountPath: /var/lib/cosi |
|||
name: socket |
|||
{{- if .Values.cosi.enableAuth }} |
|||
- mountPath: /etc/sw |
|||
name: config-users |
|||
readOnly: true |
|||
{{- end }} |
|||
{{- if .Values.global.enableSecurity }} |
|||
- name: security-config |
|||
readOnly: true |
|||
mountPath: /etc/seaweedfs/security.toml |
|||
subPath: security.toml |
|||
- name: ca-cert |
|||
readOnly: true |
|||
mountPath: /usr/local/share/ca-certificates/ca/ |
|||
- name: master-cert |
|||
readOnly: true |
|||
mountPath: /usr/local/share/ca-certificates/master/ |
|||
- name: volume-cert |
|||
readOnly: true |
|||
mountPath: /usr/local/share/ca-certificates/volume/ |
|||
- name: filer-cert |
|||
readOnly: true |
|||
mountPath: /usr/local/share/ca-certificates/filer/ |
|||
- name: client-cert |
|||
readOnly: true |
|||
mountPath: /usr/local/share/ca-certificates/client/ |
|||
{{- end }} |
|||
{{ tpl .Values.cosi.extraVolumeMounts . | nindent 12 | trim }} |
|||
- name: seaweedfs-cosi-sidecar |
|||
image: "{{ .Values.cosi.sidecar.image }}" |
|||
imagePullPolicy: {{ default "IfNotPresent" .Values.global.imagePullPolicy }} |
|||
args: |
|||
- {{ printf "--v=%s" (default "5" .Values.cosi.sidecar.logLevel) }} |
|||
volumeMounts: |
|||
- mountPath: /var/lib/cosi |
|||
name: socket |
|||
{{- with .Values.cosi.resources }} |
|||
resources: |
|||
{{- toYaml . | nindent 12 }} |
|||
{{- end }} |
|||
{{- if .Values.cosi.containerSecurityContext.enabled }} |
|||
securityContext: {{- omit .Values.cosi.containerSecurityContext "enabled" | toYaml | nindent 12 }} |
|||
{{- end }} |
|||
{{- if .Values.cosi.sidecars }} |
|||
{{- include "common.tplvalues.render" (dict "value" .Values.cosi.sidecars "context" $) | nindent 8 }} |
|||
{{- end }} |
|||
volumes: |
|||
- name: socket |
|||
emptyDir: {} |
|||
{{- if .Values.cosi.enableAuth }} |
|||
- name: config-users |
|||
secret: |
|||
defaultMode: 420 |
|||
{{- if .Values.cosi.existingConfigSecret }} |
|||
secretName: {{ .Values.cosi.existingConfigSecret }} |
|||
{{- else }} |
|||
secretName: seaweedfs-cosi-secret |
|||
{{- end }} |
|||
{{- end }} |
|||
{{- if .Values.global.enableSecurity }} |
|||
- name: security-config |
|||
configMap: |
|||
name: {{ template "seaweedfs.name" . }}-security-config |
|||
- name: ca-cert |
|||
secret: |
|||
secretName: {{ template "seaweedfs.name" . }}-ca-cert |
|||
- name: master-cert |
|||
secret: |
|||
secretName: {{ template "seaweedfs.name" . }}-master-cert |
|||
- name: volume-cert |
|||
secret: |
|||
secretName: {{ template "seaweedfs.name" . }}-volume-cert |
|||
- name: filer-cert |
|||
secret: |
|||
secretName: {{ template "seaweedfs.name" . }}-filer-cert |
|||
- name: client-cert |
|||
secret: |
|||
secretName: {{ template "seaweedfs.name" . }}-client-cert |
|||
{{- end }} |
|||
{{ tpl .Values.cosi.extraVolumes . | indent 8 | trim }} |
|||
{{- if .Values.cosi.nodeSelector }} |
|||
nodeSelector: |
|||
{{ tpl .Values.cosi.nodeSelector . | indent 8 | trim }} |
|||
{{- end }} |
|||
{{- end }} |
@ -0,0 +1,13 @@ |
|||
{{- if .Values.cosi.enabled }} |
|||
apiVersion: v1 |
|||
kind: ServiceAccount |
|||
metadata: |
|||
name: {{ template "seaweedfs.name" . }}-objectstorage-provisioner |
|||
namespace: {{ .Release.Namespace }} |
|||
labels: |
|||
app.kubernetes.io/name: {{ template "seaweedfs.name" . }} |
|||
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} |
|||
app.kubernetes.io/managed-by: {{ .Release.Service }} |
|||
app.kubernetes.io/instance: {{ .Release.Name }} |
|||
automountServiceAccountToken: {{ .Values.global.automountServiceAccountToken }} |
|||
{{- end }} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue