diff --git a/lib/kubernetes-deploy/kubernetes_resource/custom_resource.rb b/lib/kubernetes-deploy/kubernetes_resource/custom_resource.rb index 9926cc634..1a9a57b8d 100644 --- a/lib/kubernetes-deploy/kubernetes_resource/custom_resource.rb +++ b/lib/kubernetes-deploy/kubernetes_resource/custom_resource.rb @@ -29,7 +29,11 @@ def deploy_failed? def failure_message messages = rollout_params[:failure_queries].map do |query| next unless JsonPath.new(query[:path]).first(@instance_data) == query[:value] - JsonPath.new(query[:error_msg_path]).first(@instance_data) if query[:error_msg_path] + if query[:custom_error_msg] + query[:custom_error_msg] + else + JsonPath.new(query[:error_msg_path]).first(@instance_data) if query[:error_msg_path] + end end.compact messages.present? ? messages.join("\n") : "error deploying #{id}" end diff --git a/lib/kubernetes-deploy/kubernetes_resource/custom_resource_definition.rb b/lib/kubernetes-deploy/kubernetes_resource/custom_resource_definition.rb index 27307ac1a..bfa7a6699 100644 --- a/lib/kubernetes-deploy/kubernetes_resource/custom_resource_definition.rb +++ b/lib/kubernetes-deploy/kubernetes_resource/custom_resource_definition.rb @@ -97,6 +97,7 @@ def validate_params(params) params[:failure_queries].each do |query| JsonPath.new(query[:path]) JsonPath.new(query[:error_msg_path]) if query[:error_msg_path] + raise RuntimeError if query[:custom_error_msg] && !query[:custom_error_msg].is_a?(String) end rescue RuntimeError => e raise FatalDeploymentError, "error parsing JsonPath expression for custom resource params: #{e.message}"