Skip to content

Commit 5a95276

Browse files
committed
feat(ci): Added repo management and test cases.
1 parent d8aaf2e commit 5a95276

14 files changed

Lines changed: 740 additions & 32 deletions

.github/workflows/tests.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -72,37 +72,37 @@ jobs:
7272
- run: go mod download
7373
- env:
7474
TF_ACC: "1"
75-
KEYFACTOR_DEPLOY_CERT_STOREID1: "ef0b8005-63bf-42e8-aa3f-23bc94dcf611"
76-
KEYFACTOR_DEPLOY_CERT_STOREID2: "ef0b8005-63bf-42e8-aa3f-23bc94dcf611"
77-
7875
KEYFACTOR_HOSTNAME: ${{secrets.KEYFACTOR_HOSTNAME}}
7976
KEYFACTOR_USERNAME: ${{secrets.KEYFACTOR_USERNAME}}
8077
KEYFACTOR_PASSWORD: ${{secrets.KEYFACTOR_PASSWORD}}
8178
KEYFACTOR_DOMAIN: ${{secrets.KEYFACTOR_DOMAIN}}
8279

83-
KEYFACTOR_CERTIFICATE_ID: "26"
84-
KEYFACTOR_CERTIFICATE_PASSWORD: ${{secrets.TEST_CERTIFICATE_PASS}}
85-
KEYFACTOR_CERTIFICATE_TEMPLATE_NAME: "2YearTestWebServer"
86-
KEYFACTOR_CERTIFICATE_CA_DOMAIN: "DC-CA.Command.local"
87-
KEYFACTOR_CERTIFICATE_CA_NAME: "CommandCA1"
80+
KEYFACTOR_CERTIFICATE_ID: ${{secrets.KEYFACTOR_CERTIFICATE_ID}}
81+
KEYFACTOR_CERTIFICATE_PASSWORD: ${{secrets.KEYFACTOR_CERTIFICATE_PASSWORD}}
82+
KEYFACTOR_CERTIFICATE_TEMPLATE_NAME: ${{secrets.KEYFACTOR_CERTIFICATE_TEMPLATE_NAME}}
83+
KEYFACTOR_CERTIFICATE_CA_DOMAIN: ${{secrets.KEYFACTOR_CERTIFICATE_CA_DOMAIN}}
84+
KEYFACTOR_CERTIFICATE_CA_NAME: ${{secrets.KEYFACTOR_CERTIFICATE_CA_NAME}}
8885

89-
KEYFACTOR_CERTIFICATE_STORE_ID: "ef0b8005-63bf-42e8-aa3f-23bc94dcf611"
90-
KEYFACTOR_CERTIFICATE_STORE_CLIENT_MACHINE: "myorchestrator01"
91-
KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID: "c2b2084f-3d89-4ded-bb8b-b4e0e74d2b59"
92-
KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1: "2"
93-
KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID2: "2"
86+
KEYFACTOR_CERTIFICATE_STORE_ID: ${{secrets.KEYFACTOR_CERTIFICATE_STORE_ID}}
87+
KEYFACTOR_CERTIFICATE_STORE_CLIENT_MACHINE: ${{secrets.KEYFACTOR_CERTIFICATE_STORE_CLIENT_MACHINE}}
88+
KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID: ${{secrets.KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID}}
89+
KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1: ${{secrets.KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1}}
90+
KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID2: ${{secrets.KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID2}}
9491
KEYFACTOR_CERTIFICATE_STORE_PASS: ${{secrets.TEST_CERTSTORE_PASS}}
9592

96-
KEYFACTOR_SECURITY_ROLE_NAME: "TerraformTest"
93+
KEYFACTOR_DEPLOY_CERT_STOREID1: ${{secrets.KEYFACTOR_DEPLOY_CERT_STOREID1}}
94+
KEYFACTOR_DEPLOY_CERT_STOREID2: ${{secrets.KEYFACTOR_DEPLOY_CERT_STOREID2}}
95+
96+
KEYFACTOR_SECURITY_ROLE_NAME: ${{secrets.KEYFACTOR_SECURITY_ROLE_NAME}}
9797

