From 75bac4aeabef32094b0c5b133b38a9f796ed805a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20=27sil2100=27=20Zemczak?= Date: Thu, 5 Oct 2023 18:57:55 +0200 Subject: [PATCH] I don't think we need to require the cloud-config header for meta-data and network-config. --- internal/statemachine/classic_states.go | 10 +++++----- internal/statemachine/classic_test.go | 18 ++---------------- snapcraft.yaml | 2 +- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/internal/statemachine/classic_states.go b/internal/statemachine/classic_states.go index 14725651..7ddd27e6 100644 --- a/internal/statemachine/classic_states.go +++ b/internal/statemachine/classic_states.go @@ -891,7 +891,7 @@ func (stateMachine *StateMachine) germinate() error { } // customizeCloudInitFile customizes a cloud-init data file with the given content -func customizeCloudInitFile(customData string, seedPath string, fileName string) error { +func customizeCloudInitFile(customData string, seedPath string, fileName string, requireHeader bool) error { if customData == "" { return nil } @@ -901,7 +901,7 @@ func customizeCloudInitFile(customData string, seedPath string, fileName string) } defer f.Close() - if !strings.HasPrefix(customData, "#cloud-config\n") { + if requireHeader && !strings.HasPrefix(customData, "#cloud-config\n") { return fmt.Errorf("provided cloud-init customization for %s is missing proper header", fileName) } @@ -925,17 +925,17 @@ func (stateMachine *StateMachine) customizeCloudInit() error { return err } - err = customizeCloudInitFile(cloudInitCustomization.MetaData, seedPath, "meta-data") + err = customizeCloudInitFile(cloudInitCustomization.MetaData, seedPath, "meta-data", false) if err != nil { return err } - err = customizeCloudInitFile(cloudInitCustomization.UserData, seedPath, "user-data") + err = customizeCloudInitFile(cloudInitCustomization.UserData, seedPath, "user-data", true) if err != nil { return err } - err = customizeCloudInitFile(cloudInitCustomization.NetworkConfig, seedPath, "network-config") + err = customizeCloudInitFile(cloudInitCustomization.NetworkConfig, seedPath, "network-config", false) if err != nil { return err } diff --git a/internal/statemachine/classic_test.go b/internal/statemachine/classic_test.go index 1babfe8e..82d83c3e 100644 --- a/internal/statemachine/classic_test.go +++ b/internal/statemachine/classic_test.go @@ -1200,10 +1200,8 @@ func TestStatemachine_customizeCloudInit_failed(t *testing.T) { stateMachine.ImageDef.Customization = &imagedefinition.Customization{ CloudInit: &imagedefinition.CloudInit{ - MetaData: `#cloud-config -foo: bar`, - NetworkConfig: `#cloud-config -foobar: foobar`, + MetaData: `foo: bar`, + NetworkConfig: `foobar: foobar`, UserData: `#cloud-config chpasswd: @@ -1315,24 +1313,12 @@ chpasswd: name string cloudInitCustomization imagedefinition.CloudInit }{ - { - name: "invalid metadata", - cloudInitCustomization: imagedefinition.CloudInit{ - MetaData: "foo: bar", - }, - }, { name: "invalid userdata", cloudInitCustomization: imagedefinition.CloudInit{ UserData: "foo: bar", }, }, - { - name: "invalid network config", - cloudInitCustomization: imagedefinition.CloudInit{ - NetworkConfig: "foo: bar", - }, - }, } for i, tc := range testCases { diff --git a/snapcraft.yaml b/snapcraft.yaml index 9517317d..bf62efb5 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -3,7 +3,7 @@ summary: Create Ubuntu images description: | Official tool for building Ubuntu images, currently supporing Ubuntu Core snap-based images and preinstalled Ubuntu classic images. -version: 3.0+snap10 +version: 3.0+snap11 grade: stable confinement: classic base: core22