Skip to content

Commit

Permalink
Merge pull request #287 from nunnatsa/bump-k8s-deps
Browse files Browse the repository at this point in the history
Bump k8s deps and golang
  • Loading branch information
k8s-ci-robot authored May 30, 2024
2 parents 86bd402 + c6191c2 commit e4e898c
Show file tree
Hide file tree
Showing 21 changed files with 4,269 additions and 6,397 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Test with coverage
Expand All @@ -39,29 +39,29 @@ jobs:
env:
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |-
GO111MODULE=off go get github.com/mattn/goveralls
go install github.com/mattn/goveralls@latest
$(go env GOPATH)/bin/goveralls -coverprofile=coverprofiles/cover.coverprofile -service=github
go-linter:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
uses: golangci/golangci-lint-action@v6
with:
args: --timeout=5m -v
version: v1.55.2
version: v1.59.0

check-gen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Go
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Check that 'make generate' has being call
Expand Down
3 changes: 0 additions & 3 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,14 @@ linters-settings:

linters:
enable:
- deadcode
- errcheck
- ginkgolinter
- gosimple
- govet
- ineffassign
- staticcheck
- structcheck
- typecheck
- unused
- varcheck
disable: []

issues:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

# Build the manager binary
# Run this with docker build --build-arg builder_image=<golang:x.y.z>
ARG builder_image=golang:1.20
ARG builder_image=golang:1.22
FROM ${builder_image} as builder
WORKDIR /workspace

Expand Down
9 changes: 4 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -182,11 +182,10 @@ generate-go: $(CONTROLLER_GEN) $(CONVERSION_GEN) ## Runs Go related generate tar
paths=./api/...
(IFS=','; for i in "./api/v1alpha1"; do find $$i -type f -name 'zz_generated.conversion*' -exec rm -f {} \;; done)
$(CONVERSION_GEN) \
--input-dirs=./api/v1alpha1 \
--build-tag=ignore_autogenerated_capk_v1alpha1 \
--extra-peer-dirs=sigs.k8s.io/cluster-api/api/v1beta1 \
--output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \
--go-header-file=hack/boilerplate.generatego.txt
--output-file=zz_generated.conversion.go \
--go-header-file=hack/boilerplate.generatego.txt \
sigs.k8s.io/cluster-api-provider-kubevirt/api/v1alpha1

.PHONY: generate-manifests
generate-manifests: $(CONTROLLER_GEN) ## Generate manifests e.g. CRD, RBAC etc.
Expand Down Expand Up @@ -215,7 +214,7 @@ modules: ## Runs go mod to ensure modules are up to date.
.PHONY: docker-pull-prerequisites
docker-pull-prerequisites:
docker pull docker.io/docker/dockerfile:1.4
docker pull docker.io/library/golang:1.20.2
docker pull docker.io/library/golang:1.22.0
docker pull gcr.io/distroless/static:latest

.PHONY: docker-build
Expand Down
1 change: 0 additions & 1 deletion api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

202 changes: 108 additions & 94 deletions config/crd/bases/infrastructure.cluster.x-k8s.io_kubevirtclusters.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

3,656 changes: 1,746 additions & 1,910 deletions config/crd/bases/infrastructure.cluster.x-k8s.io_kubevirtmachines.yaml

Large diffs are not rendered by default.

3,977 changes: 1,696 additions & 2,281 deletions config/crd/bases/infrastructure.cluster.x-k8s.io_kubevirtmachinetemplates.yaml

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions config/rbac/role.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: manager-role
rules:
- apiGroups:
Expand Down
36 changes: 29 additions & 7 deletions controllers/kubevirtcluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,17 @@ package controllers
import (
gocontext "context"
"fmt"
"sigs.k8s.io/controller-runtime/pkg/builder"
"time"

"sigs.k8s.io/controller-runtime/pkg/builder"

"github.com/go-logr/logr"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
infrav1 "sigs.k8s.io/cluster-api-provider-kubevirt/api/v1alpha1"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/context"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/infracluster"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/loadbalancer"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/ssh"
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
"sigs.k8s.io/cluster-api/util"
"sigs.k8s.io/cluster-api/util/annotations"
Expand All @@ -44,6 +40,12 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/handler"

infrav1 "sigs.k8s.io/cluster-api-provider-kubevirt/api/v1alpha1"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/context"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/infracluster"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/loadbalancer"
"sigs.k8s.io/cluster-api-provider-kubevirt/pkg/ssh"
)