98-
KEYFACTOR_SECURITY_IDENTITY_ACCOUNTNAME: 'COMMAND\\terraformer'
99-
KEYFACTOR_SECURITY_IDENTITY_ROLE1: "EnrollPFX"
100-
KEYFACTOR_SECURITY_IDENTITY_ROLE2: "Terraform"
98+
KEYFACTOR_SECURITY_IDENTITY_ACCOUNTNAME: ${{secrets.KEYFACTOR_SECURITY_IDENTITY_ACCOUNTNAME}}
99+
KEYFACTOR_SECURITY_IDENTITY_ROLE1: ${{secrets.KEYFACTOR_SECURITY_IDENTITY_ROLE1}}
100+
KEYFACTOR_SECURITY_IDENTITY_ROLE2: ${{secrets.KEYFACTOR_SECURITY_IDENTITY_ROLE2}}
101101

102-
KEYFACTOR_TEMPLATE_ROLE_BINDING_ROLE_NAME: "Terraform"
103-
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME1: "2YearTestWebServer"
104-
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME2: "Workstation"
105-
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME3: "User"
102+
KEYFACTOR_TEMPLATE_ROLE_BINDING_ROLE_NAME: ${{secrets.KEYFACTOR_TEMPLATE_ROLE_BINDING_ROLE_NAME}}
103+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME1: ${{secrets.KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME1}}
104+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME2: ${{secrets.KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME2}}
105+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME3: ${{secrets.KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME3}}
106106

107107
run: go test -v -cover ./keyfactor
108108
timeout-minutes: 10

get_env.sh

Lines changed: 58 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,66 @@
11
#!/usr/bin/env bash
2-
source ~/.env_kf-int-lab1011
2+
# This file is used to set environment variables for running acceptance tests
3+
4+
# Setup Keyfactor Command Environment
5+
#KEYFACTOR_HOSTNAME=""
6+
#KEYFACTOR_USERNAME=""
7+
#KEYFACTOR_PASSWORD=""
8+
#KEYFACTOR_DOMAIN=""
9+
#source ~/.env_kf-int-lab1011
10+
11+
# Create or empty .env file
12+
echo "" > .env
13+
14+
# Use kfutil to find a random orchestrator to test with
315
export KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID=$(kfutil orchs list | jq -r ".[].AgentId" | tail -n 1) >> .env
416
export KEYFACTOR_CERTIFICATE_STORE_CLIENT_MACHINE=$(kfutil orchs list | jq -r ".[].ClientMachine" | tail -n 1) >> .env
17+
18+
# Use kfutil to find a random container to test with
19+
# TODO=Remove hard-coded container names
520
export KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1=$(kfutil containers list | jq -r '.[] | select(.Name == "K8S Secret")' | jq -r .Id) >> .env
621
export KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID2=$(kfutil containers list | jq -r '.[] | select(.Name == "K8S TLS Secrets")' | jq -r .Id) >> .env
722

