From fd9f944189d14df0fdedec344d14da13959ad4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCttler?= Date: Thu, 23 Apr 2026 15:07:21 +0200 Subject: [PATCH] Fix long CRD change group validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Güttler --- pkg/kapp/diffgraph/change_group.go | 5 +++-- pkg/kapp/diffgraph/change_group_test.go | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/kapp/diffgraph/change_group.go b/pkg/kapp/diffgraph/change_group.go index 12150f40a..81ed1f3b1 100644 --- a/pkg/kapp/diffgraph/change_group.go +++ b/pkg/kapp/diffgraph/change_group.go @@ -52,8 +52,9 @@ func (r ChangeGroup) isQualifiedNameWithoutLen(name string) []string { errStrs := k8sval.IsQualifiedName(name) var updatedErrStrs []string for _, err := range errStrs { - // Allow change group names to have more characters than the default maxLength - if !strings.Contains(err, k8sval.MaxLenError(k8sval.DNS1035LabelMaxLength)) { + // Allow change group names to have more characters than the default maxLength. + // k8s has used both "characters" and "bytes" wording across versions. + if !strings.Contains(err, "must be no more than 63 ") { updatedErrStrs = append(updatedErrStrs, err) } } diff --git a/pkg/kapp/diffgraph/change_group_test.go b/pkg/kapp/diffgraph/change_group_test.go index 71aa49ed9..4821e24ad 100644 --- a/pkg/kapp/diffgraph/change_group_test.go +++ b/pkg/kapp/diffgraph/change_group_test.go @@ -22,6 +22,8 @@ func TestNewChangeGroupFromAnnString(t *testing.T) { "valid-name.com/valid-name_CustomResourceDefinition--valid", // Example from pinniped of a long name "change-groups.kapp.k14s.io/crds-authentication.concierge.pinniped.dev-WebhookAuthenticator", + // Regression test for #1123: long CRD group + kind can exceed 63 bytes. + "change-groups.kapp.k14s.io/crds-fooooooooooooooooooooooooooooooooooooooooooooooooooooo.example.com-SomeLongCRDName", } for _, name := range names { cg, err := ctldgraph.NewChangeGroupFromAnnString(name)