diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..0d0fd94 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,29 @@ +name: Lint +on: + push: + branches: + - master + pull_request: + branches: + - master +jobs: + golangci: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. + version: v1.31 + + # Optional: working directory, useful for monorepos + # working-directory: somedir + + # Optional: golangci-lint command line arguments. + # TODO: remove disabled + args: --timeout=10m -D errcheck -D deadcode -D unused + + # Optional: show only new issues if it's a pull request. The default value is `false`. + # only-new-issues: true diff --git a/controllers/controller_filer_statefulset.go b/controllers/controller_filer_statefulset.go index 5de5557..71ae7ec 100644 --- a/controllers/controller_filer_statefulset.go +++ b/controllers/controller_filer_statefulset.go @@ -16,6 +16,7 @@ func buildFilerStartupScript(m *seaweedv1.Seaweed) string { commands := []string{"weed", "filer"} commands = append(commands, fmt.Sprintf("-port=%d", seaweedv1.FilerHTTPPort)) commands = append(commands, fmt.Sprintf("-ip=$(POD_NAME).%s-filer-peer", m.Name)) + commands = append(commands, fmt.Sprintf("-peers=%s", getFilerPeersString(m.Name, m.Spec.Volume.Replicas))) commands = append(commands, fmt.Sprintf("-master=%s", getMasterPeersString(m.Name, m.Spec.Master.Replicas))) commands = append(commands, "-s3") diff --git a/controllers/helper.go b/controllers/helper.go index 12b7c6b..f449876 100644 --- a/controllers/helper.go +++ b/controllers/helper.go @@ -10,6 +10,7 @@ import ( const ( masterPeerAddressPattern = "%s-master-%d.%s-master-peer:9333" + filerPeerAddressPattern = "%s-filer-%d.%s-filer-peer:8888" masterPeerAddressWithNamespacePattern = "%s-master-%d.%s-master-peer.%s:9333" filerServiceAddressWithNamespacePattern = "%s-filer.%s:8888" masterServiceAddressWithNamespacePattern = "%s-master.%s:9333" @@ -51,6 +52,18 @@ func ReconcileResult(err error) (bool, ctrl.Result, error) { return false, ctrl.Result{}, nil } +func getFilerAddresses(name string, replicas int32) []string { + peersAddresses := make([]string, 0, replicas) + for i := int32(0); i < replicas; i++ { + peersAddresses = append(peersAddresses, fmt.Sprintf(filerPeerAddressPattern, name, i, name)) + } + return peersAddresses +} + +func getFilerPeersString(name string, replicas int32) string { + return strings.Join(getFilerAddresses(name, replicas), ",") +} + func getMasterAddresses(name string, replicas int32) []string { peersAddresses := make([]string, 0, replicas) for i := int32(0); i < replicas; i++ { @@ -62,6 +75,7 @@ func getMasterAddresses(name string, replicas int32) []string { func getMasterPeersString(name string, replicas int32) string { return strings.Join(getMasterAddresses(name, replicas), ",") } + func getMasterAddressesWithNamespace(name, namespace string, replicas int32) []string { peersAddresses := make([]string, 0, replicas) for i := int32(0); i < replicas; i++ {