Skip to content
12 changes: 5 additions & 7 deletions pkg/webhooks/machine_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,8 @@ func (a awsDefaulter) defaultAWS(m *machinev1beta1.Machine, config *admissionCon

if providerSpec.UserDataSecret == nil {
providerSpec.UserDataSecret = &corev1.LocalObjectReference{Name: defaultUserDataSecret}
} else if providerSpec.UserDataSecret.Name == "" {
providerSpec.UserDataSecret.Name = defaultUserDataSecret
}

if providerSpec.CredentialsSecret == nil {
Expand Down Expand Up @@ -724,13 +726,9 @@ func validateAWS(m *machinev1beta1.Machine, config *admissionConfig) (bool, []st
}

if providerSpec.UserDataSecret == nil {
errs = append(
errs,
field.Required(
field.NewPath("providerSpec", "userDataSecret"),
"expected providerSpec.userDataSecret to be populated",
),
)
errs = append(errs, field.Required(field.NewPath("providerSpec", "userDataSecret"), "expected providerSpec.userDataSecret to be populated"))
} else if providerSpec.UserDataSecret.Name == "" {
errs = append(errs, field.Required(field.NewPath("providerSpec", "userDataSecret", "name"), "expected providerSpec.userDataSecret.name to be provided"))
}

if providerSpec.CredentialsSecret == nil {
Expand Down
8 changes: 8 additions & 0 deletions pkg/webhooks/machine_webhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2382,6 +2382,14 @@ func TestValidateAWSProviderSpec(t *testing.T) {
expectedOk: false,
expectedError: "providerSpec.userDataSecret: Required value: expected providerSpec.userDataSecret to be populated",
},
{
testCase: "with no user data secret name it fails",
modifySpec: func(p *machinev1beta1.AWSMachineProviderConfig) {
p.UserDataSecret.Name = ""
},
expectedOk: false,
expectedError: "providerSpec.userDataSecret.name: Required value: expected providerSpec.userDataSecret.name to be provided",
},
{
testCase: "with no credentials secret it fails",
modifySpec: func(p *machinev1beta1.AWSMachineProviderConfig) {
Expand Down