config: update tests

This commit is contained in:
Malte Poll 2023-08-02 10:27:43 +02:00 committed by Malte Poll
parent b61deb6a03
commit c0177c565f
3 changed files with 51 additions and 15 deletions

View File

@ -601,6 +601,8 @@ func (m *stubMerger) kubeconfigEnvVar() string {
func defaultConfigWithExpectedMeasurements(t *testing.T, conf *config.Config, csp cloudprovider.Provider) *config.Config {
t.Helper()
conf.RemoveProviderAndAttestationExcept(csp)
conf.Image = constants.BinaryVersion().String()
conf.Name = "kubernetes"

View File

@ -25,10 +25,12 @@ go_library(
"//internal/attestation/variant",
"//internal/cloud/cloudprovider",
"//internal/compatibility",
"//internal/config/disktypes",
"//internal/config/imageversion",
"//internal/config/instancetypes",
"//internal/constants",
"//internal/file",
"//internal/role",
"//internal/semver",
"//internal/versions",
"@com_github_go_playground_locales//en",

View File

@ -149,6 +149,24 @@ func modifyConfigForAzureToPassValidate(c *Config) {
c.Attestation.AzureSEVSNP.Measurements = measurements.M{
0: measurements.WithAllBytes(0x00, measurements.Enforce, measurements.PCRMeasurementLength),
}
c.NodeGroups = map[string]NodeGroup{
constants.ControlPlaneDefault: {
Role: "control-plane",
Zone: "",
InstanceType: "Standard_DC4as_v5",
StateDiskSizeGB: 30,
StateDiskType: "StandardSSD_LRS",
InitialCount: 3,
},
constants.WorkerDefault: {
Role: "worker",
Zone: "",
InstanceType: "Standard_DC4as_v5",
StateDiskSizeGB: 30,
StateDiskType: "StandardSSD_LRS",
InitialCount: 3,
},
}
}
func TestReadConfigFile(t *testing.T) {
@ -233,11 +251,12 @@ func TestFromFile(t *testing.T) {
},
"custom config from default file": {
config: &Config{
Version: Version3,
Version: Version4,
},
configName: constants.ConfigFilename,
wantResult: &Config{
Version: Version3,
Version: Version4,
NodeGroups: map[string]NodeGroup{},
},
},
"modify default config": {
@ -280,10 +299,10 @@ func TestFromFile(t *testing.T) {
}
func TestValidate(t *testing.T) {
const defaultErrCount = 33 // expect this number of error messages by default because user-specific values are not set and multiple providers are defined by default
const defaultErrCount = 37 // expect this number of error messages by default because user-specific values are not set and multiple providers are defined by default
const azErrCount = 7
const awsErrCount = 6
const gcpErrCount = 6
const awsErrCount = 8
const gcpErrCount = 8
// TODO(AB#3132,3u13r): refactor config validation tests
// Note that the `cnf.Image = ""` is a hack to align `bazel test` with `go test` behavior
@ -337,12 +356,12 @@ func TestValidate(t *testing.T) {
wantErr: true,
wantErrCount: defaultErrCount + 1,
},
"v0 and negative state disk are two errors": {
"v0 and long name are two errors": {
cnf: func() *Config {
cnf := Default()
cnf.Image = ""
cnf.Version = "v0"
cnf.StateDiskSizeGB = -1
cnf.Name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
return cnf
}(),
wantErr: true,
@ -374,6 +393,7 @@ func TestValidate(t *testing.T) {
cnf.Attestation.AzureSEVSNP.Measurements = measurements.M{
0: measurements.WithAllBytes(0x00, measurements.Enforce, measurements.PCRMeasurementLength),
}
modifyConfigForAzureToPassValidate(cnf)
return cnf
}(),
},
@ -395,7 +415,7 @@ func TestValidate(t *testing.T) {
return cnf
}(),
wantErr: true,
wantErrCount: awsErrCount - 2,
wantErrCount: awsErrCount - 4,
},
"AWS config with wrong region and zone format": {
cnf: func() *Config {
@ -434,6 +454,24 @@ func TestValidate(t *testing.T) {
cnf.Attestation.GCPSEVES.Measurements = measurements.M{
0: measurements.WithAllBytes(0x00, measurements.Enforce, measurements.PCRMeasurementLength),
}
cnf.NodeGroups = map[string]NodeGroup{
constants.ControlPlaneDefault: {
Role: "control-plane",
Zone: "europe-west1-b",
InstanceType: "n2d-standard-4",
StateDiskSizeGB: 30,
StateDiskType: "pd-ssd",
InitialCount: 3,
},
constants.WorkerDefault: {
Role: "worker",
Zone: "europe-west1-b",
InstanceType: "n2d-standard-4",
StateDiskSizeGB: 30,
StateDiskType: "pd-ssd",
InitialCount: 3,
},
}
return cnf
}(),
},
@ -889,7 +927,7 @@ func TestValidateProvider(t *testing.T) {
}
func TestConfigVersionCompatibility(t *testing.T) {
t.Skip() // TODO(daniel-weisse): re-enable and re-write for config v3
t.Skip() // TODO(daniel-weisse): re-enable and re-write for config v4
testCases := map[string]struct {
config string
expectedConfig *Config
@ -899,7 +937,6 @@ func TestConfigVersionCompatibility(t *testing.T) {
expectedConfig: &Config{
Version: "v2",
Image: "v2.5.0",
StateDiskSizeGB: 16,
KubernetesVersion: "1.23",
DebugCluster: toPtr(false),
Provider: ProviderConfig{
@ -908,8 +945,6 @@ func TestConfigVersionCompatibility(t *testing.T) {
Region: "europe-west3",
Zone: "europe-west3-b",
ServiceAccountKeyPath: "serviceAccountKey.json",
InstanceType: "n2d-standard-4",
StateDiskType: "pd-ssd",
DeployCSIDriver: toPtr(true),
},
},
@ -920,15 +955,12 @@ func TestConfigVersionCompatibility(t *testing.T) {
expectedConfig: &Config{
Version: "v2",
Image: "v2.5.0",
StateDiskSizeGB: 16,
KubernetesVersion: "1.23",
DebugCluster: toPtr(false),
Provider: ProviderConfig{
AWS: &AWSConfig{
Region: "us-east-2",
Zone: "us-east-2a",
InstanceType: "c5.xlarge",
StateDiskType: "gp2",
IAMProfileControlPlane: "control_plane_instance_profile",
IAMProfileWorkerNodes: "node_instance_profile",
},