From 2acfe3d8d21e982307f1a2369e80f57d01b8171b Mon Sep 17 00:00:00 2001 From: Victor Chen Date: Fri, 2 Jun 2023 12:28:25 +1000 Subject: [PATCH 1/2] fix nested for loop --- .../cyclenoderequest/transitioner/node.go | 17 +++++++++-------- .../cyclenoderequest/transitioner/util.go | 7 +++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/controller/cyclenoderequest/transitioner/node.go b/pkg/controller/cyclenoderequest/transitioner/node.go index cac4205..046148a 100644 --- a/pkg/controller/cyclenoderequest/transitioner/node.go +++ b/pkg/controller/cyclenoderequest/transitioner/node.go @@ -3,9 +3,10 @@ package transitioner import ( "fmt" + corev1 "k8s.io/api/core/v1" + v1 "github.com/atlassian-labs/cyclops/pkg/apis/atlassian/v1" "github.com/atlassian-labs/cyclops/pkg/cloudprovider" - corev1 "k8s.io/api/core/v1" ) // listReadyNodes lists nodes that are "ready". By default lists nodes that have also not been touched by Cyclops. @@ -54,14 +55,14 @@ func (t *CycleNodeRequestTransitioner) getNodesToTerminate(numNodes int64) (node return nil, 0, err } - for _, nodeToTerminate := range t.cycleNodeRequest.Status.NodesToTerminate { - for _, kubeNode := range kubeNodes { - // Skip nodes that are already being worked on so we don't duplicate our work - if value, ok := kubeNode.Labels[cycleNodeLabel]; ok && value == t.cycleNodeRequest.Name { - numNodesInProgress++ - break - } + for _, kubeNode := range kubeNodes { + // Skip nodes that are already being worked on so we don't duplicate our work + if value, ok := kubeNode.Labels[cycleNodeLabel]; ok && value == t.cycleNodeRequest.Name { + numNodesInProgress++ + continue + } + for _, nodeToTerminate := range t.cycleNodeRequest.Status.NodesToTerminate { // Add nodes that need to be terminated but have not yet been actioned if kubeNode.Name == nodeToTerminate.Name && kubeNode.Spec.ProviderID == nodeToTerminate.ProviderID { nodes = append(nodes, &kubeNode) diff --git a/pkg/controller/cyclenoderequest/transitioner/util.go b/pkg/controller/cyclenoderequest/transitioner/util.go index 5b4f1ac..f6b6f43 100644 --- a/pkg/controller/cyclenoderequest/transitioner/util.go +++ b/pkg/controller/cyclenoderequest/transitioner/util.go @@ -5,8 +5,6 @@ import ( "fmt" "time" - v1 "github.com/atlassian-labs/cyclops/pkg/apis/atlassian/v1" - "github.com/atlassian-labs/cyclops/pkg/cloudprovider" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" @@ -14,6 +12,9 @@ import ( "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/reconcile" + + v1 "github.com/atlassian-labs/cyclops/pkg/apis/atlassian/v1" + "github.com/atlassian-labs/cyclops/pkg/cloudprovider" ) // transitionToHealing transitions the current cycleNodeRequest to healing which will always transiting to failed @@ -108,7 +109,6 @@ func (t *CycleNodeRequestTransitioner) reapChildren() (v1.CycleNodeRequestPhase, // Check all of the children - if any are failed, the whole CycleNodeRequest fails inProgressCount := 0 - reapedChildren := 0 for _, cycleNodeStatus := range cycleNodeStatusList.Items { switch cycleNodeStatus.Status.Phase { case v1.CycleNodeStatusFailed: @@ -123,7 +123,6 @@ func (t *CycleNodeRequestTransitioner) reapChildren() (v1.CycleNodeRequestPhase, if err != nil { return nextPhase, err } - reapedChildren++ default: inProgressCount++ } From 2bb79a4d02a3337f926e9e4efeecfdf599c4ead6 Mon Sep 17 00:00:00 2001 From: Victor Chen Date: Fri, 2 Jun 2023 16:33:53 +1000 Subject: [PATCH 2/2] upgrade github action versions --- .github/workflows/build.yml | 4 ++-- .github/workflows/docker-publish.yml | 2 +- .github/workflows/golangci-lint.yml | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 62e46e2..8220e2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,13 +14,13 @@ jobs: steps: - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: go-version: ^1.15 id: go - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build run: make build diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index fb43489..5c87105 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -19,7 +19,7 @@ jobs: if: github.event_name == 'push' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v1 diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 49fcf47..146da1b 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -11,9 +11,9 @@ jobs: name: lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: golangci-lint - uses: golangci/golangci-lint-action@v2 + uses: golangci/golangci-lint-action@v3 with: - version: v1.48 + version: v1.51.0 args: --timeout=5m