From 9429164617653a7ef32419fbb881f1a2faff7e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Thu, 4 Apr 2024 21:32:49 +0200 Subject: [PATCH 1/2] Fix cidata user-data ca_certs yaml content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is failing the cloud-config jsonschema validation, later. $ sudo cloud-init schema --system Error: Cloud config schema errors: ca_certs.trusted: None is not of type 'array' Signed-off-by: Anders F Björklund --- pkg/cidata/cidata.TEMPLATE.d/user-data | 2 ++ pkg/cidata/template_test.go | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/pkg/cidata/cidata.TEMPLATE.d/user-data b/pkg/cidata/cidata.TEMPLATE.d/user-data index ada882fd040..26060b0c1c0 100644 --- a/pkg/cidata/cidata.TEMPLATE.d/user-data +++ b/pkg/cidata/cidata.TEMPLATE.d/user-data @@ -66,6 +66,7 @@ resolv_conf: {{ with .CACerts }} ca_certs: remove_defaults: {{ .RemoveDefaults }} + {{- if .Trusted}} trusted: {{- range $cert := .Trusted }} - | @@ -73,6 +74,7 @@ ca_certs: {{ $line }} {{- end }} {{- end }} + {{- end }} {{- end }} {{- if .BootCmds }} diff --git a/pkg/cidata/template_test.go b/pkg/cidata/template_test.go index f09f0225db4..3a12d6175ec 100644 --- a/pkg/cidata/template_test.go +++ b/pkg/cidata/template_test.go @@ -22,6 +22,9 @@ func TestTemplate(t *testing.T) { {MountPoint: "/Users/dummy/lima"}, }, MountType: "reverse-sshfs", + CACerts: CACerts{ + Trusted: []Cert{}, + }, } layout, err := ExecuteTemplate(args) assert.NilError(t, err) @@ -33,6 +36,8 @@ func TestTemplate(t *testing.T) { if f.Path == "user-data" { // mounted later assert.Assert(t, !strings.Contains(string(b), "mounts:")) + // ca_certs: + assert.Assert(t, !strings.Contains(string(b), "trusted:")) } } } From eea842717c07ab2927c18dd61f4d0ef671a296dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Fri, 5 Apr 2024 12:09:40 +0200 Subject: [PATCH 2/2] Avoid using nil bool pointer in cidata tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anders F Björklund --- pkg/cidata/template.go | 3 +++ pkg/cidata/template_test.go | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/cidata/template.go b/pkg/cidata/template.go index dbd17a7c389..b9aa9618820 100644 --- a/pkg/cidata/template.go +++ b/pkg/cidata/template.go @@ -112,6 +112,9 @@ func ValidateTemplateArgs(args TemplateArgs) error { return fmt.Errorf("field mounts[%d] must be absolute, got %q", i, f) } } + if args.CACerts.RemoveDefaults == nil { + return errors.New("field CACerts.RemoveDefaults must be set") + } return nil } diff --git a/pkg/cidata/template_test.go b/pkg/cidata/template_test.go index 3a12d6175ec..a8ae1cc895d 100644 --- a/pkg/cidata/template_test.go +++ b/pkg/cidata/template_test.go @@ -8,6 +8,8 @@ import ( "gotest.tools/v3/assert" ) +var defaultRemoveDefaults = false + func TestTemplate(t *testing.T) { args := TemplateArgs{ Name: "default", @@ -23,7 +25,8 @@ func TestTemplate(t *testing.T) { }, MountType: "reverse-sshfs", CACerts: CACerts{ - Trusted: []Cert{}, + RemoveDefaults: &defaultRemoveDefaults, + Trusted: []Cert{}, }, } layout, err := ExecuteTemplate(args) @@ -56,6 +59,9 @@ func TestTemplate9p(t *testing.T) { {Tag: "mount1", MountPoint: "/Users/dummy/lima", Type: "9p", Options: "rw,trans=virtio"}, }, MountType: "9p", + CACerts: CACerts{ + RemoveDefaults: &defaultRemoveDefaults, + }, } layout, err := ExecuteTemplate(args) assert.NilError(t, err)