From 9372830ccb644c42bd3c7acf8ae775122a2b00cd Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Thu, 16 Mar 2023 15:29:42 -0700 Subject: [PATCH 1/5] Adds `Skip` to service config --- internal/generate/teamcity/acctest_services.hcl | 12 ++++++++++++ internal/generate/teamcity/main.go | 12 ++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/internal/generate/teamcity/acctest_services.hcl b/internal/generate/teamcity/acctest_services.hcl index 6af7df7f685c..499ea81c3a83 100644 --- a/internal/generate/teamcity/acctest_services.hcl +++ b/internal/generate/teamcity/acctest_services.hcl @@ -91,6 +91,18 @@ service "kafka" { vpc_lock = true } +service "kendra" { + skip = true +} + +service "kinesisanalytics" { + skip = true +} + +service "kinesisanalyticsv2" { + skip = true +} + service "lambda" { vpc_lock = true } diff --git a/internal/generate/teamcity/main.go b/internal/generate/teamcity/main.go index 6953dbceb5b7..fbafb3f38d70 100644 --- a/internal/generate/teamcity/main.go +++ b/internal/generate/teamcity/main.go @@ -72,12 +72,6 @@ func main() { p = l[names.ColProviderPackageActual] } - // TODO: Remove this when we have a method for scheduling specific services - if p == "kendra" || p == "kinesisanalytics" || p == "kinesisanalyticsv2" { - g.Infof("Skipping service %q...", p) - continue - } - if _, err := os.Stat(fmt.Sprintf("../../service/%s", p)); err != nil || errors.Is(err, fs.ErrNotExist) { continue } @@ -92,6 +86,11 @@ func main() { sd.Parallelism = serviceConfig.Parallelism } + if serviceConfig.Skip { + g.Infof("Skipping service %q...", p) + continue + } + td.Services = append(td.Services, sd) } @@ -121,6 +120,7 @@ type acctestServiceConfig struct { Service string `hcl:",label"` VpcLock bool `hcl:"vpc_lock,optional"` Parallelism int `hcl:"parallelism,optional"` + Skip bool `hcl:"skip,optional"` } func acctestConfigurations(filename string) (map[string]acctestServiceConfig, error) { From c2b43b619899d45d33629d4e34d9d688674f4fa1 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Thu, 16 Mar 2023 15:46:28 -0700 Subject: [PATCH 2/5] Makes template into multi-line for readability --- internal/generate/teamcity/file.tmpl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/generate/teamcity/file.tmpl b/internal/generate/teamcity/file.tmpl index 6a07bec40f1d..a2f063303e92 100644 --- a/internal/generate/teamcity/file.tmpl +++ b/internal/generate/teamcity/file.tmpl @@ -2,6 +2,9 @@ val services = mapOf( {{- range .Services }} - "{{ .ProviderPackage }}" to ServiceSpec("{{ .HumanFriendly }}"{{ if .VpcLock }}, vpcLock = true{{ end }}{{ if ne .Parallelism 0 }}, parallelismOverride = {{ .Parallelism }}{{ end }}), + "{{ .ProviderPackage }}" to ServiceSpec("{{ .HumanFriendly }}" + {{- if .VpcLock }}, vpcLock = true{{ end -}} + {{- if ne .Parallelism 0 }}, parallelismOverride = {{ .Parallelism }}{{ end -}} + ), {{- end }} ) From 033815c7ce97e49cebd2b6ea65883709221c5483 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Thu, 16 Mar 2023 16:06:28 -0700 Subject: [PATCH 3/5] Updates service names in `service_orgacct.kt` --- .teamcity/components/generated/service_orgacct.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.teamcity/components/generated/service_orgacct.kt b/.teamcity/components/generated/service_orgacct.kt index 76b95980d053..735251c74dc5 100644 --- a/.teamcity/components/generated/service_orgacct.kt +++ b/.teamcity/components/generated/service_orgacct.kt @@ -1,5 +1,5 @@ val orgacctServices = mapOf( - "accessanalyzer" to ServiceSpec("Access Analyzer"), + "accessanalyzer" to ServiceSpec("IAM Access Analyzer"), "backup" to ServiceSpec("Backup", "TestAccBackupGlobalSettings_basic"), "cloudformation" to ServiceSpec( "CloudFormation", @@ -7,13 +7,13 @@ val orgacctServices = mapOf( ), "cloudtrail" to ServiceSpec("CloudTrail"), "config" to ServiceSpec("Config" /*"TestAccConfig_serial|TestAccConfigConfigurationAggregator_"*/), - "fms" to ServiceSpec("FMS"), + "fms" to ServiceSpec("FMS (Firewall Manager)"), "guardduty" to ServiceSpec("GuardDuty"), "licensemanager" to ServiceSpec("License Manager"), - "macie2" to ServiceSpec("Macie2"), + "macie2" to ServiceSpec("Macie"), "organizations" to ServiceSpec("Organizations"), "securityhub" to ServiceSpec( - "SecurityHub", + "Security Hub", "TestAccSecurityHub_serial/Account|TestAccSecurityHub_serial/OrganizationAdminAccount|TestAccSecurityHub_serial/OrganizationConfiguration" ), ) From eec8edbe8ff9cff2a38d71100bf21a62ffd342c4 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Fri, 17 Mar 2023 10:44:48 -0700 Subject: [PATCH 4/5] Adds region override for TeamCity configuration --- .../components/generated/service_orgacct.kt | 2 +- .../components/generated/services_all.kt | 14 +++++----- .teamcity/components/service_build_config.kt | 6 ++++ .../generate/teamcity/acctest_services.hcl | 28 +++++++++++++++++++ internal/generate/teamcity/file.tmpl | 1 + internal/generate/teamcity/main.go | 3 ++ 6 files changed, 46 insertions(+), 8 deletions(-) diff --git a/.teamcity/components/generated/service_orgacct.kt b/.teamcity/components/generated/service_orgacct.kt index 735251c74dc5..14824c9ffa29 100644 --- a/.teamcity/components/generated/service_orgacct.kt +++ b/.teamcity/components/generated/service_orgacct.kt @@ -7,7 +7,7 @@ val orgacctServices = mapOf( ), "cloudtrail" to ServiceSpec("CloudTrail"), "config" to ServiceSpec("Config" /*"TestAccConfig_serial|TestAccConfigConfigurationAggregator_"*/), - "fms" to ServiceSpec("FMS (Firewall Manager)"), + "fms" to ServiceSpec("FMS (Firewall Manager)", regionOverride = "us-east-1"), "guardduty" to ServiceSpec("GuardDuty"), "licensemanager" to ServiceSpec("License Manager"), "macie2" to ServiceSpec("Macie"), diff --git a/.teamcity/components/generated/services_all.kt b/.teamcity/components/generated/services_all.kt index 9f1581517bd5..1b9c6015526e 100644 --- a/.teamcity/components/generated/services_all.kt +++ b/.teamcity/components/generated/services_all.kt @@ -49,7 +49,7 @@ val services = mapOf( "configservice" to ServiceSpec("Config"), "connect" to ServiceSpec("Connect"), "controltower" to ServiceSpec("Control Tower"), - "cur" to ServiceSpec("Cost and Usage Report"), + "cur" to ServiceSpec("Cost and Usage Report", regionOverride = "us-east-1"), "dataexchange" to ServiceSpec("Data Exchange"), "datapipeline" to ServiceSpec("Data Pipeline"), "datasync" to ServiceSpec("DataSync", vpcLock = true), @@ -65,7 +65,7 @@ val services = mapOf( "dynamodb" to ServiceSpec("DynamoDB"), "ec2" to ServiceSpec("EC2 (Elastic Compute Cloud)", vpcLock = true), "ecr" to ServiceSpec("ECR (Elastic Container Registry)"), - "ecrpublic" to ServiceSpec("ECR Public"), + "ecrpublic" to ServiceSpec("ECR Public", regionOverride = "us-east-1"), "ecs" to ServiceSpec("ECS (Elastic Container)"), "efs" to ServiceSpec("EFS (Elastic File System)", vpcLock = true), "eks" to ServiceSpec("EKS (Elastic Kubernetes)", vpcLock = true), @@ -82,7 +82,7 @@ val services = mapOf( "evidently" to ServiceSpec("CloudWatch Evidently"), "firehose" to ServiceSpec("Kinesis Firehose"), "fis" to ServiceSpec("FIS (Fault Injection Simulator)"), - "fms" to ServiceSpec("FMS (Firewall Manager)"), + "fms" to ServiceSpec("FMS (Firewall Manager)", regionOverride = "us-east-1"), "fsx" to ServiceSpec("FSx", vpcLock = true), "gamelift" to ServiceSpec("GameLift"), "glacier" to ServiceSpec("S3 Glacier"), @@ -112,7 +112,7 @@ val services = mapOf( "lambda" to ServiceSpec("Lambda", vpcLock = true), "lexmodels" to ServiceSpec("Lex Model Building"), "licensemanager" to ServiceSpec("License Manager"), - "lightsail" to ServiceSpec("Lightsail"), + "lightsail" to ServiceSpec("Lightsail", regionOverride = "us-east-1"), "location" to ServiceSpec("Location"), "logs" to ServiceSpec("CloudWatch Logs"), "macie" to ServiceSpec("Macie Classic"), @@ -136,7 +136,7 @@ val services = mapOf( "outposts" to ServiceSpec("Outposts"), "pinpoint" to ServiceSpec("Pinpoint"), "pipes" to ServiceSpec("EventBridge Pipes"), - "pricing" to ServiceSpec("Pricing Calculator"), + "pricing" to ServiceSpec("Pricing Calculator", regionOverride = "us-east-1"), "qldb" to ServiceSpec("QLDB (Quantum Ledger Database)"), "quicksight" to ServiceSpec("QuickSight"), "ram" to ServiceSpec("RAM (Resource Access Manager)"), @@ -148,7 +148,7 @@ val services = mapOf( "resourcegroups" to ServiceSpec("Resource Groups"), "resourcegroupstaggingapi" to ServiceSpec("Resource Groups Tagging"), "rolesanywhere" to ServiceSpec("Roles Anywhere"), - "route53" to ServiceSpec("Route 53", vpcLock = true), + "route53" to ServiceSpec("Route 53", vpcLock = true, regionOverride = "us-east-1"), "route53domains" to ServiceSpec("Route 53 Domains"), "route53recoverycontrolconfig" to ServiceSpec("Route 53 Recovery Control Config"), "route53recoveryreadiness" to ServiceSpec("Route 53 Recovery Readiness"), @@ -183,7 +183,7 @@ val services = mapOf( "timestreamwrite" to ServiceSpec("Timestream Write"), "transcribe" to ServiceSpec("Transcribe"), "transfer" to ServiceSpec("Transfer Family", vpcLock = true), - "waf" to ServiceSpec("WAF Classic"), + "waf" to ServiceSpec("WAF Classic", regionOverride = "us-east-1"), "wafregional" to ServiceSpec("WAF Classic Regional"), "wafv2" to ServiceSpec("WAF"), "worklink" to ServiceSpec("WorkLink"), diff --git a/.teamcity/components/service_build_config.kt b/.teamcity/components/service_build_config.kt index 5f726105cf86..de209418856f 100644 --- a/.teamcity/components/service_build_config.kt +++ b/.teamcity/components/service_build_config.kt @@ -10,6 +10,7 @@ data class ServiceSpec( val patternOverride: String? = null, val vpcLock: Boolean = false, val parallelismOverride: Int? = null, + val regionOverride: String? = null, ) class Service(name: String, spec: ServiceSpec) { @@ -37,6 +38,11 @@ class Service(name: String, spec: ServiceSpec) { text("ACCTEST_PARALLELISM", spec.parallelismOverride.toString(), display = ParameterDisplay.HIDDEN) } } + if (spec.regionOverride != null) { + params { + text("env.AWS_DEFAULT_REGION", spec.regionOverride, display = ParameterDisplay.HIDDEN) + } + } val serviceDir = "./internal/service/$packageName" steps { diff --git a/internal/generate/teamcity/acctest_services.hcl b/internal/generate/teamcity/acctest_services.hcl index 499ea81c3a83..7f2235ca517b 100644 --- a/internal/generate/teamcity/acctest_services.hcl +++ b/internal/generate/teamcity/acctest_services.hcl @@ -27,6 +27,10 @@ service "comprehend" { parallelism = 10 } +service "cur" { + region = "us-east-1" +} + service "datasync" { vpc_lock = true } @@ -51,6 +55,10 @@ service "ec2" { vpc_lock = true } +service "ecrpublic" { + region = "us-east-1" +} + service "efs" { vpc_lock = true } @@ -83,6 +91,10 @@ service "emr" { vpc_lock = true } +service "fms" { + region = "us-east-1" +} + service "fsx" { vpc_lock = true } @@ -107,6 +119,10 @@ service "lambda" { vpc_lock = true } +service "lightsail" { + region = "us-east-1" +} + service "mq" { vpc_lock = true } @@ -123,6 +139,10 @@ service "opsworks" { vpc_lock = true } +service "pricing" { + region = "us-east-1" +} + service "rds" { vpc_lock = true } @@ -133,6 +153,9 @@ service "redshift" { service "route53" { vpc_lock = true + + # Needed for Route 53 DNSSEC tests + region = "us-east-1" } service "route53resolver" { @@ -163,6 +186,11 @@ service "transfer" { vpc_lock = true } +service "waf" { + region = "us-east-1" +} + service "workspaces" { + # Needed for logging configuration tests vpc_lock = true } diff --git a/internal/generate/teamcity/file.tmpl b/internal/generate/teamcity/file.tmpl index a2f063303e92..18e4b534cfa2 100644 --- a/internal/generate/teamcity/file.tmpl +++ b/internal/generate/teamcity/file.tmpl @@ -5,6 +5,7 @@ val services = mapOf( "{{ .ProviderPackage }}" to ServiceSpec("{{ .HumanFriendly }}" {{- if .VpcLock }}, vpcLock = true{{ end -}} {{- if ne .Parallelism 0 }}, parallelismOverride = {{ .Parallelism }}{{ end -}} + {{- if ne .Region "" }}, regionOverride = "{{ .Region }}"{{ end -}} ), {{- end }} ) diff --git a/internal/generate/teamcity/main.go b/internal/generate/teamcity/main.go index fbafb3f38d70..acd82721df92 100644 --- a/internal/generate/teamcity/main.go +++ b/internal/generate/teamcity/main.go @@ -23,6 +23,7 @@ type ServiceDatum struct { HumanFriendly string VpcLock bool Parallelism int + Region string } type TemplateData struct { @@ -84,6 +85,7 @@ func main() { if ok { sd.VpcLock = serviceConfig.VpcLock sd.Parallelism = serviceConfig.Parallelism + sd.Region = serviceConfig.Region } if serviceConfig.Skip { @@ -121,6 +123,7 @@ type acctestServiceConfig struct { VpcLock bool `hcl:"vpc_lock,optional"` Parallelism int `hcl:"parallelism,optional"` Skip bool `hcl:"skip,optional"` + Region string `hcl:"region,optional"` } func acctestConfigurations(filename string) (map[string]acctestServiceConfig, error) { From 23f11672409a94fbfc66dbcb47cd0dae04ce6750 Mon Sep 17 00:00:00 2001 From: Graham Davison Date: Fri, 17 Mar 2023 10:45:44 -0700 Subject: [PATCH 5/5] Updates `nektos/act` configuration to get container with `mvn ` installed --- .actrc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.actrc b/.actrc index 37484f3d1154..3c3ee8bbb557 100644 --- a/.actrc +++ b/.actrc @@ -1,3 +1,4 @@ # Needed for testing our workflows --P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-22.04 --P linux=ghcr.io/catthehacker/ubuntu:act-22.04 +# The `full` variants are needed for Maven for TeamCity configuration validation +-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:full-20.04 +-P linux=ghcr.io/catthehacker/ubuntu:full-20.04