Skip to main content

Unable to deploy Spinnaker after changing Operator and Halyard versions

Issue

After upgrading operator to version 1.2.7  and halyard to version 1.12.1, it is noticed that Spinnaker deployments do not go through. Below errors may be seen on operator and halyard logs

Operator container logs

{"level":"error","ts":1626238705.074147,"logger":"controller-runtime.controller","msg":"Reconciler 
error","controller":"spinnakerservice-controller","request":"spinnaker-operator/spinnaker","error":"got halyard response status 405,
response: Request method 'POST' not supported","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\t/opt/spinnaker-
operator/build/vendor/github.com/go-logr/zapr/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/internal/controller.
(*Controller).reconcileHandler\n\t/opt/spinnaker-operator/build/vendor/sigs.k8s.io/controller-
runtime/pkg/internal/controller/controller.go:218\nsigs.k8s.io/controller-runtime/pkg/internal/controller.
(*Controller).processNextWorkItem\n\t/opt/spinnaker-operator/build/vendor/sigs.k8s.io/controller-
runtime/pkg/internal/controller/controller.go:192\nsigs.k8s.io/controller-runtime/pkg/internal/controller.
(*Controller).worker\n\t/opt/spinnaker-operator/build/vendor/sigs.k8s.io/controller-
runtime/pkg/internal/controller/controller.go:171\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/opt/spinnaker-
operator/build/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/opt/spinnaker-
operator/build/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153\nk8s.io/apimachinery/pkg/util/wait.Until\n\t/opt/spinnaker-
operator/build/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88"}

Halyard container logs

2021-07-14 04:56:24.022  INFO 1 --- [nio-8064-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 28 ms
2021-07-14 04:56:55.631 WARN 1 --- [nio-8064-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
2021-07-14 04:56:56.678 WARN 1 --- [nio-8064-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
2021-07-14 04:56:57.711 WARN 1 --- [nio-8064-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]

Cause

Operator pod basically is a multi-container pod that has both operator and halyard containers running within it. As seen on Halyard logs, Halyard version 1.12.1 is unable to handle the request from Operator and thus resulting in 405 responses in the Operator logs. This is noticed with this particular version combination of Operator and Halyard.