// KubevirtClusterReconciler reconciles a KubevirtCluster object.
Expand Down Expand Up @@ -134,7 +136,7 @@ func (r *KubevirtClusterReconciler) Reconcile(goctx gocontext.Context, req ctrl.
// Always attempt to Patch the KubevirtCluster object and status after each reconciliation.
defer func() {
if err := clusterContext.PatchKubevirtCluster(patchHelper); err != nil {
if err = utilerrors.FilterOut(err, apierrors.IsNotFound); err != nil {
if err = r.filterOutNotFoundError(err); err != nil {

clusterContext.Logger.Error(err, "failed to patch KubevirtCluster")
if rerr == nil {
Expand Down Expand Up @@ -303,3 +305,23 @@ func (r *KubevirtClusterReconciler) deleteExtraGVK(ctx *context.ClusterContext,

return nil
}

func (r *KubevirtClusterReconciler) filterOutNotFoundError(err error) error {
if err == nil {
return nil
}
var aggErr utilerrors.Aggregate
if errors.As(err, &aggErr) {
var errList []error
for _, err := range aggErr.Errors() {
if !apierrors.IsNotFound(err) {
errList = append(errList, err)
}
}
return utilerrors.NewAggregate(errList)
}
if !apierrors.IsNotFound(err) {
return err
}
return nil
}
2 changes: 1 addition & 1 deletion e2e/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ func (t *tenantClusterAccess) startForwardingTenantAPI(ctx context.Context) erro
}

func (t *tenantClusterAccess) findControlPlaneVMIName(ctx context.Context) (string, error) {
vmiList, err := virtClient.VirtualMachineInstance(t.namespace).List(ctx, &metav1.ListOptions{})
vmiList, err := virtClient.VirtualMachineInstance(t.namespace).List(ctx, metav1.ListOptions{})
if err != nil {
return "", err
}
Expand Down
35 changes: 18 additions & 17 deletions e2e/create-cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,10 @@ var _ = Describe("CreateCluster", func() {
virtClient, err = kubecli.GetKubevirtClientFromClientConfig(clientConfig)
Expect(err).ToNot(HaveOccurred())

_ = clusterv1.AddToScheme(k8sclient.Scheme())
_ = infrav1.AddToScheme(k8sclient.Scheme())
_ = kubevirtv1.AddToScheme(k8sclient.Scheme())
s := k8sclient.Scheme()
_ = clusterv1.AddToScheme(s)
_ = infrav1.AddToScheme(s)
_ = kubevirtv1.AddToScheme(s)

namespace = "e2e-test-create-cluster-" + rand.String(6)

Expand Down Expand Up @@ -396,7 +397,7 @@ var _ = Describe("CreateCluster", func() {
}

chooseWorkerVMI := func(ctx context.Context) *kubevirtv1.VirtualMachineInstance {
vmiList, err := virtClient.VirtualMachineInstance(namespace).List(ctx, &metav1.ListOptions{})
vmiList, err := virtClient.VirtualMachineInstance(namespace).List(ctx, metav1.ListOptions{})
Expect(err).ToNot(HaveOccurred())

var chosenVMI *kubevirtv1.VirtualMachineInstance
Expand Down Expand Up @@ -567,7 +568,7 @@ var _ = Describe("CreateCluster", func() {

chosenVMI.Labels[infrav1.KubevirtMachineVMTerminalLabel] = "marked-terminal-by-func-test"
var err error
chosenVMI, err = virtClient.VirtualMachineInstance(namespace).Update(ctx, chosenVMI)
chosenVMI, err = virtClient.VirtualMachineInstance(namespace).Update(ctx, chosenVMI, metav1.UpdateOptions{})
Expect(err).ToNot(HaveOccurred())

By("Wait for KubeVirtMachine is deleted due to remediation")
Expand Down Expand Up @@ -632,13 +633,13 @@ var _ = Describe("CreateCluster", func() {
chosenVMI := chooseWorkerVMI(ctx)

By("Setting VM to runstrategy once")
chosenVM, err := virtClient.VirtualMachine(chosenVMI.Namespace).Get(ctx, chosenVMI.Name, &metav1.GetOptions{})
chosenVM, err := virtClient.VirtualMachine(chosenVMI.Namespace).Get(ctx, chosenVMI.Name, metav1.GetOptions{})
Expect(err).ToNot(HaveOccurred())

once := kubevirtv1.RunStrategyOnce
chosenVM.Spec.RunStrategy = &once

_, err = virtClient.VirtualMachine(namespace).Update(ctx, chosenVM)
_, err = virtClient.VirtualMachine(namespace).Update(ctx, chosenVM, metav1.UpdateOptions{})
Expect(err).ToNot(HaveOccurred())

By("killing the chosen VMI's pod")
Expand Down Expand Up @@ -735,7 +736,7 @@ var _ = Describe("CreateCluster", func() {
waitForTenantAccess(ctx, 2)

By("Selecting a worker node to restart")
vmiList, err := virtClient.VirtualMachineInstance(namespace).List(ctx, &metav1.ListOptions{})
vmiList, err := virtClient.VirtualMachineInstance(namespace).List(ctx, metav1.ListOptions{})
Expect(err).ToNot(HaveOccurred())

var chosenVMI *kubevirtv1.VirtualMachineInstance
Expand All @@ -752,13 +753,13 @@ var _ = Describe("CreateCluster", func() {

By(fmt.Sprintf("By restarting worker node hosted in vmi %s", chosenVMI.Name))
Expect(
virtClient.VirtualMachineInstance(namespace).Delete(ctx, chosenVMI.Name, &metav1.DeleteOptions{}),
virtClient.VirtualMachineInstance(namespace).Delete(ctx, chosenVMI.Name, metav1.DeleteOptions{}),
).To(Succeed())

By("Expecting a KubevirtMachine to revert back to ready=false while VM restarts")
waitForMachineReadiness(1, 1)

deletedVmi, err := virtClient.VirtualMachineInstance(namespace).Get(ctx, chosenVMI.Name, &metav1.GetOptions{})
deletedVmi, err := virtClient.VirtualMachineInstance(namespace).Get(ctx, chosenVMI.Name, metav1.GetOptions{})
Expect(err).ShouldNot(HaveOccurred())
removeFinalizerFromVMI(ctx, deletedVmi)

Expand Down Expand Up @@ -864,7 +865,7 @@ func waitForVMIDraining(ctx context.Context, vmiName, namespace string) {

By("wait for VMI is marked for deletion")
Eventually(func(g Gomega) {
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, &metav1.GetOptions{})
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, metav1.GetOptions{})
g.Expect(err).ShouldNot(HaveOccurred())

vmiDebugPrintout(vmi)
Expand Down Expand Up @@ -897,7 +898,7 @@ func getRecreatedVMI(ctx context.Context, vmiName string, namespace string, orig
err error
)
Eventually(func(g Gomega) types.UID {
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, &metav1.GetOptions{})
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, metav1.GetOptions{})
g.Expect(err).ShouldNot(HaveOccurred())
g.Expect(vmi).ShouldNot(BeNil())

Expand Down Expand Up @@ -931,7 +932,7 @@ func validateNewNodeIP(ctx context.Context, cl *kubernetes.Clientset, vmiName, n

g.Expect(nodeIp).ShouldNot(BeEmpty(), "node's IP is not set")

vmi, err := virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, &metav1.GetOptions{})
vmi, err := virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, metav1.GetOptions{})

g.Expect(err).ShouldNot(HaveOccurred())
g.Expect(vmi).ShouldNot(BeNil())
Expand Down Expand Up @@ -962,13 +963,13 @@ func addFinalizerFromVMI(ctx context.Context, vmiName, namespace string) *kubevi
err error
)
Eventually(func() error {
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, &metav1.GetOptions{})
vmi, err = virtClient.VirtualMachineInstance(namespace).Get(ctx, vmiName, metav1.GetOptions{})
if err != nil {
return err
}

vmi.Finalizers = append(vmi.Finalizers, testFinalizer)
_, err = virtClient.VirtualMachineInstance(vmi.Namespace).Update(ctx, vmi)
_, err = virtClient.VirtualMachineInstance(vmi.Namespace).Update(ctx, vmi, metav1.UpdateOptions{})
return err
}).WithOffset(1).
WithTimeout(time.Minute).
Expand All @@ -979,7 +980,7 @@ func addFinalizerFromVMI(ctx context.Context, vmiName, namespace string) *kubevi
}

func removeFinalizerFromVMI(ctx context.Context, vmi *kubevirtv1.VirtualMachineInstance) {
vmi, err := virtClient.VirtualMachineInstance(vmi.Namespace).Get(ctx, vmi.Name, &metav1.GetOptions{})
vmi, err := virtClient.VirtualMachineInstance(vmi.Namespace).Get(ctx, vmi.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())

index := -1
Expand All @@ -994,7 +995,7 @@ func removeFinalizerFromVMI(ctx context.Context, vmi *kubevirtv1.VirtualMachineI
patch := []byte(fmt.Sprintf(`[{"op": "remove", "path": "/metadata/finalizers/%d"}]`, index))

Eventually(func() error {
_, err := virtClient.VirtualMachineInstance(vmi.Namespace).Patch(ctx, vmi.Name, types.JSONPatchType, patch, &metav1.PatchOptions{})
_, err := virtClient.VirtualMachineInstance(vmi.Namespace).Patch(ctx, vmi.Name, types.JSONPatchType, patch, metav1.PatchOptions{})
return err
}).WithOffset(1).
WithTimeout(time.Minute).
Expand Down
Loading

0 comments on commit e4e898c

Please sign in to comment.