1
0
mirror of https://github.com/openshift/installer.git synced 2026-02-05 06:46:36 +01:00

aws/validation: add unit tests for public-only cluster configs

This commit is contained in:
Rafael Fonseca
2024-08-20 17:32:30 +02:00
committed by openshift-cherrypick-robot
parent 65cbbf78b5
commit 2445e0f83b

View File

@@ -267,6 +267,7 @@ func TestValidate(t *testing.T) {
edgeSubnets Subnets
instanceTypes map[string]InstanceType
proxy string
publicOnly string
expectErr string
}{{
name: "valid no byo",
@@ -818,6 +819,42 @@ func TestValidate(t *testing.T) {
}(),
availZones: validAvailZones(),
expectErr: `^platform.aws.publicIpv4PoolId: Invalid value: "ipv4pool-ec2-123": publish strategy Internal can't be used with custom Public IPv4 Pools$`,
}, {
name: "invalid publish method for public-only subnets install",
installConfig: func() *types.InstallConfig {
c := validInstallConfig()
c.Publish = types.InternalPublishingStrategy
return c
}(),
privateSubnets: validPrivateSubnets(),
publicSubnets: validPublicSubnets(),
publicOnly: "true",
expectErr: `^publish: Invalid value: \"Internal\": cluster cannot be private with public subnets$`,
}, {
name: "no subnets specified for public-only subnets cluster",
installConfig: func() *types.InstallConfig {
c := validInstallConfig()
c.Platform.AWS.Subnets = []string{}
return c
}(),
privateSubnets: validPrivateSubnets(),
availZones: validAvailZones(),
publicOnly: "true",
expectErr: `^platform\.aws\.subnets: Required value: subnets must be specified for public-only subnets clusters$`,
}, {
name: "no public subnets specified for public-only subnets cluster",
installConfig: validInstallConfig(),
privateSubnets: validPrivateSubnets(),
availZones: validAvailZones(),
publicOnly: "true",
expectErr: `platform\.aws\.subnets: Required value: public subnets are required for a public-only subnets cluster`,
}, {
name: "valid public-only subnets install config",
installConfig: validInstallConfig(),
privateSubnets: validPrivateSubnets(),
publicSubnets: validPublicSubnets(),
availZones: validAvailZones(),
publicOnly: "true",
}}
for _, test := range tests {
@@ -835,6 +872,11 @@ func TestValidate(t *testing.T) {
} else {
os.Unsetenv("HTTP_PROXY")
}
if test.publicOnly != "" {
os.Setenv("OPENSHIFT_INSTALL_AWS_PUBLIC_ONLY", test.publicOnly)
} else {
os.Unsetenv("OPENSHIFT_INSTALL_AWS_PUBLIC_ONLY")
}
err := Validate(context.TODO(), meta, test.installConfig)
if test.expectErr == "" {
assert.NoError(t, err)