-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Describe the bug
make test does not work as expected
During testing resource manager controller can't remove namespace that should be removed according label selector of resource manager object
To Reproduce
make test
• Failure [0.018 seconds]
Inside of a ResourceManager
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:16
when no existing resources exist
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:20
this namespace obj should no long be Active [It]
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:76
Expected
<string>: Active
not to equal
<string>: Active
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:80
Expected behavior
All tests are pass
Additional context
The problem become eliminated if test is changed by the way that it should delete all namespaces in dry-run mode.
Spec: resourcemanagmentv1alpha1.ResourceManagerSpec{
Disabled: false,
DryRun: true,
ResourceKind: "Namespace",
Selector: &metav1.LabelSelector{
MatchExpressions: []metav1.LabelSelectorRequirement(nil),
//MatchLabels: map[string]string{
// "managed-namespace": "true",
//},
},
Action: "delete",
Condition: resourcemanagmentv1alpha1.Expiration{
ExpireAfter: "1s",
},
},
If current context is active, test prints list of all namespaces of current context but not context of test. See logs bellow.
If no active context
make test
test -s /XXXXXXXX/tikal/resource-manager/bin/controller-gen || GOBIN=/XXXXXXXX/tikal/resource-manager/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.9.2
/XXXXXXXX/tikal/resource-manager/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/XXXXXXXX/tikal/resource-manager/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
go vet ./...
test -s /XXXXXXXX/tikal/resource-manager/bin/setup-envtest || GOBIN=/XXXXXXXX/tikal/resource-manager/bin go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
ACK_GINKGO_DEPRECATIONS=1.16.5 KUBEBUILDER_ASSETS="/XXXXXXXX/Library/Application Support/io.kubebuilder.envtest/k8s/1.24.2-darwin-amd64" go test -v ./... -coverprofile cover.out
? github.com/tikalk/resource-manager [no test files]
? github.com/tikalk/resource-manager/api/v1alpha1 [no test files]
=== RUN TestAPIs
Running Suite: Controller Suite
===============================
Random Seed: 1668969845
Will run 2 of 2 specs
ts=2022-11-20T18:44:12.028199Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:103 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManager object <default/test-resource-manager> reconciled. Reconciling..."
ts=2022-11-20T18:44:12.028236Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:132 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManager object added <default/test-resource-manager>. Handler creating..."
ts=2022-11-20T18:44:12.028311Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:140 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManagerHandler for <default/test-resource-manager> registering..."
•
------------------------------
• Failure [0.011 seconds]
Inside of a ResourceManager
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:16
when no existing resources exist
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:20
this namespace obj should no long be Active [It]
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:76
Expected
<string>: Active
not to equal
<string>: Active
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:80
------------------------------
ts=2022-11-20T18:44:12.036425Z level=info msg="Stopping and waiting for non leader election runnables"
ts=2022-11-20T18:44:12.036452Z level=info msg="Stopping and waiting for leader election runnables"
ts=2022-11-20T18:44:12.036461Z level=info msg="Shutdown signal received, waiting for all workers to finish" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager
ts=2022-11-20T18:44:12.036506Z level=info msg="All workers finished" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager
ts=2022-11-20T18:44:12.036519Z level=info msg="Stopping and waiting for caches"
ts=2022-11-20T18:44:12.036557Z level=info msg="Stopping and waiting for webhooks"
ts=2022-11-20T18:44:12.036568Z level=info msg="Wait completed, proceeding to shutdown the manager"
ts=2022-11-20T18:44:12.043701Z level=info logger=controller-runtime.metrics msg="Metrics server is starting to listen" addr=:8080
ts=2022-11-20T18:44:12.046025Z level=info msg="Stopping and waiting for non leader election runnables"
ts=2022-11-20T18:44:12.046037Z level=info msg="Stopping and waiting for leader election runnables"
ts=2022-11-20T18:44:12.046059Z level=info msg="Starting server" path=/metrics kind=metrics addr=[::]:8080
ts=2022-11-20T18:44:12.046118Z level=info msg="Starting EventSource" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager source="kind source: *v1alpha1.ResourceManager"
ts=2022-11-20T18:44:12.046139Z level=info msg="Starting Controller" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager
ts=2022-11-20T18:44:12.046168Z level=info msg="Starting workers" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager workercount=1
ts=2022-11-20T18:44:12.046176Z level=info msg="Shutdown signal received, waiting for all workers to finish" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager
ts=2022-11-20T18:44:12.046185Z level=info msg="All workers finished" controller=resourcemanager controllerGroup=resource-management.tikalk.com controllerKind=ResourceManager
ts=2022-11-20T18:44:12.046229Z level=info msg="Stopping and waiting for caches"
ts=2022-11-20T18:44:12.046264Z level=info msg="Stopping and waiting for webhooks"
ts=2022-11-20T18:44:12.04627Z level=info msg="Wait completed, proceeding to shutdown the manager"
ts=2022-11-20T18:44:12.046248Z level=error logger=controller-runtime.source msg="failed to get informer from cache" error="Timeout: failed waiting for *v1alpha1.ResourceManager Informer to sync" stacktrace="sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1.1\n\t/XXXXXXXX/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/source/source.go:144\nk8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext\n\t/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:233\nk8s.io/apimachinery/pkg/util/wait.poll\n\t/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:580\nk8s.io/apimachinery/pkg/util/wait.PollImmediateUntilWithContext\n\t/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:545\nsigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1\n\t/XXXXXXXX/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/source/source.go:132"
Summarizing 1 Failure:
[Fail] Inside of a ResourceManager when no existing resources exist [It] this namespace obj should no long be Active
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:80
Ran 2 of 2 Specs in 7.160 seconds
FAIL! -- 1 Passed | 1 Failed | 0 Pending | 0 Skipped
--- FAIL: TestAPIs (7.16s)
FAIL
coverage: 26.8% of statements
FAIL github.com/tikalk/resource-manager/controllers 7.645s
? github.com/tikalk/resource-manager/controllers/handlers [no test files]
=== RUN TestUtils
Running Suite: Utils Suite
==========================
Random Seed: 1668969844
Will run 2 of 2 specs
••
Ran 2 of 2 Specs in 0.000 seconds
SUCCESS! -- 2 Passed | 0 Failed | 0 Pending | 0 Skipped
--- PASS: TestUtils (0.00s)
PASS
coverage: 75.0% of statements
ok github.com/tikalk/resource-manager/controllers/utils 0.315s coverage: 75.0% of statements
? github.com/tikalk/resource-manager/tilt/tilt_modules/restart_process [no test files]
FAIL
make: *** [test] Error 1
If docker-desktop context is active
(⎈ |docker-desktop:default)$ make test
test -s /XXXXXXXX/tikal/resource-manager/bin/controller-gen || GOBIN=/XXXXXXXX/tikal/resource-manager/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.9.2
/XXXXXXXX/tikal/resource-manager/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/XXXXXXXX/tikal/resource-manager/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
go vet ./...
test -s /XXXXXXXX/tikal/resource-manager/bin/setup-envtest || GOBIN=/XXXXXXXX/tikal/resource-manager/bin go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
ACK_GINKGO_DEPRECATIONS=1.16.5 KUBEBUILDER_ASSETS="/XXXXXXXX/Library/Application Support/io.kubebuilder.envtest/k8s/1.24.2-darwin-amd64" go test -v ./... -coverprofile cover.out
? github.com/tikalk/resource-manager [no test files]
? github.com/tikalk/resource-manager/api/v1alpha1 [no test files]
=== RUN TestAPIs
Running Suite: Controller Suite
===============================
Random Seed: 1668971485
Will run 2 of 2 specs
ts=2022-11-20T19:11:32.678847Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:103 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManager object <default/test-resource-manager> reconciled. Reconciling..."
ts=2022-11-20T19:11:32.678897Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:132 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManager object added <default/test-resource-manager>. Handler creating..."
ts=2022-11-20T19:11:32.678945Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller.go:140 github.com/tikalk/resource-manager/controllers.(*ResourceManagerReconciler).Reconcile | ResourceManagerHandler for <default/test-resource-manager> registering..."
•
------------------------------
• Failure [0.018 seconds]
Inside of a ResourceManager
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:16
when no existing resources exist
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:20
this namespace obj should no long be Active [It]
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:76
Expected
<string>: Active
not to equal
<string>: Active
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:80
------------------------------
1.668971492688082e+09 INFO Stopping and waiting for non leader election runnables
1.668971492688115e+09 INFO Stopping and waiting for leader election runnables
1.668971492688137e+09 INFO Shutdown signal received, waiting for all workers to finish {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager"}
1.668971492688174e+09 INFO All workers finished {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager"}
1.668971492688179e+09 INFO Stopping and waiting for caches
1.668971492688246e+09 INFO Stopping and waiting for webhooks
1.668971492688253e+09 INFO Wait completed, proceeding to shutdown the manager
1.668971492698383e+09 INFO controller-runtime.metrics Metrics server is starting to listen {"addr": ":8080"}
1.6689714927035992e+09 INFO Starting server {"path": "/metrics", "kind": "metrics", "addr": "[::]:8080"}
1.6689714927037702e+09 INFO Stopping and waiting for non leader election runnables
1.668971492703778e+09 INFO Stopping and waiting for leader election runnables
1.668971492703826e+09 INFO Starting EventSource {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager", "source": "kind source: *v1alpha1.ResourceManager"}
1.668971492703847e+09 INFO Starting Controller {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager"}
1.668971492703852e+09 INFO Starting workers {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager", "worker count": 1}
1.668971492703857e+09 INFO Shutdown signal received, waiting for all workers to finish {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager"}
1.668971492703948e+09 INFO All workers finished {"controller": "resourcemanager", "controllerGroup": "resource-management.tikalk.com", "controllerKind": "ResourceManager"}
1.6689714927039528e+09 INFO Stopping and waiting for caches
1.66897149270399e+09 ERROR controller-runtime.source failed to get informer from cache {"error": "Timeout: failed waiting for *v1alpha1.ResourceManager Informer to sync"}
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1.1
/XXXXXXXX/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/source/source.go:144
k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext
/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:233
k8s.io/apimachinery/pkg/util/wait.poll
/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:580
k8s.io/apimachinery/pkg/util/wait.PollImmediateUntilWithContext
/XXXXXXXX/go/pkg/mod/k8s.io/apimachinery@v0.24.2/pkg/util/wait/wait.go:545
sigs.k8s.io/controller-runtime/pkg/source.(*Kind).Start.func1
/XXXXXXXX/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.2/pkg/source/source.go:132
1.668971492704063e+09 INFO Stopping and waiting for webhooks
1.6689714927040682e+09 INFO Wait completed, proceeding to shutdown the manager
ts=2022-11-20T19:11:32.716018Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </argocd>"
ts=2022-11-20T19:11:32.716143Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </default>"
ts=2022-11-20T19:11:32.716186Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </default> after <1s> age <510h0m19.716157s> wait <-510h0m18.716157s>"
ts=2022-11-20T19:11:32.716215Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </default>"
ts=2022-11-20T19:11:32.716208Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </argocd> after <1s> age <509h47m1.716177s> wait <-509h47m0.716177s>"
ts=2022-11-20T19:11:32.716227Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </default> action <delete> "
ts=2022-11-20T19:11:32.716235Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </argocd>"
ts=2022-11-20T19:11:32.71625Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </argocd> action <delete> "
ts=2022-11-20T19:11:32.716217Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </kube-node-lease>"
ts=2022-11-20T19:11:32.716264Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </kube-public>"
ts=2022-11-20T19:11:32.716282Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </kube-public> after <1s> age <510h0m20.716271s> wait <-510h0m19.716271s>"
ts=2022-11-20T19:11:32.716299Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </kube-public>"
ts=2022-11-20T19:11:32.716312Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </kube-public> action <delete> "
ts=2022-11-20T19:11:32.716298Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </kube-node-lease> after <1s> age <510h0m20.716267s> wait <-510h0m19.716267s>"
ts=2022-11-20T19:11:32.716347Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </kube-system>"
ts=2022-11-20T19:11:32.716337Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </kube-node-lease>"
ts=2022-11-20T19:11:32.716358Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/resource_manager_handler.go:95 github.com/tikalk/resource-manager/controllers.(*ResourceManagerHandler).Run.func1 | Adding object handler: </xxx>"
ts=2022-11-20T19:11:32.716376Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </xxx> after <1s> age <99h55m30.716365s> wait <-99h55m29.716365s>"
ts=2022-11-20T19:11:32.716393Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </xxx>"
ts=2022-11-20T19:11:32.716414Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </xxx> action <delete> "
ts=2022-11-20T19:11:32.716424Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </kube-node-lease> action <delete> "
ts=2022-11-20T19:11:32.71642Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:145 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object age expiration </kube-system> after <1s> age <510h0m20.716378s> wait <-510h0m19.716378s>"
ts=2022-11-20T19:11:32.7165Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:179 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | object already expired </kube-system>"
ts=2022-11-20T19:11:32.716518Z level=info msg="/XXXXXXXX/tikal/resource-manager/controllers/object_handler.go:192 github.com/tikalk/resource-manager/controllers.(*ObjectHandler).Run | dry-run performing object </kube-system> action <delete> "
Summarizing 1 Failure:
[Fail] Inside of a ResourceManager when no existing resources exist [It] this namespace obj should no long be Active
/XXXXXXXX/tikal/resource-manager/controllers/resourcemanager_controller_test.go:80
Ran 2 of 2 Specs in 8.710 seconds
FAIL! -- 1 Passed | 1 Failed | 0 Pending | 0 Skipped
--- FAIL: TestAPIs (8.71s)
FAIL
coverage: 44.5% of statements
FAIL github.com/tikalk/resource-manager/controllers 9.257s
? github.com/tikalk/resource-manager/controllers/handlers [no test files]
=== RUN TestUtils
Running Suite: Utils Suite
==========================
Random Seed: 1668971477
Will run 2 of 2 specs
••
Ran 2 of 2 Specs in 0.001 seconds
SUCCESS! -- 2 Passed | 0 Failed | 0 Pending | 0 Skipped
--- PASS: TestUtils (0.00s)
PASS
coverage: 75.0% of statements
ok github.com/tikalk/resource-manager/controllers/utils 0.673s coverage: 75.0% of statements
? github.com/tikalk/resource-manager/tilt/tilt_modules/restart_process [no test files]
FAIL
make: *** [test] Error 1
k get ns
NAME STATUS AGE
argocd Active 21d
default Active 21d
kube-node-lease Active 21d
kube-public Active 21d
kube-system Active 21d
xxx Active 4d4h
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels