seaweedfs kubernetes operator
Go to file
Chris Lu a0e3c1a7a7 add group extensions for ingress 2021-02-07 03:10:42 -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 add group extensions for ingress 2021-02-07 03:10:42 -08:00
controllers add group extensions for ingress 2021-02-07 03:10:42 -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 Update Makefile 2020-11-14 13:31:54 -08:00
PROJECT Add instructions for end-user deployment 2020-11-15 11:18:19 +08:00
README.md adjust docker image name 2021-02-06 00:28:05 -08:00
go.mod sync with seaweedfs 2.20 2021-01-09 23:19:40 -08:00
go.sum sync with seaweedfs 2.20 2021-01-09 23:19:40 -08:00
main.go detect ENABLE_WEBHOOKS!=false 2020-11-03 20:24:19 -08:00
seaweedfs-operator.iml adjust docker image name 2021-02-06 00:28:05 -08: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

This operator uses kustomize to deploy. The installation process will install one for you if you do not have one.

By default, the defaulting and validation webhooks are disabled. We strongly recommend that the webhooks be enabled.

First clone the repository:

$ git clone https://github.com/seaweedfs/seaweedfs-operator --depth=1

To deploy the operator with webhooks enabled, make sure you have installed the cert-manager(Installation docs: https://cert-manager.io/docs/installation/) in your cluster, then follow the instructions in the config/default/kustomization.yaml file to uncomment the components you need.

Lastly, change the value of ENABLE_WEBHOOKS to "true" in config/manager/manager.yaml

Then run the command to deploy the operator into your cluster:

$ make deploy

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 chrislusf/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 chrislusf/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