23+
#kfutil stores list | \
24+
# jq -r --arg KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID="$KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID" \
25+
# '.[] | select(.AgentId == $KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID)' | \
26+
# jq -r --arg KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1="$KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1" \
27+
# '.[] | select (.ContainerId == $KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1)' | jq -r '.[0]'
28+
29+
# Use kfutil to find a cert store compatible with the orchestrator and container
30+
cert_store_resp=$(kfutil stores list | \
31+
jq -r --arg KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID="$KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID" \
32+
'.[] | select(.AgentId == $KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID)' | \
33+
jq -r --arg KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1="$KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1" \
34+
'.[] | select (.ContainerId == $KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1)' | jq -r '.[0]')
35+
36+
export KEYFACTOR_CERTIFICATE_STORE_ID=$(echo "$cert_store_resp" | jq -r .Id)
37+
export KEYFACTOR_CERTIFICATE_STORE_TYPE_ID=$(echo "$cert_store_resp" | jq -r .CertStoreType)
38+
export KEYFACTOR_CERTIFICATE_STORE_TYPE=$(kfutil store-types list | jq --argjson var "$((KEYFACTOR_CERTIFICATE_STORE_TYPE_ID))" '.[] | select(.StoreType == $var)' | jq -r .Name)
39+
export KEYFACTOR_CERTIFICATE_STORE_PATH=$(echo "$cert_store_resp" | jq -r .Storepath)
40+
41+
# Use kfutil to find a test cert
42+
export KEYFACTOR_CERTIFICATE_ID="1011" #todo=pending kfutil cert list support
43+
export KEYFACTOR_CERTIFICATE_PASSWORD="fake_demo_pass_changeme@!!"
44+
export KEYFACTOR_CERTIFICATE_TEMPLATE_NAME="2YearTestWebServer" #todo=pending kfutil template list support
45+
export KEYFACTOR_CERTIFICATE_CA_DOMAIN="DC-CA.Command.local" #todo=pending kfutil ca list support
46+
export KEYFACTOR_CERTIFICATE_CA_NAME="CommandCA1" #todo=pending kfutil ca list support
47+
48+
# Choose Deployment Stores
49+
KEYFACTOR_DEPLOY_CERT_STOREID1=$KEYFACTOR_CERTIFICATE_STORE_ID
50+
KEYFACTOR_DEPLOY_CERT_STOREID2=$KEYFACTOR_CERTIFICATE_STORE_ID
51+
52+
# Use kfutil to find a random user account for tests
53+
KEYFACTOR_SECURITY_IDENTITY_ACCOUNTNAME="acc-tests-terraformer"
54+
55+
# Use kfutil to find a random role for role binding tests
56+
KEYFACTOR_SECURITY_IDENTITY_ROLE1="EnrollPFX"
57+
KEYFACTOR_SECURITY_IDENTITY_ROLE2="Terraform"
58+
59+
# Use kfutil to find a random template for role binding tests
60+
KEYFACTOR_TEMPLATE_ROLE_BINDING_ROLE_NAME="Terraform Acceptance Tests"
61+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME1="2YearTestWebServer"
62+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME2="Workstation"
63+
KEYFACTOR_TEMPLATE_ROLE_BINDING_TEMPLATE_NAME3="User"
864

9-
export KEYFACTOR_CERT_STORE=$(kfutil stores list | \
10-
jq -r --arg KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID="$KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID" \
11-
'.[] | select(.AgentId == $KEYFACTOR_CERTIFICATE_STORE_ORCHESTRATOR_AGENT_ID)' | \
12-
jq -r --arg KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1="$KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1" \
13-
'.[] | select (.ContainerId == $KEYFACTOR_CERTIFICATE_STORE_CONTAINER_ID1)' | jq -r '.[0]')
14-
export KEYFACTOR_CERTIFICATE_STORE_ID=$(echo "$KEYFACTOR_CERT_STORE" | jq -r .Id)
15-
export KEYFACTOR_CERTIFICATE_STORE_TYPE_ID=$(echo "$KEYFACTOR_CERT_STORE" | jq -r .CertStoreType)
16-
export KEYFACTOR_CERTIFICATE_STORE_TYPE=$(kfutil stores types list | jq -r --arg KEYFACTOR_CERTIFICATE_STORE_TYPE_ID "$KEYFACTOR_CERTIFICATE_STORE_TYPE_ID" '.[] | select(.Id == $KEYFACTOR_CERTIFICATE_STORE_TYPE_ID)' | jq -r .Name)
17-
echo "$KEYFACTOR_CERT_STORE" | jq -r
18-
export KEYFACTOR_CERTIFICATE_STORE_PATH=$(echo "$KEYFACTOR_CERT_STORE" | jq -r .Path)
1965
printenv | grep KEYFACTOR > .env
66+

local_dev_vendor.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env bash
2+
make vendor
3+
cd vendor/github.com/Keyfactor
4+
rm -rf keyfactor-go-client
5+
ln -s $GO_PATH/keyfactor-go-client .
6+
cd ../../..

0 commit comments

Comments
 (0)