This document describes how to build and test the KubeTest project.
Name | Description | Default | Example |
---|---|---|---|
KEYFACTOR_HOSTNAME |
The hostname of the Keyfactor Command server. | my.kfcommand.kfdelivery.com |
|
KEYFACTOR_USERNAME |
The username of the Keyfactor user. | k8s-orch-sa |
|
KEYFACTOR_PASSWORD |
The password of the Keyfactor user. | <k8s-orch-sa's Command password> |
|
TEST_PAM_MOCK_PASSWORD |
A full unescaped kubeconfig in JSON format. Can also be base64 encoded. Must be a single line! |
See Docs | |
TEST_PAM_MOCK_USERNAME |
Must be set to kubeconfig exactly. |
See Docs | |
TEST_KUBE_NAMESPACE |
The namespace to use for testing. | default |
keyfactor |
TEST_MANUAL |
If set to true , the tests will not be run automatically and prompt for user input. |
false |
true |
TEST_CERT_MGMT_TYPE |
The orchestrator job type. Must be on of the following: ['inv','add','rem'] |
inv |
|
TEST_ORCH_OPERATION |
The orchestrator operation. Can be either inventory or management |
inventory |
dotnet build
export KEYFACTOR_HOSTNAME=my.keyfactor.kfdelivery.com
export KEYFACTOR_DOMAIN=command
export KEYFACTOR_USERNAME=k8s-agent-sa
export KEYFACTOR_PASSWORD=mykeyfactorcommandpassword
export TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be a full kubeconfig file. Can also be passed base64 encoded.
export TEST_KUBE_NAMESPACE=default
export TEST_MANUAL=false
export TEST_CERT_MGMT_TYPE=inv
export TEST_ORCH_OPERATION=inv
./KubeTest/bin/Debug/netcoreapp3.1/KubeTest.exe
dotnet build
# Set environment variables
$env:KEYFACTOR_HOSTNAME="my.keyfactor.kfdelivery.com"
$env:KEYFACTOR_DOMAIN="command"
$env:KEYFACTOR_USERNAME="k8s-agent-sa"
$env:KEYFACTOR_PASSWORD="mykeyfactorcommandpassword"
$env:TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be the full kubeconfig file. Can also be passed base64 encoded.
$env:TEST_KUBE_NAMESPACE="default"
$env:TEST_MANUAL="false"
$env:TEST_CERT_MGMT_TYPE="inv"
$env:TEST_ORCH_OPERATION="inv"
./TestConsole/bin/Debug/netcoreapp3.1/TestConsole.exe
------------------------------------------------------------------------------------------------------------------------
|Test Name |Result |
------------------------------------------------------------------------------------------------------------------------
|Kube Inventory - TLS Secret - tls-secret-01 - SUCCESS |Failure - Kubernetes tls_secret 'tls-secret-01' was not ...|
|Kube Inventory - Opaque Secret - opaque-secret-01 - FAIL |Success |
|Kube Inventory - Opaque Secret - opaque-secret-00 - SUCCESS|Success |
|Kube Inventory - Opaque Secret - opaque-secret-01 - SUCCESS|Success |
|Kube Inventory - Certificate - cert-01 - SUCCESS |Success Kubernetes cert 'cert-01' was not found in names...|
------------------------------------------------------------------------------------------------------------------------
All tests passed.
dotnet build
export KEYFACTOR_HOSTNAME=my.keyfactor.kfdelivery.com
export KEYFACTOR_DOMAIN=command
export KEYFACTOR_USERNAME=k8s-agent-sa
export KEYFACTOR_PASSWORD=mykeyfactorcommandpassword
export TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be a full kubeconfig file. Can also be passed base64 encoded.
export TEST_KUBE_NAMESPACE=default
export TEST_MANUAL=false
export TEST_CERT_MGMT_TYPE=add
export TEST_ORCH_OPERATION=management
./KubeTest/bin/Debug/netcoreapp3.1/KubeTest.exe
dotnet build
# Set environment variables
$env:KEYFACTOR_HOSTNAME="my.keyfactor.kfdelivery.com"
$env:KEYFACTOR_DOMAIN="command"
$env:KEYFACTOR_USERNAME="k8s-agent-sa"
$env:KEYFACTOR_PASSWORD="mykeyfactorcommandpassword"
$env:TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be the full kubeconfig file. Can also be passed base64 encoded.
$env:TEST_KUBE_NAMESPACE="default"
$env:TEST_MANUAL="false"
$env:TEST_CERT_MGMT_TYPE="inv"
$env:TEST_ORCH_OPERATION="inv"
./KubeTest/bin/Debug/netcoreapp3.1/KubeTest.exe
------------------------------------------------------------------------------------------------------------------------
|Test Name |Result |
------------------------------------------------------------------------------------------------------------------------
|Add - TLS Secret - tls-secret-01 - SUCCESS |Success |
|Add - TLS Secret - tls-secret-01 - FAIL |Success Overwrite is not specified, cannot add multiple ...|
|Add - TLS Secret - tls-secret-01 (overwrite) - SUCCESS |Success |
|Add - Opaque Secret - opaque-secret-01 - SUCCESS |Success |
|Add - Opaque Secret - opaque-secret-01 - FAIL |Success The specified network password is not correct. |
|Add - Opaque Secret - opaque-secret-01 (overwrite) - SUC...|Success |
|Add - Certificate - cert-01 - FAIL |Success ADD operation not supported by Kubernetes CSR type.|
------------------------------------------------------------------------------------------------------------------------
All tests passed.
dotnet build
export KEYFACTOR_HOSTNAME=my.keyfactor.kfdelivery.com
export KEYFACTOR_DOMAIN=command
export KEYFACTOR_USERNAME=k8s-agent-sa
export KEYFACTOR_PASSWORD=mykeyfactorcommandpassword
export TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be a full kubeconfig file. Can also be passed base64 encoded.
export TEST_KUBE_NAMESPACE=default
export TEST_MANUAL=false
export TEST_CERT_MGMT_TYPE=remove
export TEST_ORCH_OPERATION=management
./KubeTest/bin/Debug/netcoreapp3.1/KubeTest.exe
dotnet build
# Set environment variables
$env:KEYFACTOR_HOSTNAME="my.keyfactor.kfdelivery.com"
$env:KEYFACTOR_DOMAIN="command"
$env:KEYFACTOR_USERNAME="k8s-agent-sa"
$env:KEYFACTOR_PASSWORD="mykeyfactorcommandpassword"
$env:TEST_KUBECONFIG={"kind":"Config","apiVersion":"v1","preferences":{},"clusters":[...]...} # This needs to be the full kubeconfig file. Can also be passed base64 encoded.
$env:TEST_KUBE_NAMESPACE="default"
$env:TEST_MANUAL="false"
$env:TEST_CERT_MGMT_TYPE="remove"
$env:TEST_ORCH_OPERATION="inv"
./KubeTest/bin/Debug/netcoreapp3.1/KubeTest.exe
------------------------------------------------------------------------------------------------------------------------
|Test Name |Result |
------------------------------------------------------------------------------------------------------------------------
|Remove - TLS Secret - tls-secrte-01 - FAIL |Success Operation returned an invalid status code 'NotFo...|
|Remove - TLS Secret - tls-secret-01 - SUCCESS |Success |
|Remove - Opaque Secret - opaque-secrte-01 - FAIL |Success Operation returned an invalid status code 'NotFo...|
|Remove - Opaque Secret - opaque-secret-01 - SUCCESS |Success |
------------------------------------------------------------------------------------------------------------------------
All tests passed.
------------------------------------------------------------------------------------------------------------------------
|Test Name |Result |
------------------------------------------------------------------------------------------------------------------------
|Remove - TLS Secret - tls-secrte-01 - FAIL |Success Operation returned an invalid status code 'NotFo...|
|Remove - TLS Secret - tls-secret-01 - SUCCESS |Failure - Operation returned an invalid status code 'Not...|
|Remove - Opaque Secret - opaque-secrte-01 - FAIL |Success Operation returned an invalid status code 'NotFo...|
|Remove - Opaque Secret - opaque-secret-01 - SUCCESS |Success |
------------------------------------------------------------------------------------------------------------------------
Some tests failed please check the output above.