Operator resource update failed after authentication is disabled
- Dominant language
- Go
- Stars
- 283
- Forks
- 148
- PR merge metrics
- No merged PRs in 30d
Description
I created a SolrCloud and enable authentication, and then I closed authentication for some reason.
When I changed CR, I found that operator can not work.
```
2022-06-13T02:04:45.551Z INFO controller-runtime.manager.controller.solrcloud Starting workers {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "worker count": 1}
2022-06-13T02:04:45.871Z ERROR controller-runtime.manager.controller.solrcloud.ManagedUpdateSelector Error retrieving cluster status, delaying pod update selection {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "name": "solr-project1", "namespace": "project-1", "error": "Recieved bad response code of 401 from solr with response: \n\n\nError 401 Authentication failed, Response code: 401\n\n
HTTP ERROR 401 Authentication failed, Response code: 401
\n\n\n\n\n\nURI:/solr/admin/collectionsSTATUS:401MESSAGE:Authentication failed, Response code: 401SERVLET:default\n\n\n\n"}github.com/go-logr/zapr.(*zapLogger).Error
/go/pkg/mod/github.com/go-logr/zapr@v0.2.0/zapr.go:132
github.com/apache/solr-operator/controllers/util.DeterminePodsSafeToUpdate
/workspace/controllers/util/solr_update_util.go:122
github.com/apache/solr-operator/controllers.(*SolrCloudReconciler).Reconcile
/workspace/controllers/solrcloud_controller.go:421
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:216
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:155
k8s.io/apimachinery/pkg/util/wait.BackoffUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:156
k8s.io/apimachinery/pkg/util/wait.JitterUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:133
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.UntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:99
2022-06-13T02:04:47.203Z ERROR controller-runtime.manager.controller.solrcloud.ManagedUpdateSelector Error retrieving cluster status, delaying pod update selection {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "name": "solr-project1", "namespace": "project-1", "error": "Recieved bad response code of 401 from solr with response: \n\n\nError 401 Authentication failed, Response code: 401\n\n
HTTP ERROR 401 Authentication failed, Response code: 401
\n\n\n\n\n\nURI:/solr/admin/collectionsSTATUS:401MESSAGE:Authentication failed, Response code: 401SERVLET:default\n\n\n\n"}github.com/go-logr/zapr.(*zapLogger).Error
/go/pkg/mod/github.com/go-logr/zapr@v0.2.0/zapr.go:132
github.com/apache/solr-operator/controllers/util.DeterminePodsSafeToUpdate
/workspace/controllers/util/solr_update_util.go:122
github.com/apache/solr-operator/controllers.(*SolrCloudReconciler).Reconcile
/workspace/controllers/solrcloud_controller.go:421
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:216
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:155
k8s.io/apimachinery/pkg/util/wait.BackoffUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:156
k8s.io/apimachinery/pkg/util/wait.JitterUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:133
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.UntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:99
```
I used solr-operator v0.5.1, and I think it is a bug?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in controllers/util/solr_update_util.go around line 122, then follow the SolrCloud reconciliation path at controllers/solrcloud_controller.go line 421. Reproduce changing a SolrCloud resource after authentication is disabled and trace the 401 response; done means reconciliation proceeds without repeatedly failing cluster-status retrieval.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- authentication, devops
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100