Skip to content

Commit

Permalink
I don't think we need to require the cloud-config header for meta-dat…
Browse files Browse the repository at this point in the history
…a and network-config.
  • Loading branch information
sil2100 committed Oct 5, 2023
1 parent 6193013 commit 75bac4a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 22 deletions.
10 changes: 5 additions & 5 deletions internal/statemachine/classic_states.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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)
}

Expand All @@ -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
}
Expand Down
18 changes: 2 additions & 16 deletions internal/statemachine/classic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 75bac4a

Please sign in to comment.