Skip to content

Commit 3e428c4

Browse files
committed
Enable keyless GCP testing
1 parent c596b42 commit 3e428c4

File tree

3 files changed

+29
-54
lines changed

3 files changed

+29
-54
lines changed

.github/workflows/go-getter.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,14 @@ jobs:
6969
role-to-assume: arn:aws:iam::388664967494:role/hc-go-getter-test
7070
role-session-name: ${{ github.run_id }}
7171
audience: https://github.com/hashicorp
72+
73+
- name: 'Authenticate to Google Cloud'
74+
uses: 'google-github-actions/[email protected]'
75+
with:
76+
workload_identity_provider: 'projects/328212837253/locations/global/workloadIdentityPools/hc-go-getter-test/providers/hc-go-getter-test'
77+
service_account: hc-go-getter-test@hc-e56c0f7c21c448d2be9e7696073.iam.gserviceaccount.com
7278

7379
- name: Run go tests
74-
env:
75-
GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
7680
run: |
7781
PACKAGE_NAMES=$(go list ./...)
7882
echo "Running $(echo $PACKAGE_NAMES | wc -w) packages"
@@ -137,10 +141,14 @@ jobs:
137141
role-to-assume: arn:aws:iam::388664967494:role/hc-go-getter-test
138142
role-session-name: ${{ github.run_id }}
139143
audience: https://github.com/hashicorp
144+
145+
- name: 'Authenticate to Google Cloud'
146+
uses: 'google-github-actions/[email protected]'
147+
with:
148+
workload_identity_provider: 'projects/328212837253/locations/global/workloadIdentityPools/hc-go-getter-test/providers/hc-go-getter-test'
149+
service_account: hc-go-getter-test@hc-e56c0f7c21c448d2be9e7696073.iam.gserviceaccount.com
140150

141151
- name: Run go tests
142-
env:
143-
GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
144152
shell: bash
145153
run: |
146154
PACKAGE_NAMES=$(go list ./...)

get.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,11 @@ func init() {
6565
}
6666

6767
Getters = map[string]Getter{
68-
"file": new(FileGetter),
69-
"git": new(GitGetter),
70-
"gcs": new(GCSGetter),
71-
"hg": new(HgGetter),
72-
// disabling s3 for now
73-
// "s3": new(S3Getter),
68+
"file": new(FileGetter),
69+
"git": new(GitGetter),
70+
"gcs": new(GCSGetter),
71+
"hg": new(HgGetter),
72+
"s3": new(S3Getter),
7473
"http": httpGetter,
7574
"https": httpGetter,
7675
}

get_gcs_test.go

Lines changed: 12 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,17 @@ import (
88
"testing"
99
)
1010

11-
// initGCPCredentials writes a temporary GCS credentials file if necessary and
12-
// returns the path and a function to clean it up. allAuthenticatedUsers can
13-
// access go-getter-test with read only access.
14-
func initGCPCredentials(t *testing.T) func() {
15-
if gc := os.Getenv("GOOGLE_CREDENTIALS"); gc != "" &&
16-
os.Getenv("GOOGLE_APPLICATION_CREDENTIALS") == "" {
17-
file, cleanup := tempFileContents(t, gc)
18-
os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", file)
19-
return func() {
20-
os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", "")
21-
cleanup()
22-
}
23-
}
24-
return func() {}
25-
}
26-
2711
func TestGCSGetter_impl(t *testing.T) {
2812
var _ Getter = new(GCSGetter)
2913
}
3014

