From 7b86b919ce741eedf5536062f573c133f3fe6524 Mon Sep 17 00:00:00 2001 From: Morgan Vallati Date: Fri, 24 Oct 2025 13:43:32 -0300 Subject: [PATCH] Version 3.8.1 --- CHANGELOG.md | 4 ++++ .../kubernetes_resource/custom_resource.rb | 2 +- lib/krane/version.rb | 2 +- .../custom_resource_definition_test.rb | 19 ++++++++++++++----- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f71707c21..6e6b073f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## next +## 3.8.1 + +- check if observedGeneration is present before comparing with generation for custom resources + ## 3.8.0 - Add Elasticsearch resource to the black list so it is not marked for deletion diff --git a/lib/krane/kubernetes_resource/custom_resource.rb b/lib/krane/kubernetes_resource/custom_resource.rb index 453ce3f8d..7a5251564 100644 --- a/lib/krane/kubernetes_resource/custom_resource.rb +++ b/lib/krane/kubernetes_resource/custom_resource.rb @@ -39,7 +39,7 @@ def failure_message end def timeout_message - if rollout_conditions && current_generation != observed_generation + if observed_generation.present? && rollout_conditions && current_generation != observed_generation TIMEOUT_MESSAGE_DIFFERENT_GENERATIONS else super diff --git a/lib/krane/version.rb b/lib/krane/version.rb index 35819461e..f464e839e 100644 --- a/lib/krane/version.rb +++ b/lib/krane/version.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true module Krane - VERSION = "3.8.0" + VERSION = "3.8.1" end diff --git a/test/unit/krane/kubernetes_resource/custom_resource_definition_test.rb b/test/unit/krane/kubernetes_resource/custom_resource_definition_test.rb index db3b79bbc..862a56931 100644 --- a/test/unit/krane/kubernetes_resource/custom_resource_definition_test.rb +++ b/test/unit/krane/kubernetes_resource/custom_resource_definition_test.rb @@ -159,11 +159,20 @@ def test_instance_timeout_annotation end def test_instance_timeout_messages_with_rollout_conditions + rollout_conditions = { + success_conditions: [ + { + path: "$.status.conditions[?(@.type == 'Ready')].status", + value: "True", + }, + ], + }.to_json + crd = build_crd(crd_spec.merge( "metadata" => { "name" => "unittests.stable.example.io", "annotations" => { - rollout_conditions_annotation_key => "true", + rollout_conditions_annotation_key => rollout_conditions, }, }, )) @@ -176,12 +185,12 @@ def test_instance_timeout_messages_with_rollout_conditions }, }) - cr.expects(:current_generation).returns(1) - cr.expects(:observed_generation).returns(1) + cr.expects(:current_generation).at_least_once.returns(1) + cr.expects(:observed_generation).at_least_once.returns(1) assert_equal(cr.timeout_message, Krane::KubernetesResource::STANDARD_TIMEOUT_MESSAGE) - cr.expects(:current_generation).returns(1) - cr.expects(:observed_generation).returns(2) + cr.expects(:current_generation).at_least_once.returns(1) + cr.expects(:observed_generation).at_least_once.returns(2) assert_equal(cr.timeout_message, Krane::CustomResource::TIMEOUT_MESSAGE_DIFFERENT_GENERATIONS) end