Skip to content

Commit 966993d

Browse files
committed
kv
1 parent 0fe464e commit 966993d

2 files changed

Lines changed: 45 additions & 4 deletions

File tree

.github/workflows/acceptance-tests.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ jobs:
102102
echo "ARM_TEMP_RESOURCE_GROUP_NAME=${BASE_PREFIX}-${SUFFIX}-acceptance-test-managed-cli" >> $GITHUB_ENV
103103
echo "ARM_TENANT_ID=${{ secrets.ARM_TENANT_ID }}" >> $GITHUB_ENV
104104
105+
KV_BASE=$(echo "${BASE_PREFIX}" | tr '[:upper:]' '[:lower:]' | tr -d '-' | tr -d '_')
106+
KV_BASE_MAX=$((24 - ${#SUFFIX} - 2))
107+
KV_BASE=${KV_BASE:0:${KV_BASE_MAX}}
108+
echo "ARM_KEY_VAULT_NAME=${KV_BASE}kv${SUFFIX}" >> $GITHUB_ENV
109+
105110
OBJECT_ID=$(az ad sp show --id "${{ secrets.ARM_CLIENT_ID }}" | jq -r '.id')
106111
echo "AZURE_OBJECT_ID=${OBJECT_ID}" >> $GITHUB_ENV
107112

datasource/keyvaultsecret/data_acc_test.go

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,28 @@ import (
2525
var testTemplate string
2626

2727
func TestAccAzureKeyVaultSecret(t *testing.T) {
28-
packerResourcePrefix := os.Getenv("ARM_RESOURCE_PREFIX")
29-
if packerResourcePrefix == "" {
30-
packerResourcePrefix = "packer"
28+
testVaultName := os.Getenv("ARM_KEY_VAULT_NAME")
29+
if testVaultName == "" {
30+
resourcePrefix := os.Getenv("ARM_RESOURCE_PREFIX_BASE")
31+
if resourcePrefix == "" {
32+
resourcePrefix = os.Getenv("ARM_RESOURCE_PREFIX")
33+
}
34+
resourceSuffix := os.Getenv("ARM_RESOURCE_SUFFIX")
35+
if resourcePrefix == "" {
36+
resourcePrefix = "packer"
37+
}
38+
if resourceSuffix != "" {
39+
suffixShort := resourceSuffix
40+
if len(suffixShort) > 6 {
41+
suffixShort = suffixShort[:6]
42+
}
43+
baseMax := 24 - len(suffixShort) - 2
44+
base := normalizeKeyVaultBase(resourcePrefix, baseMax)
45+
testVaultName = fmt.Sprintf("%skv%s", base, suffixShort)
46+
} else {
47+
testVaultName = fmt.Sprintf("%s-pkr-test-vault", resourcePrefix)
48+
}
3149
}
32-
testVaultName := fmt.Sprintf("%s-pkr-test-vault", packerResourcePrefix)
3350

3451
cases := []struct {
3552
name string
@@ -138,6 +155,25 @@ type AzureKeyVault struct {
138155
Value string `mapstructure:"value" required:"true"`
139156
}
140157

158+
func normalizeKeyVaultBase(prefix string, maxLen int) string {
159+
normalized := make([]rune, 0, len(prefix))
160+
for _, r := range prefix {
161+
if r >= 'A' && r <= 'Z' {
162+
r = r + ('a' - 'A')
163+
}
164+
if (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') {
165+
normalized = append(normalized, r)
166+
}
167+
}
168+
if maxLen < 0 {
169+
maxLen = 0
170+
}
171+
if len(normalized) > maxLen {
172+
return string(normalized[:maxLen])
173+
}
174+
return string(normalized)
175+
}
176+
141177
func (s *AzureKeyVault) getSecretsClient() (*azsecrets.Client, error) {
142178
cred, err := azidentity.NewDefaultAzureCredential(nil)
143179
if err != nil {

0 commit comments

Comments
 (0)