3115
func TestGCSGetter(t *testing.T) {
32-
defer initGCPCredentials(t)()
33-
3416
g := new(GCSGetter)
3517
dst := tempDir(t)
3618

3719
// With a dir that doesn't exist
3820
err := g.Get(
39-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder"))
21+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder"))
4022
if err != nil {
4123
t.Fatalf("err: %s", err)
4224
}
@@ -49,14 +31,12 @@ func TestGCSGetter(t *testing.T) {
4931
}
5032

5133
func TestGCSGetter_subdir(t *testing.T) {
52-
defer initGCPCredentials(t)()
53-
5434
g := new(GCSGetter)
5535
dst := tempDir(t)
5636

5737
// With a dir that doesn't exist
5838
err := g.Get(
59-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/subfolder"))
39+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/subfolder"))
6040
if err != nil {
6141
t.Fatalf("err: %s", err)
6242
}
@@ -69,15 +49,13 @@ func TestGCSGetter_subdir(t *testing.T) {
6949
}
7050

7151
func TestGCSGetter_GetFile(t *testing.T) {
72-
defer initGCPCredentials(t)()
73-
7452
g := new(GCSGetter)
7553
dst := tempTestFile(t)
7654
defer os.RemoveAll(filepath.Dir(dst))
7755

7856
// Download
7957
err := g.GetFile(
80-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/main.tf"))
58+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/main.tf"))
8159
if err != nil {
8260
t.Fatalf("err: %s", err)
8361
}
@@ -90,15 +68,13 @@ func TestGCSGetter_GetFile(t *testing.T) {
9068
}
9169

9270
func TestGCSGetter_GetGenerationFile(t *testing.T) {
93-
defer initGCPCredentials(t)()
94-
9571
g := new(GCSGetter)
9672
dst := tempTestFile(t)
9773
defer os.RemoveAll(filepath.Dir(dst))
9874

9975
// Download
10076
err := g.GetFile(
101-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/versioned.txt#1615905097179533"))
77+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/versioned.txt#1615905097179533"))
10278
if err != nil {
10379
t.Fatalf("err: %s", err)
10480
}
@@ -114,7 +90,7 @@ func TestGCSGetter_GetGenerationFile(t *testing.T) {
11490

11591
// Download
11692
err = g.GetFile(
117-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/versioned.txt#1615905174141919"))
93+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/versioned.txt#1615905174141919"))
11894
if err != nil {
11995
t.Fatalf("err: %s", err)
12096
}
@@ -137,20 +113,18 @@ func TestGCSGetter_GetFile_notfound(t *testing.T) {
137113

138114
// Download
139115
err := g.GetFile(
140-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/404.tf"))
116+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/404.tf"))
141117
if err == nil {
142118
t.Fatalf("expected error, got none")
143119
}
144120
}
145121

146122
func TestGCSGetter_ClientMode_dir(t *testing.T) {
147-
defer initGCPCredentials(t)()
148-
149123
g := new(GCSGetter)
150124

151125
// Check client mode on a key prefix with only a single key.
152126
mode, err := g.ClientMode(
153-
testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/subfolder"))
127+
testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/subfolder"))
154128
if err != nil {
155129
t.Fatalf("err: %s", err)
156130
}
@@ -160,13 +134,11 @@ func TestGCSGetter_ClientMode_dir(t *testing.T) {
160134
}
161135

162136
func TestGCSGetter_ClientMode_file(t *testing.T) {
163-
defer initGCPCredentials(t)()
164-
165137
g := new(GCSGetter)
166138

167139
// Check client mode on a key prefix which contains sub-keys.
168140
mode, err := g.ClientMode(
169-
testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/subfolder/sub.tf"))
141+
testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/subfolder/sub.tf"))
170142
if err != nil {
171143
t.Fatalf("err: %s", err)
172144
}
@@ -176,14 +148,12 @@ func TestGCSGetter_ClientMode_file(t *testing.T) {
176148
}
177149

178150
func TestGCSGetter_ClientMode_notfound(t *testing.T) {
179-
defer initGCPCredentials(t)()
180-
181151
g := new(GCSGetter)
182152

183153
// Check the client mode when a non-existent key is looked up. This does not
184154
// return an error, but rather should just return the file mode.
185155
mode, err := g.ClientMode(
186-
testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/foobar"))
156+
testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/foobar"))
187157
if err != nil {
188158
t.Fatalf("err: %s", err)
189159
}
@@ -193,8 +163,6 @@ func TestGCSGetter_ClientMode_notfound(t *testing.T) {
193163
}
194164

195165
func TestGCSGetter_Url(t *testing.T) {
196-
defer initGCPCredentials(t)()
197-
198166
var gcstests = []struct {
199167
name string
200168
url string
@@ -203,8 +171,8 @@ func TestGCSGetter_Url(t *testing.T) {
203171
}{
204172
{
205173
name: "test1",
206-
url: "gcs::https://www.googleapis.com/storage/v1/go-getter-test/go-getter/foo/null.zip",
207-
bucket: "go-getter-test",
174+
url: "gcs::https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/foo/null.zip",
175+
bucket: "hc-go-getter-test",
208176
path: "go-getter/foo/null.zip",
209177
},
210178
}
@@ -248,7 +216,7 @@ func TestGCSGetter_GetFile_OAuthAccessToken(t *testing.T) {
248216

249217
// Download
250218
err := g.GetFile(
251-
dst, testURL("https://www.googleapis.com/storage/v1/go-getter-test/go-getter/folder/main.tf"))
219+
dst, testURL("https://www.googleapis.com/storage/v1/hc-go-getter-test/go-getter/folder/main.tf"))
252220
if err != nil {
253221
t.Fatalf("err: %s", err)
254222
}

0 commit comments

Comments
 (0)