seaweedfs kubernetes operator
Go to file
Chris Lu 0e602afa62 2.10 2020-11-10 23:17:34 -08:00
.github/workflows Merge workflows 2020-11-01 07:02:22 +00:00
api/v1 add ingress for volume servers 2020-11-10 00:11:17 -08:00
config 2.10 2020-11-10 23:17:34 -08:00
controllers 2.10 2020-11-10 23:17:34 -08:00
hack Add verify codegen and manifests 2020-10-30 05:15:18 +00:00
.gitignore aux files 2020-07-26 14:50:48 -07:00
Dockerfile regenerate with operator-sdk 3-alpha 2020-07-26 14:47:24 -07:00
Makefile adjust version 2020-11-08 17:40:00 -08:00
PROJECT restart 2020-08-01 23:27:46 -07:00
README.md add back steps to develop outside of k8s 2020-11-09 23:28:13 -08:00
go.mod add a seaweed admin 2020-11-08 00:55:56 -08:00
go.sum add a seaweed admin 2020-11-08 00:55:56 -08:00
main.go detect ENABLE_WEBHOOKS!=false 2020-11-03 20:24:19 -08:00
seaweedfs-operator.iml operator-sdk create api --group=objectstore --version=v100 --kind=Master 2020-07-26 15:10:35 -07:00

README.md

SeaweedFS Operator

Goals:

  • Automatically deploy a SeaweedFS cluster with 3 masters, N volume servers, and M filers with customizable filer store managed by other operators.
  • Auto rolling upgrade and restart.
  • Ingress for volume server, filer and S3, to support HDFS, REST filer, S3 API and cross-cluster replication.
  • Support all major cloud Kubernetes: AWS, Google, Azure.
  • Scheduled backup to cloud storage: S3, Google Cloud Storage , Azure.
  • Put warm data to cloud storage tier: S3, Google Cloud Storage , Azure.
  • Grafana dashboard.

Installation

Development

Follow the instructions in https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/

$ git clone https://github.com/seaweedfs/seaweedfs-operator
$ cd seaweedfs-operator

# register the CRD with the Kubernetes
$ make deploy

# build the operator image
$ make docker-build

# load the image into Kind cluster
$ kind load docker-image seaweedfs/operator:v0.0.1

# From another terminal in the same directory
$ kubectl apply -f config/samples/seaweed_v1_seaweed.yaml

Update the operator

# delete the existing operator
$ kubectl delete namespace seaweedfs-operator-system

# rebuild the operator image
$ make docker-build

# load the image into Kind cluster
$ kind load docker-image seaweedfs/operator:v0.0.1

# register the CRD with the Kubernetes
$ make deploy

develop outside of k8s

$ git clone https://github.com/seaweedfs/seaweedfs-operator
$ cd seaweedfs-operator

# register the CRD with the Kubernetes
$ make install

# run the operator locally outside the Kubernetes cluster
$ make run ENABLE_WEBHOOKS=false 

# From another terminal in the same directory
$ kubectl apply -f config/samples/seaweed_v1_seaweed.yaml