...

Text file src/github.com/kvaps/dnsmasq-controller/Makefile

Documentation: github.com/kvaps/dnsmasq-controller

     1
     2# Image URL to use all building/pushing image targets
     3IMG ?= docker.io/kvaps/dnsmasq-controller:latest
     4
     5# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
     6ifeq (,$(shell go env GOBIN))
     7GOBIN=$(shell go env GOPATH)/bin
     8else
     9GOBIN=$(shell go env GOBIN)
    10endif
    11
    12CONTROLLER_GEN = go run sigs.k8s.io/controller-tools/cmd/controller-gen@v0.8.0
    13
    14all: manager
    15
    16# Run tests
    17test: generate fmt vet manifests
    18	go test ./... -coverprofile cover.out
    19
    20# Build manager binary
    21manager: generate fmt vet
    22	go build -o bin/dnsmasq-controller main.go
    23
    24# Run against the configured Kubernetes cluster in ~/.kube/config
    25run: generate fmt vet manifests
    26	go run ./main.go
    27
    28# Install CRDs into a cluster
    29install: manifests
    30	kubectl apply -f config/crd/bases
    31
    32# Uninstall CRDs from a cluster
    33uninstall: manifests
    34	kubectl delete -f config/crd/bases
    35
    36# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
    37deploy: manifests
    38	# RBAC
    39	kubectl apply -n default \
    40	  -f config/rbac/service_account.yaml \
    41	  -f config/rbac/role.yaml \
    42	  -f config/rbac/role_binding.yaml \
    43	  -f config/rbac/leader_election_role.yaml \
    44	  -f config/rbac/leader_election_role_binding.yaml
    45	# DNS-server (for infra.example.org)
    46	kubectl apply -n default -f config/controller/dns-server.yaml
    47	# DHCP-server
    48	kubectl apply -n default -f config/controller/dhcp-server.yaml
    49
    50# Generate manifests e.g. CRD, RBAC etc.
    51manifests:
    52	$(CONTROLLER_GEN) crd rbac:roleName=dnsmasq-controller paths="./..." output:crd:artifacts:config=config/crd/bases
    53
    54# Run go fmt against code
    55fmt:
    56	go fmt ./...
    57
    58# Run go vet against code
    59vet:
    60	go vet ./...
    61
    62# Generate code
    63generate:
    64	$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
    65
    66# Build the docker image
    67docker-build: test
    68	docker build . -t ${IMG}
    69
    70# Push the docker image
    71docker-push:
    72	docker push ${IMG}

View as plain text