IMAGE_REPOSITORY ?= registry.brunner.ninja/feedc0de/mikrotik-operator
IMAGE_TAG ?= dev
IMAGE ?= $(IMAGE_REPOSITORY):$(IMAGE_TAG)
CHART ?= chart/mikrotik-operator
CHART_VERSION ?= 0.1.0

.PHONY: build test chart-lint chart-package image push install install-manifests

build:
	go build -buildvcs=false ./cmd/manager

test:
	go test ./...

chart-lint:
	helm lint $(CHART)
	helm template mikrotik-operator $(CHART) --namespace mikrotik-operator-system --include-crds >/dev/null

chart-package: chart-lint
	helm package $(CHART) --version $(CHART_VERSION) --app-version $(IMAGE_TAG)

image:
	docker build -t $(IMAGE) .

push: image
	docker push $(IMAGE)

install:
	helm upgrade --install mikrotik-operator $(CHART) \
		--namespace mikrotik-operator-system \
		--create-namespace \
		--set-string image.repository=$(IMAGE_REPOSITORY) \
		--set-string image.tag=$(IMAGE_TAG)

install-manifests:
	kubectl apply -f config/crd/mikrotikrouters.yaml
	kubectl apply -f config/rbac/operator.yaml
	kubectl apply -f config/manager/deployment.yaml
	kubectl -n mikrotik-operator-system set image deployment/mikrotik-operator manager=$(IMAGE)
