Skip to content

Commit a52058f

Browse files
authored
tests: add workaround for 404 (#864)
1 parent 612495f commit a52058f

File tree

6 files changed

+66
-16
lines changed

6 files changed

+66
-16
lines changed

.secrets.baseline

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.sum|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2025-10-10T12:27:13Z",
6+
"generated_at": "2025-11-07T15:07:08Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -82,7 +82,7 @@
8282
"hashed_secret": "8196b86ede820e665b2b8af9c648f4996be99838",
8383
"is_secret": false,
8484
"is_verified": false,
85-
"line_number": 91,
85+
"line_number": 93,
8686
"type": "Secret Keyword",
8787
"verified_result": null
8888
}

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ Optionally, the module supports advanced security group management for the worke
3030
* [kube-audit](./modules/kube-audit)
3131
* [worker-pool](./modules/worker-pool)
3232
* [Examples](./examples)
33-
* [2 MZR clusters in same VPC example](./examples/multiple_mzr_clusters)
34-
* [Advanced example (mzr, auto-scale, kms, taints)](./examples/advanced)
35-
* [Attaching custom security groups](./examples/custom_sg)
36-
* [Basic single zone cluster with allowed outbound traffic](./examples/basic)
37-
* [Cluster security group rules example](./examples/add_rules_to_sg)
38-
* [Cross account KMS encryption example](./examples/cross_kms_support)
39-
* [Financial Services compliant example](./examples/fscloud)
33+
* <div style="display: inline-block;"><a href="./examples/add_rules_to_sg">Cluster security group rules example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-add_rules_to_sg-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/add_rules_to_sg" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
34+
* <div style="display: inline-block;"><a href="./examples/advanced">Advanced example (mzr, auto-scale, kms, taints)</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-advanced-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/advanced" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
35+
* <div style="display: inline-block;"><a href="./examples/basic">Basic single zone cluster with allowed outbound traffic</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-basic-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/basic" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
36+
* <div style="display: inline-block;"><a href="./examples/cross_kms_support">Cross account KMS encryption example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-cross_kms_support-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/cross_kms_support" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
37+
* <div style="display: inline-block;"><a href="./examples/custom_sg">Attaching custom security groups</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-custom_sg-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/custom_sg" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
38+
* <div style="display: inline-block;"><a href="./examples/fscloud">Financial Services compliant example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-fscloud-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/fscloud" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
39+
* <div style="display: inline-block;"><a href="./examples/multiple_mzr_clusters">2 MZR clusters in same VPC example</a></div> <div style="display: inline-block; vertical-align: middle;"><a href="https://cloud.ibm.com/schematics/workspaces/create?workspace_name=bov-multiple_mzr_clusters-example&repository=github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/tree/main/examples/multiple_mzr_clusters" target="_blank"><img src="https://cloud.ibm.com/media/docs/images/icons/Deploy_to_cloud.svg" alt="Deploy to IBM Cloud button"></a></div>
4040
* [Contributing](#contributing)
4141
<!-- END OVERVIEW HOOK -->
4242

tests/existing-resources/outputs.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,8 @@ output "cos_instance_id" {
3131
description = "The ID of the Cloud Object Storage instance"
3232
value = module.cos.cos_instance_id
3333
}
34+
35+
output "region" {
36+
description = "Region"
37+
value = var.region
38+
}

tests/other_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ func TestRunMultiClusterExample(t *testing.T) {
8181
IgnoreDestroys: testhelper.Exemptions{ // Ignore for consistency check
8282
List: []string{
8383
"module.ocp_base_cluster_1.null_resource.confirm_network_healthy",
84-
"module.ocp_base_cluster_1.null_resource.reset_api_key",
8584
"module.ocp_base_cluster_2.null_resource.confirm_network_healthy",
86-
"module.ocp_base_cluster_2.null_resource.reset_api_key",
8785
},
8886
},
8987
// Do not hard fail the test if the implicit destroy steps fail to allow a full destroy of resource to occur
@@ -106,7 +104,6 @@ func TestRunAddRulesToSGExample(t *testing.T) {
106104
ResourceGroup: resourceGroup,
107105
ImplicitDestroy: []string{
108106
"module.ocp_base.null_resource.confirm_network_healthy",
109-
"module.ocp_base.null_resource.reset_api_key",
110107
},
111108
// Do not hard fail the test if the implicit destroy steps fail to allow a full destroy of resource to occur
112109
ImplicitRequired: false,

tests/pr_test.go

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
package test
33

44
import (
5+
"bytes"
56
"fmt"
67
"log"
78
"os"
9+
"os/exec"
810
"strings"
911
"testing"
1012

@@ -130,6 +132,24 @@ func cleanupTerraform(t *testing.T, options *terraform.Options, prefix string) {
130132
logger.Log(t, "END: Destroy (existing resources)")
131133
}
132134

135+
func createContainersApikey(t *testing.T, region string, rg string) {
136+
137+
err := os.Setenv("IBMCLOUD_API_KEY", validateEnvVariable(t, "TF_VAR_ibmcloud_api_key"))
138+
require.NoError(t, err, "Failed to set IBMCLOUD_API_KEY environment variable")
139+
scriptPath := "../common-dev-assets/scripts/iks-api-key-reset/reset_iks_api_key.sh"
140+
cmd := exec.Command("bash", scriptPath, region, rg)
141+
var stdout, stderr bytes.Buffer
142+
cmd.Stdout = &stdout
143+
cmd.Stderr = &stderr
144+
145+
// Execute the command
146+
if err := cmd.Run(); err != nil {
147+
log.Fatalf("Failed to execute script: %v\nStderr: %s", err, stderr.String())
148+
}
149+
// Print script output
150+
fmt.Println(stdout.String())
151+
}
152+
133153
func TestRunFullyConfigurableInSchematics(t *testing.T) {
134154
t.Parallel()
135155

@@ -145,15 +165,18 @@ func TestRunFullyConfigurableInSchematics(t *testing.T) {
145165
Tags: []string{"test-schematic"},
146166
DeleteWorkspaceOnFail: false,
147167
TerraformVersion: terraformVersion,
168+
Region: terraform.Output(t, existingTerraformOptions, "region"),
148169
})
149170

171+
rg := terraform.Output(t, existingTerraformOptions, "resource_group_name")
172+
150173
options.TerraformVars = []testschematic.TestSchematicTerraformVar{
151174
{Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true},
152175
{Name: "prefix", Value: options.Prefix, DataType: "string"},
153176
{Name: "cluster_name", Value: "cluster", DataType: "string"},
154177
{Name: "openshift_version", Value: ocpVersion1, DataType: "string"},
155178
{Name: "ocp_entitlement", Value: "cloud_pak", DataType: "string"},
156-
{Name: "existing_resource_group_name", Value: terraform.Output(t, existingTerraformOptions, "resource_group_name"), DataType: "string"},
179+
{Name: "existing_resource_group_name", Value: rg, DataType: "string"},
157180
{Name: "existing_cos_instance_crn", Value: terraform.Output(t, existingTerraformOptions, "cos_instance_id"), DataType: "string"},
158181
{Name: "existing_vpc_crn", Value: terraform.Output(t, existingTerraformOptions, "vpc_crn"), DataType: "string"},
159182
{Name: "kms_encryption_enabled_cluster", Value: "true", DataType: "bool"},
@@ -162,6 +185,10 @@ func TestRunFullyConfigurableInSchematics(t *testing.T) {
162185
{Name: "enable_secrets_manager_integration", Value: "true", DataType: "bool"},
163186
{Name: "existing_secrets_manager_instance_crn", Value: permanentResources["secretsManagerCRN"], DataType: "string"},
164187
}
188+
189+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
190+
createContainersApikey(t, options.Region, rg)
191+
165192
require.NoError(t, options.RunSchematicTest(), "This should not have errored")
166193
cleanupTerraform(t, existingTerraformOptions, prefix)
167194
}
@@ -183,8 +210,11 @@ func TestRunUpgradeFullyConfigurable(t *testing.T) {
183210
DeleteWorkspaceOnFail: false,
184211
TerraformVersion: terraformVersion,
185212
CheckApplyResultForUpgrade: true,
213+
Region: terraform.Output(t, existingTerraformOptions, "region"),
186214
})
187215

216+
rg := terraform.Output(t, existingTerraformOptions, "resource_group_name")
217+
188218
options.IgnoreUpdates = testhelper.Exemptions{List: []string{"module.kube_audit[0].helm_release.kube_audit"}}
189219

190220
options.TerraformVars = []testschematic.TestSchematicTerraformVar{
@@ -199,6 +229,9 @@ func TestRunUpgradeFullyConfigurable(t *testing.T) {
199229
{Name: "existing_secrets_manager_instance_crn", Value: permanentResources["secretsManagerCRN"], DataType: "string"},
200230
}
201231

232+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
233+
createContainersApikey(t, options.Region, rg)
234+
202235
require.NoError(t, options.RunSchematicUpgradeTest(), "This should not have errored")
203236
cleanupTerraform(t, existingTerraformOptions, prefix)
204237
}
@@ -214,7 +247,7 @@ func TestRunCustomsgExample(t *testing.T) {
214247
Testing: t,
215248
TerraformDir: customsgExampleDir,
216249
Prefix: "base-ocp-customsg",
217-
ResourceGroup: "geretain-test-base-ocp-vpc",
250+
ResourceGroup: resourceGroup,
218251
CloudInfoService: sharedInfoSvc,
219252
ImplicitDestroy: []string{
220253
"module.ocp_base.null_resource.confirm_network_healthy",
@@ -228,6 +261,9 @@ func TestRunCustomsgExample(t *testing.T) {
228261
},
229262
})
230263

264+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
265+
createContainersApikey(t, options.Region, options.ResourceGroup)
266+
231267
output, err := options.RunTestConsistency()
232268

233269
assert.Nil(t, err, "This should not have errored")
@@ -241,6 +277,10 @@ func TestRunQuickstartSchematics(t *testing.T) {
241277
t.Parallel()
242278

243279
options := setupQuickstartOptions(t, "ocp-qs")
280+
281+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
282+
createContainersApikey(t, options.Region, options.ResourceGroup)
283+
244284
err := options.RunSchematicTest()
245285
assert.Nil(t, err, "This should not have errored")
246286
}
@@ -250,6 +290,10 @@ func TestRunQuickstartUpgradeSchematics(t *testing.T) {
250290
t.Parallel()
251291

252292
options := setupQuickstartOptions(t, "ocp-qs-upg")
293+
294+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
295+
createContainersApikey(t, options.Region, options.ResourceGroup)
296+
253297
err := options.RunSchematicUpgradeTest()
254298
if !options.UpgradeTestSkipped {
255299
assert.Nil(t, err, "This should not have errored")
@@ -265,13 +309,17 @@ func TestRoksAddonDefaultConfiguration(t *testing.T) {
265309
ResourceGroup: resourceGroup,
266310
QuietMode: false, // Suppress logs except on failure
267311
})
312+
region := "eu-de"
313+
314+
// Temp workaround for https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc?tab=readme-ov-file#the-specified-api-key-could-not-be-found
315+
createContainersApikey(t, region, options.ResourceGroup)
268316

269317
options.AddonConfig = cloudinfo.NewAddonConfigTerraform(
270318
options.Prefix,
271319
"deploy-arch-ibm-slz-ocp",
272320
"fully-configurable",
273321
map[string]interface{}{
274-
"region": "eu-de",
322+
"region": region,
275323
},
276324
)
277325

0 commit comments

Comments
 (0)