Migrate from MinIO to SeaweedFS
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -72,7 +72,7 @@ probod:
|
|||||||
bucket: "probod"
|
bucket: "probod"
|
||||||
access-key-id: "probod"
|
access-key-id: "probod"
|
||||||
secret-access-key: "thisisnotasecret"
|
secret-access-key: "thisisnotasecret"
|
||||||
endpoint: "http://127.0.0.1:9000"
|
endpoint: "http://127.0.0.1:8333"
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
mailer:
|
mailer:
|
||||||
|
|||||||
@@ -20,12 +20,12 @@ services:
|
|||||||
PG_DATABASE: "probod"
|
PG_DATABASE: "probod"
|
||||||
PG_POOL_SIZE: "100"
|
PG_POOL_SIZE: "100"
|
||||||
|
|
||||||
# AWS/MinIO S3 storage
|
# S3-compatible storage (SeaweedFS)
|
||||||
AWS_REGION: "us-east-1"
|
AWS_REGION: "us-east-1"
|
||||||
AWS_BUCKET: "probod"
|
AWS_BUCKET: "probod"
|
||||||
AWS_ACCESS_KEY_ID: "probod"
|
AWS_ACCESS_KEY_ID: "probod"
|
||||||
AWS_SECRET_ACCESS_KEY: "thisisnotasecret"
|
AWS_SECRET_ACCESS_KEY: "thisisnotasecret"
|
||||||
AWS_ENDPOINT: "http://minio:9000"
|
AWS_ENDPOINT: "http://seaweedfs:8333"
|
||||||
|
|
||||||
# Observability - Metrics & Tracing
|
# Observability - Metrics & Tracing
|
||||||
METRICS_ADDR: "probo:8081"
|
METRICS_ADDR: "probo:8081"
|
||||||
@@ -48,7 +48,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
minio:
|
seaweedfs:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
chrome:
|
chrome:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
@@ -75,19 +75,23 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
minio:
|
seaweedfs:
|
||||||
image: "quay.io/minio/minio"
|
image: "chrislusf/seaweedfs:4.13"
|
||||||
entrypoint: "sh"
|
command: >
|
||||||
command: |
|
server
|
||||||
-c 'mkdir -p /var/lib/minio/probod && minio server --json --console-address :9001 /var/lib/minio'
|
-s3
|
||||||
|
-s3.config=/etc/seaweedfs/s3.json
|
||||||
|
-s3.port=8333
|
||||||
|
-volume.max=100
|
||||||
|
-master.volumeSizeLimitMB=1024
|
||||||
|
-dir=/data
|
||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "8333:8333"
|
||||||
- "9001:9001"
|
- "9333:9333"
|
||||||
|
- "8888:8888"
|
||||||
volumes:
|
volumes:
|
||||||
- "minio-data:/var/lib/minio:rw"
|
- "./compose/seaweedfs/s3.json:/etc/seaweedfs/s3.json:ro"
|
||||||
environment:
|
- "seaweedfs-data:/data:rw"
|
||||||
MINIO_ROOT_USER: "probod"
|
|
||||||
MINIO_ROOT_PASSWORD: "thisisnotasecret"
|
|
||||||
|
|
||||||
chrome:
|
chrome:
|
||||||
image: "chromedp/headless-shell:140.0.7259.2"
|
image: "chromedp/headless-shell:140.0.7259.2"
|
||||||
@@ -109,4 +113,4 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
probo-data:
|
probo-data:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
minio-data:
|
seaweedfs-data:
|
||||||
|
|||||||
28
compose.yaml
28
compose.yaml
@@ -20,19 +20,23 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
minio:
|
seaweedfs:
|
||||||
image: "quay.io/minio/minio"
|
image: "chrislusf/seaweedfs:latest"
|
||||||
entrypoint: "sh"
|
command: >
|
||||||
command: |
|
server
|
||||||
-c 'mkdir -p /var/lib/minio/probod && mkdir -p /var/lib/minio/probod-test && minio server --json --console-address :9001 /var/lib/minio'
|
-s3
|
||||||
|
-s3.config=/etc/seaweedfs/s3.json
|
||||||
|
-s3.port=8333
|
||||||
|
-volume.max=100
|
||||||
|
-master.volumeSizeLimitMB=1024
|
||||||
|
-dir=/data
|
||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "8333:8333"
|
||||||
- "9001:9001"
|
- "9333:9333"
|
||||||
|
- "8888:8888"
|
||||||
volumes:
|
volumes:
|
||||||
- "minio-data:/var/lib/minio:rw"
|
- "./compose/seaweedfs/s3.json:/etc/seaweedfs/s3.json:ro"
|
||||||
environment:
|
- "seaweedfs-data:/data:rw"
|
||||||
MINIO_ROOT_USER: "probod"
|
|
||||||
MINIO_ROOT_PASSWORD: "thisisnotasecret"
|
|
||||||
|
|
||||||
grafana:
|
grafana:
|
||||||
image: "grafana/grafana:latest"
|
image: "grafana/grafana:latest"
|
||||||
@@ -154,7 +158,7 @@ services:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
minio-data:
|
seaweedfs-data:
|
||||||
grafana-data:
|
grafana-data:
|
||||||
prometheus-data:
|
prometheus-data:
|
||||||
tempo-data:
|
tempo-data:
|
||||||
|
|||||||
21
compose/seaweedfs/s3.json
Normal file
21
compose/seaweedfs/s3.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"identities": [
|
||||||
|
{
|
||||||
|
"name": "probod",
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"accessKey": "probod",
|
||||||
|
"secretKey": "thisisnotasecret"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"actions": [
|
||||||
|
"Admin",
|
||||||
|
"Read",
|
||||||
|
"Write",
|
||||||
|
"List",
|
||||||
|
"Tagging",
|
||||||
|
"Lock"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ Before deploying Probo, ensure you have:
|
|||||||
1. **Kubernetes Cluster** - Version 1.23+
|
1. **Kubernetes Cluster** - Version 1.23+
|
||||||
2. **Helm** - Version 3.8+
|
2. **Helm** - Version 3.8+
|
||||||
3. **PostgreSQL Database** - Managed service (AWS RDS, GCP Cloud SQL, Azure Database, etc.)
|
3. **PostgreSQL Database** - Managed service (AWS RDS, GCP Cloud SQL, Azure Database, etc.)
|
||||||
4. **S3 Storage** - AWS S3 or S3-compatible storage (GCS, DigitalOcean Spaces, MinIO, etc.)
|
4. **S3 Storage** - AWS S3 or S3-compatible storage (GCS, DigitalOcean Spaces, SeaweedFS, etc.)
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ helm install my-probo ./charts/probo \
|
|||||||
--set postgresql.auth.postgresUser="probod" \
|
--set postgresql.auth.postgresUser="probod" \
|
||||||
--set postgresql.auth.postgresPassword="your-db-password" \
|
--set postgresql.auth.postgresPassword="your-db-password" \
|
||||||
--set postgresql.auth.database="probod" \
|
--set postgresql.auth.database="probod" \
|
||||||
--set minio.enabled=true \
|
--set seaweedfs.enabled=true \
|
||||||
--set s3.bucket="your-bucket-name" \
|
--set s3.bucket="your-bucket-name" \
|
||||||
--set s3.accessKeyId="your-access-key" \
|
--set s3.accessKeyId="your-access-key" \
|
||||||
--set s3.secretAccessKey="your-secret-key"
|
--set s3.secretAccessKey="your-secret-key"
|
||||||
@@ -431,15 +431,15 @@ spec:
|
|||||||
| s3.region | string | `"us-east-1"` | S3 region |
|
| s3.region | string | `"us-east-1"` | S3 region |
|
||||||
| s3.bucket | string | `"probod"` | S3 bucket name |
|
| s3.bucket | string | `"probod"` | S3 bucket name |
|
||||||
| s3.endpoint | string | `""` | S3 endpoint (leave empty for AWS S3, set for S3-compatible storage) |
|
| s3.endpoint | string | `""` | S3 endpoint (leave empty for AWS S3, set for S3-compatible storage) |
|
||||||
| s3.accessKeyId | string | `""` | **REQUIRED** (when minio.enabled=false) S3 access key |
|
| s3.accessKeyId | string | `""` | **REQUIRED** (when seaweedfs.enabled=false) S3 access key |
|
||||||
| s3.secretAccessKey | string | `""` | **REQUIRED** (when minio.enabled=false) S3 secret key |
|
| s3.secretAccessKey | string | `""` | **REQUIRED** (when seaweedfs.enabled=false) S3 secret key |
|
||||||
| minio.enabled | bool | `true` | Enable included MinIO for demo purposes (NOT for production) |
|
| seaweedfs.enabled | bool | `true` | Enable included SeaweedFS for demo purposes (NOT for production) |
|
||||||
| minio.mode | string | `"standalone"` | MinIO mode |
|
| seaweedfs.image.repository | string | `"chrislusf/seaweedfs"` | SeaweedFS container image repository |
|
||||||
| minio.persistence.enabled | bool | `false` | Enable MinIO persistence |
|
| seaweedfs.image.tag | string | `"latest"` | SeaweedFS image tag |
|
||||||
| minio.resources.requests.memory | string | `"128Mi"` | MinIO memory request |
|
| seaweedfs.persistence.enabled | bool | `false` | Enable SeaweedFS persistence |
|
||||||
| minio.primary.enabled | bool | `true` | Enable MinIO primary node |
|
| seaweedfs.persistence.size | string | `"10Gi"` | SeaweedFS persistent volume size |
|
||||||
| minio.auth.rootUser | string | `"probod"` | MinIO root username |
|
| seaweedfs.auth.accessKey | string | `"probod"` | SeaweedFS S3 access key |
|
||||||
| minio.auth.rootPassword | string | `"probod"` | MinIO root password |
|
| seaweedfs.auth.secretKey | string | `"probod"` | SeaweedFS S3 secret key |
|
||||||
| chrome.enabled | bool | `true` | Deploy Chrome headless in the cluster for PDF generation |
|
| chrome.enabled | bool | `true` | Deploy Chrome headless in the cluster for PDF generation |
|
||||||
| chrome.replicaCount | int | `1` | Number of Chrome replicas |
|
| chrome.replicaCount | int | `1` | Number of Chrome replicas |
|
||||||
| chrome.image.repository | string | `"chromedp/headless-shell"` | Chrome container image repository |
|
| chrome.image.repository | string | `"chromedp/headless-shell"` | Chrome container image repository |
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
dependencies:
|
|
||||||
- name: minio
|
|
||||||
repository: https://charts.min.io/
|
|
||||||
version: 5.4.0
|
|
||||||
- name: kubernetes-ingress
|
|
||||||
repository: https://haproxytech.github.io/helm-charts
|
|
||||||
version: 1.45.1
|
|
||||||
digest: sha256:86861ee988df3673c6306ff42719f09d12ce22e2d48a0db757ad4365d204bd85
|
|
||||||
generated: "2025-10-31T10:17:36.108938+01:00"
|
|
||||||
@@ -18,10 +18,6 @@ maintainers:
|
|||||||
icon: https://github.com/getprobo/probo/blob/main/.github/cover_v3.png
|
icon: https://github.com/getprobo/probo/blob/main/.github/cover_v3.png
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: minio
|
|
||||||
condition: minio.enabled
|
|
||||||
repository: https://charts.min.io/
|
|
||||||
version: 5.4.0 # Latest stable version
|
|
||||||
- name: kubernetes-ingress
|
- name: kubernetes-ingress
|
||||||
alias: haproxy-ingress
|
alias: haproxy-ingress
|
||||||
condition: haproxy-ingress.enabled
|
condition: haproxy-ingress.enabled
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ This Helm chart deploys Probo - an open-source SOC-2 compliance platform - on Ku
|
|||||||
- Kubernetes 1.23+
|
- Kubernetes 1.23+
|
||||||
- Helm 3.8+
|
- Helm 3.8+
|
||||||
- External PostgreSQL database (AWS RDS, GCP Cloud SQL, Azure Database, etc.)
|
- External PostgreSQL database (AWS RDS, GCP Cloud SQL, Azure Database, etc.)
|
||||||
- S3 or S3-compatible object storage (AWS S3, GCS, DigitalOcean Spaces, MinIO, etc.)
|
- S3 or S3-compatible object storage (AWS S3, GCS, DigitalOcean Spaces, SeaweedFS, etc.)
|
||||||
- OpenSSL installed (for generating secrets)
|
- OpenSSL installed (for generating secrets)
|
||||||
|
|
||||||
## Installing the Chart
|
## Installing the Chart
|
||||||
|
|||||||
@@ -48,8 +48,8 @@
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
💾 Object Storage:
|
💾 Object Storage:
|
||||||
{{- if .Values.minio.enabled }}
|
{{- if .Values.seaweedfs.enabled }}
|
||||||
Using MinIO: {{ include "probo.fullname" . }}-minio:9000
|
Using SeaweedFS: {{ include "probo.fullname" . }}-seaweedfs:8333
|
||||||
Bucket: {{ .Values.s3.bucket }}
|
Bucket: {{ .Values.s3.bucket }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
Using S3 storage
|
Using S3 storage
|
||||||
@@ -64,8 +64,8 @@
|
|||||||
{{- if not .Values.ingress.tls }}
|
{{- if not .Values.ingress.tls }}
|
||||||
⚠️ TLS is not enabled! Enable it for production by configuring ingress.tls
|
⚠️ TLS is not enabled! Enable it for production by configuring ingress.tls
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if or .Values.postgresql.enabled .Values.minio.enabled }}
|
{{- if or .Values.postgresql.enabled .Values.seaweedfs.enabled }}
|
||||||
⚠️ Using internal PostgreSQL or MinIO - FOR TESTING ONLY!
|
⚠️ Using internal PostgreSQL or SeaweedFS - FOR TESTING ONLY!
|
||||||
For production, disable these and use external managed services.
|
For production, disable these and use external managed services.
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
|||||||
@@ -118,8 +118,8 @@ PostgreSQL password (from subchart or external config)
|
|||||||
S3 endpoint
|
S3 endpoint
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "probo.s3.endpoint" -}}
|
{{- define "probo.s3.endpoint" -}}
|
||||||
{{- if .Values.minio.enabled }}
|
{{- if .Values.seaweedfs.enabled }}
|
||||||
{{- printf "http://%s-minio:9000" .Release.Name }}
|
{{- printf "http://%s-seaweedfs:8333" (include "probo.fullname" .) }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- .Values.s3.endpoint }}
|
{{- .Values.s3.endpoint }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -129,10 +129,10 @@ S3 endpoint
|
|||||||
S3 access key
|
S3 access key
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "probo.s3.accessKeyId" -}}
|
{{- define "probo.s3.accessKeyId" -}}
|
||||||
{{- if .Values.minio.enabled }}
|
{{- if .Values.seaweedfs.enabled }}
|
||||||
{{- .Values.minio.auth.rootUser | required "minio.auth.rootUser is required when minio.enabled=true" }}
|
{{- .Values.seaweedfs.auth.accessKey | required "seaweedfs.auth.accessKey is required when seaweedfs.enabled=true" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- .Values.s3.accessKeyId | required "s3.accessKeyId is required when minio.enabled=false" }}
|
{{- .Values.s3.accessKeyId | required "s3.accessKeyId is required when seaweedfs.enabled=false" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@@ -140,10 +140,10 @@ S3 access key
|
|||||||
S3 secret key
|
S3 secret key
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "probo.s3.secretAccessKey" -}}
|
{{- define "probo.s3.secretAccessKey" -}}
|
||||||
{{- if .Values.minio.enabled }}
|
{{- if .Values.seaweedfs.enabled }}
|
||||||
{{- .Values.minio.auth.rootPassword | required "minio.auth.rootPassword is required when minio.enabled=true" }}
|
{{- .Values.seaweedfs.auth.secretKey | required "seaweedfs.auth.secretKey is required when seaweedfs.enabled=true" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- .Values.s3.secretAccessKey | required "s3.secretAccessKey is required when minio.enabled=false" }}
|
{{- .Values.s3.secretAccessKey | required "s3.secretAccessKey is required when seaweedfs.enabled=false" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
|||||||
136
contrib/helm/charts/probo/templates/seaweedfs.yaml
Normal file
136
contrib/helm/charts/probo/templates/seaweedfs.yaml
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
{{- if .Values.seaweedfs.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
labels:
|
||||||
|
{{- include "probo.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
stringData:
|
||||||
|
s3.json: |
|
||||||
|
{
|
||||||
|
"identities": [
|
||||||
|
{
|
||||||
|
"name": {{ .Values.seaweedfs.auth.accessKey | quote }},
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"accessKey": {{ .Values.seaweedfs.auth.accessKey | quote }},
|
||||||
|
"secretKey": {{ .Values.seaweedfs.auth.secretKey | quote }}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"actions": ["Admin", "Read", "Write", "List", "Tagging", "Lock"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
labels:
|
||||||
|
{{- include "probo.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "probo.selectorLabels" . | nindent 6 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "probo.selectorLabels" . | nindent 8 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: seaweedfs
|
||||||
|
image: "{{ .Values.seaweedfs.image.repository }}:{{ .Values.seaweedfs.image.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.seaweedfs.image.pullPolicy }}
|
||||||
|
args:
|
||||||
|
- server
|
||||||
|
- -s3
|
||||||
|
- -s3.config=/etc/seaweedfs/s3.json
|
||||||
|
- -s3.port=8333
|
||||||
|
- -volume.max=100
|
||||||
|
- -master.volumeSizeLimitMB=1024
|
||||||
|
- -dir=/data
|
||||||
|
ports:
|
||||||
|
- name: s3
|
||||||
|
containerPort: 8333
|
||||||
|
protocol: TCP
|
||||||
|
- name: master
|
||||||
|
containerPort: 9333
|
||||||
|
protocol: TCP
|
||||||
|
- name: filer
|
||||||
|
containerPort: 8888
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /cluster/status
|
||||||
|
port: master
|
||||||
|
initialDelaySeconds: 15
|
||||||
|
periodSeconds: 10
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /cluster/status
|
||||||
|
port: master
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.seaweedfs.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /etc/seaweedfs
|
||||||
|
readOnly: true
|
||||||
|
- name: data
|
||||||
|
mountPath: /data
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
secret:
|
||||||
|
secretName: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
- name: data
|
||||||
|
{{- if .Values.seaweedfs.persistence.enabled }}
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
{{- else }}
|
||||||
|
emptyDir: {}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.seaweedfs.persistence.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
labels:
|
||||||
|
{{- include "probo.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .Values.seaweedfs.persistence.size }}
|
||||||
|
{{- if .Values.seaweedfs.persistence.storageClass }}
|
||||||
|
storageClassName: {{ .Values.seaweedfs.persistence.storageClass | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ include "probo.fullname" . }}-seaweedfs
|
||||||
|
labels:
|
||||||
|
{{- include "probo.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 8333
|
||||||
|
targetPort: s3
|
||||||
|
protocol: TCP
|
||||||
|
name: s3
|
||||||
|
selector:
|
||||||
|
{{- include "probo.selectorLabels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: seaweedfs
|
||||||
|
{{- end }}
|
||||||
@@ -215,9 +215,9 @@ postgresql:
|
|||||||
# ...
|
# ...
|
||||||
# -----END CERTIFICATE-----
|
# -----END CERTIFICATE-----
|
||||||
|
|
||||||
# MinIO configuration
|
# SeaweedFS configuration
|
||||||
# Disable included MinIO for production - use external S3 instead
|
# Disable included SeaweedFS for production - use external S3 instead
|
||||||
minio:
|
seaweedfs:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
# S3 storage configuration (REQUIRED)
|
# S3 storage configuration (REQUIRED)
|
||||||
|
|||||||
@@ -307,37 +307,48 @@ postgresql:
|
|||||||
|
|
||||||
# S3 storage configuration
|
# S3 storage configuration
|
||||||
# For production: Use external S3 (AWS S3, GCS, etc.)
|
# For production: Use external S3 (AWS S3, GCS, etc.)
|
||||||
# For testing: Enable the included MinIO chart
|
# For testing: Enable the included SeaweedFS chart
|
||||||
s3:
|
s3:
|
||||||
# External S3 configuration (used when minio.enabled=false)
|
# External S3 configuration (used when seaweedfs.enabled=false)
|
||||||
region: "us-east-1"
|
region: "us-east-1"
|
||||||
bucket: "probod"
|
bucket: "probod"
|
||||||
# For AWS S3, leave endpoint empty
|
# For AWS S3, leave endpoint empty
|
||||||
# For S3-compatible storage (MinIO, DigitalOcean Spaces, etc.), set the endpoint
|
# For S3-compatible storage (SeaweedFS, DigitalOcean Spaces, etc.), set the endpoint
|
||||||
endpoint: ""
|
endpoint: ""
|
||||||
accessKeyId: "" # REQUIRED when minio.enabled=false: S3 access key
|
accessKeyId: "" # REQUIRED when seaweedfs.enabled=false: S3 access key
|
||||||
secretAccessKey: "" # REQUIRED when minio.enabled=false: S3 secret key
|
secretAccessKey: "" # REQUIRED when seaweedfs.enabled=false: S3 secret key
|
||||||
# Use path-style URLs (required for Azure Blob Storage and some S3-compatible services)
|
# Use path-style URLs (required for Azure Blob Storage and some S3-compatible services)
|
||||||
# When true: https://endpoint/bucket/key
|
# When true: https://endpoint/bucket/key
|
||||||
# When false (default): https://bucket.endpoint/key
|
# When false (default): https://bucket.endpoint/key
|
||||||
usePathStyle: false
|
usePathStyle: false
|
||||||
|
|
||||||
# MinIO configuration
|
# SeaweedFS configuration
|
||||||
# Enable included MinIO for testing/development (NOT for production)
|
# Enable included SeaweedFS for testing/development (NOT for production)
|
||||||
minio:
|
seaweedfs:
|
||||||
# -- enabled included Minio operator for s3 resource demo purposes
|
# -- Enable included SeaweedFS for S3-compatible object storage
|
||||||
enabled: true
|
enabled: true
|
||||||
mode: standalone
|
|
||||||
|
image:
|
||||||
|
repository: chrislusf/seaweedfs
|
||||||
|
tag: "latest"
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 1000m
|
||||||
|
memory: 1Gi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
enabled: false
|
enabled: false
|
||||||
resources:
|
size: 10Gi
|
||||||
requests:
|
storageClass: ""
|
||||||
memory: 128Mi
|
|
||||||
primary:
|
|
||||||
enabled: true
|
|
||||||
auth:
|
auth:
|
||||||
rootUser: probod
|
accessKey: probod
|
||||||
rootPassword: probod
|
secretKey: probod
|
||||||
|
|
||||||
# Headless Chrome for PDF generation
|
# Headless Chrome for PDF generation
|
||||||
chrome:
|
chrome:
|
||||||
|
|||||||
2
e2e/console/testdata/config.yaml
vendored
2
e2e/console/testdata/config.yaml
vendored
@@ -48,7 +48,7 @@ probod:
|
|||||||
bucket: "probod-test"
|
bucket: "probod-test"
|
||||||
access-key-id: "probod"
|
access-key-id: "probod"
|
||||||
secret-access-key: "thisisnotasecret"
|
secret-access-key: "thisisnotasecret"
|
||||||
endpoint: "http://127.0.0.1:9000"
|
endpoint: "http://127.0.0.1:8333"
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
mailer:
|
mailer:
|
||||||
|
|||||||
Reference in New Issue
Block a user