Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into tg-878-stack-generate
Browse files Browse the repository at this point in the history
  • Loading branch information
denis256 committed Feb 27, 2025
2 parents d80e140 + 7fa958f commit 0bf48e4
Show file tree
Hide file tree
Showing 34 changed files with 886 additions and 528 deletions.
104 changes: 78 additions & 26 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -720,103 +720,129 @@ workflows:
- test_windows_terraform:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- test_windows_tofu:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- unit_test:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_terraform_1_5:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_terraform_latest:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_terraform_with_provider_cache:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_tofu:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_tofu_only:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_tofu_with_provider_cache:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_tflint:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- test_mocks:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- race_test:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- integration_test_tofu_engine:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -825,7 +851,9 @@ workflows:
- integration_test_tofu_gcp:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -834,7 +862,9 @@ workflows:
- integration_test_terraform_gcp:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -843,7 +873,9 @@ workflows:
- integration_test_terraform_latest_gcp:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -852,7 +884,9 @@ workflows:
- integration_test_tofu_aws:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- AWS__PHXDEVOPS__terragrunt-oidc-test
Expand All @@ -862,7 +896,9 @@ workflows:
- integration_test_terraform_aws:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- AWS__PHXDEVOPS__terragrunt-oidc-test
Expand All @@ -872,7 +908,9 @@ workflows:
- integration_test_terraform_latest_aws:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- AWS__PHXDEVOPS__terragrunt-oidc-test
Expand All @@ -882,23 +920,29 @@ workflows:
- run_markdownlint:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- codespell:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
- GITHUB__PAT__gruntwork-ci
- build:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -908,7 +952,9 @@ workflows:
- build
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -917,7 +963,9 @@ workflows:
- test_build_no_proxy:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand All @@ -927,7 +975,9 @@ workflows:
- build
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
branches:
ignore: /.*/
context:
Expand All @@ -940,7 +990,9 @@ workflows:
- strict_lint:
filters:
tags:
only: /^v.*/
only:
- /^v.*/
- /^alpha.*/
context:
- AWS__PHXDEVOPS__circle-ci-test
- GCP__automated-tests
Expand Down
40 changes: 7 additions & 33 deletions cli/provider_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,47 +96,21 @@ func InitProviderCacheServer(opts *options.TerragruntOptions) (*ProviderCache, e
}

providerService := services.NewProviderService(opts.ProviderCacheDir, userProviderDir, cliCfg.CredentialsSource(), opts.Logger)
proxyProviderHandler := handlers.NewProxyProviderHandler(opts.Logger, cliCfg.CredentialsSource())

var (
providerHandlers = make([]handlers.ProviderHandler, 0, len(cliCfg.ProviderInstallation.Methods))
excludeAddrs = make([]string, 0, len(cliCfg.ProviderInstallation.Methods))
directIsdefined bool
)

for _, registryName := range opts.ProviderCacheRegistryNames {
excludeAddrs = append(excludeAddrs, registryName+"/*/*")
}

for _, method := range cliCfg.ProviderInstallation.Methods {
switch method := method.(type) {
case *cliconfig.ProviderInstallationFilesystemMirror:
providerHandlers = append(providerHandlers, handlers.NewProviderFilesystemMirrorHandler(providerService, CacheProviderHTTPStatusCode, method))
case *cliconfig.ProviderInstallationNetworkMirror:
networkMirrorHandler, err := handlers.NewProviderNetworkMirrorHandler(providerService, CacheProviderHTTPStatusCode, method, cliCfg.CredentialsSource())
if err != nil {
return nil, err
}

providerHandlers = append(providerHandlers, networkMirrorHandler)
case *cliconfig.ProviderInstallationDirect:
providerHandlers = append(providerHandlers, handlers.NewProviderDirectHandler(providerService, CacheProviderHTTPStatusCode, method, cliCfg.CredentialsSource()))
directIsdefined = true
}

method.AppendExclude(excludeAddrs)
}

if !directIsdefined {
// In a case if none of direct provider installation methods `cliCfg.ProviderInstallation.Methods` are specified.
providerHandlers = append(providerHandlers, handlers.NewProviderDirectHandler(providerService, CacheProviderHTTPStatusCode, new(cliconfig.ProviderInstallationDirect), cliCfg.CredentialsSource()))
providerHandlers, err := handlers.NewProviderHandlers(cliCfg, opts.Logger, opts.ProviderCacheRegistryNames)
if err != nil {
return nil, errors.Errorf("creating provider handlers failed: %w", err)
}

cache := cache.NewServer(
cache.WithHostname(opts.ProviderCacheHostname),
cache.WithPort(opts.ProviderCachePort),
cache.WithToken(opts.ProviderCacheToken),
cache.WithServices(providerService),
cache.WithProviderService(providerService),
cache.WithProviderHandlers(providerHandlers...),
cache.WithProxyProviderHandler(proxyProviderHandler),
cache.WithCacheProviderHTTPStatusCode(CacheProviderHTTPStatusCode),
cache.WithLogger(opts.Logger),
)

Expand Down
14 changes: 10 additions & 4 deletions cli/provider_cache_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func TestProviderCache(t *testing.T) {
providerCacheDir := t.TempDir()
pluginCacheDir := t.TempDir()

opts := []cache.Option{cache.WithToken(token)}
opts := []cache.Option{cache.WithToken(token), cache.WithCacheProviderHTTPStatusCode(cli.CacheProviderHTTPStatusCode)}

testCases := []struct {
opts []cache.Option
Expand Down Expand Up @@ -112,11 +112,17 @@ func TestProviderCache(t *testing.T) {
defer cancel()

errGroup, ctx := errgroup.WithContext(ctx)
logger := log.New()

providerService := services.NewProviderService(providerCacheDir, pluginCacheDir, nil, log.New())
providerHandler := handlers.NewProviderDirectHandler(providerService, cli.CacheProviderHTTPStatusCode, new(cliconfig.ProviderInstallationDirect), nil)
providerService := services.NewProviderService(providerCacheDir, pluginCacheDir, nil, logger)
providerHandler := handlers.NewDirectProviderHandler(logger, new(cliconfig.ProviderInstallationDirect), nil)
proxyProviderHandler := handlers.NewProxyProviderHandler(logger, nil)

testCase.opts = append(testCase.opts, cache.WithServices(providerService), cache.WithProviderHandlers(providerHandler))
testCase.opts = append(testCase.opts,
cache.WithProviderService(providerService),
cache.WithProviderHandlers(providerHandler),
cache.WithProxyProviderHandler(proxyProviderHandler),
)

server := cache.NewServer(testCase.opts...)
ln, err := server.Listen()
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ require (
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/getsops/gopgagent v0.0.0-20241224165529-7044f28e491e // indirect
github.com/go-jose/go-jose/v4 v4.0.4 // indirect
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ozzo/ozzo-validation v3.6.0+incompatible // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -993,8 +993,8 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E=
github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc=
github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
Expand Down
Loading

0 comments on commit 0bf48e4

Please sign in to comment.