in internal/flavors/benchmark/strategy.go [41:80]
func GetStrategy(cfg *config.Config, log *clog.Logger) (Strategy, error) {
switch cfg.Benchmark {
case config.CIS_AWS:
if cfg.CloudConfig.Aws.AccountType == config.OrganizationAccount {
return &AWSOrg{
IAMProvider: &iam.Provider{},
IdentityProvider: awslib.IdentityProvider{Logger: log},
AccountProvider: awslib.AccountProvider{},
}, nil
}
return &AWS{
IdentityProvider: awslib.IdentityProvider{Logger: log},
}, nil
case config.CIS_EKS:
return &EKS{
AWSIdentityProvider: awslib.IdentityProvider{Logger: log},
AWSMetadataProvider: awslib.Ec2MetadataProvider{},
EKSClusterNameProvider: awslib.EKSClusterNameProvider{},
ClientProvider: k8s.ClientGetter{},
leaderElector: nil,
}, nil
case config.CIS_K8S:
return &K8S{
ClientProvider: k8s.ClientGetter{},
leaderElector: nil,
}, nil
case config.CIS_GCP:
return &GCP{
CfgProvider: &gcp_auth.ConfigProvider{AuthProvider: &gcp_auth.GoogleAuthProvider{}},
inventoryInitializer: &gcp_inventory.ProviderInitializer{},
}, nil
case config.CIS_AZURE:
return &Azure{
cfgProvider: &azure_auth.ConfigProvider{AuthProvider: &azure_auth.AzureAuthProvider{}},
providerInitializer: &azurelib.ProviderInitializer{},
}, nil
}
return nil, fmt.Errorf("unknown benchmark: '%s'", cfg.Benchmark)
}