summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2018-11-11 16:45:22 +0000
committerSteve Azzopardi <sazzopardi@gitlab.com>2018-11-12 11:15:00 +0000
commite5d2921faa15c9d74ad69d62360b59e3c30ecd47 (patch)
tree0e05c833ee911a3b31e8d8de711751b59c3958e5
parent47909648963344a84939ca32bdfd8c9fc0a01810 (diff)
downloadgitlab-ce-e5d2921faa15c9d74ad69d62360b59e3c30ecd47.tar.gz
Merge branch 'fix-error-handling-bugs-in-kubernetes-integration' into 'master'
Fix error handling bugs in kubernetes integration See merge request gitlab-org/gitlab-ce!22922 (cherry picked from commit f69f7a6702f68a14cb29b2686b030f36711cef7f) b9916610 Remove special handling for 404 response from K8s f852b235 Fix error handling in cluster_platform_configure_worker 269b0e10 Add changelog for fixing k8s integration error handling
-rw-r--r--app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb2
-rw-r--r--app/workers/cluster_platform_configure_worker.rb2
-rw-r--r--changelogs/unreleased/fix-error-handling-bugs-in-kubernetes-integration.yml5
-rw-r--r--spec/workers/cluster_platform_configure_worker_spec.rb14
4 files changed, 20 insertions, 3 deletions
diff --git a/app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb b/app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb
index a888fab2789..2b607681082 100644
--- a/app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb
+++ b/app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb
@@ -16,8 +16,6 @@ module Clusters
configure_kubernetes_token
kubernetes_namespace.save!
- rescue ::Kubeclient::HttpError => err
- raise err unless err.error_code = 404
end
private
diff --git a/app/workers/cluster_platform_configure_worker.rb b/app/workers/cluster_platform_configure_worker.rb
index 68e8335a09d..8f3689f0166 100644
--- a/app/workers/cluster_platform_configure_worker.rb
+++ b/app/workers/cluster_platform_configure_worker.rb
@@ -17,6 +17,6 @@ class ClusterPlatformConfigureWorker
end
rescue ::Kubeclient::HttpError => err
- Rails.logger.error "Failed to create/update Kubernetes Namespace. id: #{kubernetes_namespace.id} message: #{err.message}"
+ Rails.logger.error "Failed to create/update Kubernetes namespace for cluster_id: #{cluster_id} with error: #{err.message}"
end
end
diff --git a/changelogs/unreleased/fix-error-handling-bugs-in-kubernetes-integration.yml b/changelogs/unreleased/fix-error-handling-bugs-in-kubernetes-integration.yml
new file mode 100644
index 00000000000..f2a117fe63f
--- /dev/null
+++ b/changelogs/unreleased/fix-error-handling-bugs-in-kubernetes-integration.yml
@@ -0,0 +1,5 @@
+---
+title: Fix error handling bugs in kubernetes integration
+merge_request: 22922
+author:
+type: fixed
diff --git a/spec/workers/cluster_platform_configure_worker_spec.rb b/spec/workers/cluster_platform_configure_worker_spec.rb
index 1a7ad8923f6..b51f6e07c6a 100644
--- a/spec/workers/cluster_platform_configure_worker_spec.rb
+++ b/spec/workers/cluster_platform_configure_worker_spec.rb
@@ -30,4 +30,18 @@ describe ClusterPlatformConfigureWorker, '#execute' do
described_class.new.perform(123)
end
end
+
+ context 'when kubeclient raises error' do
+ let(:cluster) { create(:cluster, :project) }
+
+ it 'rescues and logs the error' do
+ allow_any_instance_of(Clusters::Gcp::Kubernetes::CreateOrUpdateNamespaceService).to receive(:execute).and_raise(::Kubeclient::HttpError.new(500, 'something baaaad happened', ''))
+
+ expect(Rails.logger)
+ .to receive(:error)
+ .with("Failed to create/update Kubernetes namespace for cluster_id: #{cluster.id} with error: something baaaad happened")
+
+ described_class.new.perform(cluster.id)
+ end
+ end
end