디렉토리 구조 및 각 서비스 추가
This commit is contained in:
101
helm/vault/Makefile
Normal file
101
helm/vault/Makefile
Normal file
@@ -0,0 +1,101 @@
|
||||
TEST_IMAGE?=vault-helm-test
|
||||
GOOGLE_CREDENTIALS?=vault-helm-test.json
|
||||
CLOUDSDK_CORE_PROJECT?=vault-helm-dev-246514
|
||||
# set to run a single test - e.g acceptance/server-ha-enterprise-dr.bats
|
||||
ACCEPTANCE_TESTS?=acceptance
|
||||
|
||||
# filter bats unit tests to run.
|
||||
UNIT_TESTS_FILTER?='.*'
|
||||
|
||||
# set to 'true' to run acceptance tests locally in a kind cluster
|
||||
LOCAL_ACCEPTANCE_TESTS?=false
|
||||
|
||||
# kind cluster name
|
||||
KIND_CLUSTER_NAME?=vault-helm
|
||||
|
||||
# kind k8s version
|
||||
KIND_K8S_VERSION?=v1.26.3
|
||||
|
||||
# Generate json schema for chart values. See test/README.md for more details.
|
||||
values-schema:
|
||||
helm schema-gen values.yaml > values.schema.json
|
||||
|
||||
test-image:
|
||||
@docker build --rm -t $(TEST_IMAGE) -f $(CURDIR)/test/docker/Test.dockerfile $(CURDIR)
|
||||
|
||||
test-unit:
|
||||
@docker run --rm -it -v ${PWD}:/helm-test $(TEST_IMAGE) bats -f $(UNIT_TESTS_FILTER) /helm-test/test/unit
|
||||
|
||||
test-bats: test-unit test-acceptance
|
||||
|
||||
test: test-image test-bats
|
||||
|
||||
# run acceptance tests on GKE
|
||||
# set google project/credential vars above
|
||||
test-acceptance:
|
||||
ifeq ($(LOCAL_ACCEPTANCE_TESTS),true)
|
||||
make setup-kind acceptance
|
||||
else
|
||||
@docker run -it -v ${PWD}:/helm-test \
|
||||
-e GOOGLE_CREDENTIALS=${GOOGLE_CREDENTIALS} \
|
||||
-e CLOUDSDK_CORE_PROJECT=${CLOUDSDK_CORE_PROJECT} \
|
||||
-e KUBECONFIG=/helm-test/.kube/config \
|
||||
-e VAULT_LICENSE_CI=${VAULT_LICENSE_CI} \
|
||||
-w /helm-test \
|
||||
$(TEST_IMAGE) \
|
||||
make acceptance
|
||||
endif
|
||||
|
||||
# destroy GKE cluster using terraform
|
||||
test-destroy:
|
||||
@docker run -it -v ${PWD}:/helm-test \
|
||||
-e GOOGLE_CREDENTIALS=${GOOGLE_CREDENTIALS} \
|
||||
-e CLOUDSDK_CORE_PROJECT=${CLOUDSDK_CORE_PROJECT} \
|
||||
-w /helm-test \
|
||||
$(TEST_IMAGE) \
|
||||
make destroy-cluster
|
||||
|
||||
# provision GKE cluster using terraform
|
||||
test-provision:
|
||||
@docker run -it -v ${PWD}:/helm-test \
|
||||
-e GOOGLE_CREDENTIALS=${GOOGLE_CREDENTIALS} \
|
||||
-e CLOUDSDK_CORE_PROJECT=${CLOUDSDK_CORE_PROJECT} \
|
||||
-e KUBECONFIG=/helm-test/.kube/config \
|
||||
-w /helm-test \
|
||||
$(TEST_IMAGE) \
|
||||
make provision-cluster
|
||||
|
||||
# this target is for running the acceptance tests
|
||||
# it is run in the docker container above when the test-acceptance target is invoked
|
||||
acceptance:
|
||||
ifneq ($(LOCAL_ACCEPTANCE_TESTS),true)
|
||||
gcloud auth activate-service-account --key-file=${GOOGLE_CREDENTIALS}
|
||||
endif
|
||||
bats --tap --timing test/${ACCEPTANCE_TESTS}
|
||||
|
||||
# this target is for provisioning the GKE cluster
|
||||
# it is run in the docker container above when the test-provision target is invoked
|
||||
provision-cluster:
|
||||
gcloud auth activate-service-account --key-file=${GOOGLE_CREDENTIALS}
|
||||
terraform init test/terraform
|
||||
terraform apply -var project=${CLOUDSDK_CORE_PROJECT} -var init_cli=true -auto-approve test/terraform
|
||||
|
||||
# this target is for removing the GKE cluster
|
||||
# it is run in the docker container above when the test-destroy target is invoked
|
||||
destroy-cluster:
|
||||
terraform destroy -auto-approve
|
||||
|
||||
# create a kind cluster for running the acceptance tests locally
|
||||
setup-kind:
|
||||
kind get clusters | grep -q "^${KIND_CLUSTER_NAME}$$" || \
|
||||
kind create cluster \
|
||||
--image kindest/node:${KIND_K8S_VERSION} \
|
||||
--name ${KIND_CLUSTER_NAME} \
|
||||
--config $(CURDIR)/test/kind/config.yaml
|
||||
kubectl config use-context kind-${KIND_CLUSTER_NAME}
|
||||
|
||||
# delete the kind cluster
|
||||
delete-kind:
|
||||
kind delete cluster --name ${KIND_CLUSTER_NAME} || :
|
||||
|
||||
.PHONY: values-schema test-image test-unit test-bats test test-acceptance test-destroy test-provision acceptance provision-cluster destroy-cluster
|
||||
Reference in New Issue
Block a user