Sidney Shiba 58f39ffa95 Bootstrap container for Azure
This commit provides the Go code and scripts for the Bootstrap container
for Azure.

The Bootstrap container (bootstrap_capz) for Azure is designed to accept
three commands: create, delete and help.
- create - will create an Ephemeral AKS cluster in Azure Cloud
- delete - will delete the Ephemeral AKS cluster from the Azure Cloud
- help - Stdout the help text for using this container.

Please, refer to the bootstrap_capz/README.md for further details.

Change-Id: Id1947f7b831a5d6cf59296cf39ff2b436080483d
2020-11-02 14:54:04 -06:00

57 lines
1.4 KiB
Makefile

SHELL := /bin/bash
PUSH_IMAGE ?= false
GIT_VERSION ?= v0.1.0
GIT_MODULE ?= opendev.org/airship/airshipctl/pkg/version
GO_FLAGS := -ldflags '-extldflags "-static"' -tags=netgo
GO_FLAGS += -ldflags "-X ${GIT_MODULE}.gitVersion=${GIT_VERSION}"
DOCKER_MAKE_TARGET := build
# docker image options
DOCKER_REGISTRY ?= quay.io
DOCKER_FORCE_CLEAN ?= true
DOCKER_IMAGE_NAME ?= capz-bootstrap
DOCKER_IMAGE_PREFIX ?= airshipit
DOCKER_IMAGE_TAG ?= latest
DOCKER_IMAGE ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
DOCKER_TARGET_STAGE ?= release
PATH += :/usr/local/go/bin
HELP_FILE ?= /tmp/help.txt
ORIGINAL_HELP_FILE = ./assets/help.txt
.PHONY: all
all: images
.PHONY: images
images: Dockerfile \
main.go \
config/azure_cluster.go \
config/aks_cluster.go \
config/azure_config.go \
assets/help.txt
@docker build . --network=host \
--build-arg MAKE_TARGET=$(DOCKER_MAKE_TARGET) \
--tag $(DOCKER_IMAGE) \
--force-rm=$(DOCKER_FORCE_CLEAN)
ifeq ($(PUSH_IMAGE), true)
docker push $(DOCKER_IMAGE)
endif
.PHONY: clean
clean:
@docker image rm $(DOCKER_IMAGE)
.PHONY: lint
lint:
@echo TODO
# style checks
.PHONY: tests
tests: images
if [ -f $(HELP_FILE) ]; then sudo rm $(HELP_FILE); fi
cp azure-config.yaml /tmp
docker run -v /tmp:/kube --env-file bootstrap-env.list --name capz-test $(DOCKER_IMAGE)
cmp $(HELP_FILE) $(ORIGINAL_HELP_FILE)