Skip to content

Commit 26247fe

Browse files
Tests: Get all configs from Vault (#716)
This allows us to switch to a different Cloud account There is currently a bug deleting Grafana Cloud instances in the current account so I'm switching over to a new one
1 parent df210de commit 26247fe

File tree

4 files changed

+79
-52
lines changed

4 files changed

+79
-52
lines changed

.drone/drone.jsonnet

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,23 @@ local secret(name, vaultPath, vaultKey) = {
2424
path: vaultPath,
2525
name: vaultKey,
2626
},
27+
};
2728

28-
fromSecret:: { from_secret: name },
29+
local fromSecret(secret) = {
30+
from_secret: secret.name,
31+
};
32+
33+
local secrets = {
34+
// Grafana Cloud API test secrets
35+
cloudOrg: secret('grafana-cloud-org', 'infra/data/ci/terraform-provider-grafana/cloud', 'cloud-org'),
36+
cloudApiKey: secret('grafana-cloud-api-key', 'infra/data/ci/terraform-provider-grafana/cloud', 'cloud-api-key'),
37+
38+
// Grafana Enterprise test secrets (Instance running in Grafana Cloud)
39+
cloudInstanceUrl: secret('grafana-cloud-instance-url', 'infra/data/ci/terraform-provider-grafana/cloud', 'cloud-instance-url'),
40+
apiToken: secret('grafana-api-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'api-key'),
41+
smToken: secret('grafana-sm-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'sm-access-token'),
42+
onCallToken: secret('grafana-oncall-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'oncall-access-token'),
2943
};
30-
local cloudApiKey = secret('grafana-cloud-api-key', 'infra/data/ci/terraform-provider-grafana/cloud', 'cloud-api-key');
31-
local apiToken = secret('grafana-api-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'api-key');
32-
local smToken = secret('grafana-sm-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'sm-access-token');
33-
local onCallToken = secret('grafana-oncall-token', 'infra/data/ci/terraform-provider-grafana/cloud', 'oncall-access-token');
3444

3545
local pipeline(name, steps, services=[]) = {
3646
kind: 'pipeline',
@@ -129,8 +139,8 @@ local pipeline(name, steps, services=[]) = {
129139
'make testacc-cloud-api',
130140
],
131141
environment: {
132-
GRAFANA_CLOUD_API_KEY: cloudApiKey.fromSecret,
133-
GRAFANA_CLOUD_ORG: 'terraformprovidergrafana',
142+
GRAFANA_CLOUD_API_KEY: fromSecret(secrets.cloudApiKey),
143+
GRAFANA_CLOUD_ORG: fromSecret(secrets.cloudOrg),
134144
TF_ACC_TERRAFORM_PATH: terraformPath,
135145
},
136146
},
@@ -139,40 +149,37 @@ local pipeline(name, steps, services=[]) = {
139149
concurrency: { limit: 1 },
140150
},
141151

142-
local cloud_instance_url = 'https://terraformprovidergrafana.grafana.net/';
143152
pipeline(
144153
'cloud instance tests',
145154
steps=[
146155
installTerraformStep,
147156
{
148157
name: 'wait for instance',
149158
image: images.go,
150-
commands: ['.drone/wait-for-instance.sh ' + cloud_instance_url],
159+
commands: ['.drone/wait-for-instance.sh $${GRAFANA_URL}'],
160+
environment: {
161+
GRAFANA_URL: fromSecret(secrets.cloudInstanceUrl),
162+
},
151163
},
152164
{
153165
name: 'tests',
154166
image: images.go,
155167
commands: ['make testacc-cloud-instance'],
156168
environment: {
157-
GRAFANA_URL: cloud_instance_url,
158-
GRAFANA_AUTH: apiToken.fromSecret,
159-
GRAFANA_SM_ACCESS_TOKEN: smToken.fromSecret,
169+
GRAFANA_URL: fromSecret(secrets.cloudInstanceUrl),
170+
GRAFANA_AUTH: fromSecret(secrets.apiToken),
171+
GRAFANA_SM_ACCESS_TOKEN: fromSecret(secrets.smToken),
160172
GRAFANA_ORG_ID: 1,
161-
GRAFANA_ONCALL_ACCESS_TOKEN: onCallToken.fromSecret,
173+
GRAFANA_ONCALL_ACCESS_TOKEN: fromSecret(secrets.onCallToken),
162174
TF_ACC_TERRAFORM_PATH: terraformPath,
163175
},
164176
},
165177
]
166178
) + {
167179
concurrency: { limit: 1 },
168180
},
169-
170-
cloudApiKey,
171-
apiToken,
172-
smToken,
173-
onCallToken,
174-
] +
175-
[
181+
]
182+
+ [
176183
pipeline(
177184
'oss tests: %s' % version,
178185
steps=[
@@ -206,3 +213,4 @@ local pipeline(name, steps, services=[]) = {
206213
)
207214
for version in grafanaVersions
208215
]
216+
+ std.objectValuesAll(secrets)

.drone/drone.yml

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ steps:
106106
environment:
107107
GRAFANA_CLOUD_API_KEY:
108108
from_secret: grafana-cloud-api-key
109-
GRAFANA_CLOUD_ORG: terraformprovidergrafana
109+
GRAFANA_CLOUD_ORG:
110+
from_secret: grafana-cloud-org
110111
TF_ACC_TERRAFORM_PATH: /drone/terraform-provider-grafana/terraform
111112
image: golang:1.18
112113
name: tests
@@ -135,7 +136,10 @@ steps:
135136
image: hashicorp/terraform
136137
name: download-terraform
137138
- commands:
138-
- .drone/wait-for-instance.sh https://terraformprovidergrafana.grafana.net/
139+
- .drone/wait-for-instance.sh $${GRAFANA_URL}
140+
environment:
141+
GRAFANA_URL:
142+
from_secret: grafana-cloud-instance-url
139143
image: golang:1.18
140144
name: wait for instance
141145
- commands:
@@ -148,7 +152,8 @@ steps:
148152
GRAFANA_ORG_ID: 1
149153
GRAFANA_SM_ACCESS_TOKEN:
150154
from_secret: grafana-sm-token
151-
GRAFANA_URL: https://terraformprovidergrafana.grafana.net/
155+
GRAFANA_URL:
156+
from_secret: grafana-cloud-instance-url
152157
TF_ACC_TERRAFORM_PATH: /drone/terraform-provider-grafana/terraform
153158
image: golang:1.18
154159
name: tests
@@ -162,30 +167,6 @@ type: docker
162167
workspace:
163168
path: /drone/terraform-provider-grafana
164169
---
165-
get:
166-
name: cloud-api-key
167-
path: infra/data/ci/terraform-provider-grafana/cloud
168-
kind: secret
169-
name: grafana-cloud-api-key
170-
---
171-
get:
172-
name: api-key
173-
path: infra/data/ci/terraform-provider-grafana/cloud
174-
kind: secret
175-
name: grafana-api-token
176-
---
177-
get:
178-
name: sm-access-token
179-
path: infra/data/ci/terraform-provider-grafana/cloud
180-
kind: secret
181-
name: grafana-sm-token
182-
---
183-
get:
184-
name: oncall-access-token
185-
path: infra/data/ci/terraform-provider-grafana/cloud
186-
kind: secret
187-
name: grafana-oncall-token
188-
---
189170
kind: pipeline
190171
name: 'oss tests: 9.1.0'
191172
platform:
@@ -408,7 +389,43 @@ type: docker
408389
workspace:
409390
path: /drone/terraform-provider-grafana
410391
---
392+
get:
393+
name: api-key
394+
path: infra/data/ci/terraform-provider-grafana/cloud
395+
kind: secret
396+
name: grafana-api-token
397+
---
398+
get:
399+
name: cloud-api-key
400+
path: infra/data/ci/terraform-provider-grafana/cloud
401+
kind: secret
402+
name: grafana-cloud-api-key
403+
---
404+
get:
405+
name: cloud-instance-url
406+
path: infra/data/ci/terraform-provider-grafana/cloud
407+
kind: secret
408+
name: grafana-cloud-instance-url
409+
---
410+
get:
411+
name: cloud-org
412+
path: infra/data/ci/terraform-provider-grafana/cloud
413+
kind: secret
414+
name: grafana-cloud-org
415+
---
416+
get:
417+
name: oncall-access-token
418+
path: infra/data/ci/terraform-provider-grafana/cloud
419+
kind: secret
420+
name: grafana-oncall-token
421+
---
422+
get:
423+
name: sm-access-token
424+
path: infra/data/ci/terraform-provider-grafana/cloud
425+
kind: secret
426+
name: grafana-sm-token
427+
---
411428
kind: signature
412-
hmac: 307c016f2f24164ae2fa96bc6f30ae7a8d8840e0e66495ef9146c22d4780fdd1
429+
hmac: 859b4ecec6d95fed515f77177060967caf27b048bb6d8539a0b8a5f85317fd78
413430

414431
...

GNUmakefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ release:
4141
@git tag $$RELEASE_VERSION
4242
@git push origin $$RELEASE_VERSION
4343

44+
DRONE_DOCKER := docker run --rm -e DRONE_SERVER -e DRONE_TOKEN -v ${PWD}:${PWD} -w "${PWD}" drone/cli:1.6.1
4445
drone:
45-
drone jsonnet --stream --source .drone/drone.jsonnet --target .drone/drone.yml --format
46-
drone lint .drone/drone.yml
47-
drone sign --save grafana/terraform-provider-grafana .drone/drone.yml
46+
$(DRONE_DOCKER) jsonnet --stream --source .drone/drone.jsonnet --target .drone/drone.yml --format
47+
$(DRONE_DOCKER) lint .drone/drone.yml
48+
$(DRONE_DOCKER) sign --save grafana/terraform-provider-grafana .drone/drone.yml
4849

4950
golangci-lint:
5051
docker run \

grafana/resource_cloud_plugin_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package grafana
22

33
import (
44
"fmt"
5+
"os"
56
"testing"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -11,7 +12,7 @@ import (
1112
func TestAccResourceCloudPluginInstallation(t *testing.T) {
1213
CheckCloudAPITestsEnabled(t)
1314

14-
slug := "terraformprovidergrafana"
15+
slug := os.Getenv("GRAFANA_CLOUD_ORG")
1516
pluginSlug := "aws-datasource-provisioner-app"
1617
pluginVersion := "1.7.0"
1718

0 commit comments

Comments
 (0)