mirror of
https://github.com/ZwareBear/JFrog-Cloud-Installers.git
synced 2026-01-21 01:06:55 -06:00
93 lines
2.8 KiB
Makefile
93 lines
2.8 KiB
Makefile
# Current Operator version
|
|
VERSION ?= 0.0.1
|
|
# Default bundle image tag
|
|
BUNDLE_IMG ?= controller-bundle:$(VERSION)
|
|
# Options for 'bundle-build'
|
|
ifneq ($(origin CHANNELS), undefined)
|
|
BUNDLE_CHANNELS := --channels=$(CHANNELS)
|
|
endif
|
|
ifneq ($(origin DEFAULT_CHANNEL), undefined)
|
|
BUNDLE_DEFAULT_CHANNEL := --default-channel=$(DEFAULT_CHANNEL)
|
|
endif
|
|
BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
|
|
|
|
# Image URL to use all building/pushing image targets
|
|
IMG ?= controller:latest
|
|
|
|
all: docker-build
|
|
|
|
# Run against the configured Kubernetes cluster in ~/.kube/config
|
|
run: helm-operator
|
|
$(HELM_OPERATOR) run
|
|
|
|
# Install CRDs into a cluster
|
|
install: kustomize
|
|
$(KUSTOMIZE) build config/crd | kubectl apply -f -
|
|
|
|
# Uninstall CRDs from a cluster
|
|
uninstall: kustomize
|
|
$(KUSTOMIZE) build config/crd | kubectl delete -f -
|
|
|
|
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
|
|
deploy: kustomize
|
|
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
|
|
$(KUSTOMIZE) build config/default | kubectl apply -f -
|
|
|
|
# Undeploy controller in the configured Kubernetes cluster in ~/.kube/config
|
|
undeploy: kustomize
|
|
$(KUSTOMIZE) build config/default | kubectl delete -f -
|
|
|
|
# Build the docker image
|
|
docker-build:
|
|
docker build . -t ${IMG}
|
|
|
|
# Push the docker image
|
|
docker-push:
|
|
docker push ${IMG}
|
|
|
|
PATH := $(PATH):$(PWD)/bin
|
|
SHELL := env PATH=$(PATH) /bin/sh
|
|
OS = $(shell uname -s | tr '[:upper:]' '[:lower:]')
|
|
ARCH = $(shell uname -m | sed 's/x86_64/amd64/')
|
|
OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/')
|
|
ARCHOPER = $(shell uname -m )
|
|
|
|
kustomize:
|
|
ifeq (, $(shell which kustomize 2>/dev/null))
|
|
@{ \
|
|
set -e ;\
|
|
mkdir -p bin ;\
|
|
curl -sSLo - https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.5.4/kustomize_v3.5.4_$(OS)_$(ARCH).tar.gz | tar xzf - -C bin/ ;\
|
|
}
|
|
KUSTOMIZE=$(realpath ./bin/kustomize)
|
|
else
|
|
KUSTOMIZE=$(shell which kustomize)
|
|
endif
|
|
|
|
helm-operator:
|
|
ifeq (, $(shell which helm-operator 2>/dev/null))
|
|
@{ \
|
|
set -e ;\
|
|
mkdir -p bin ;\
|
|
curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.0.1/helm-operator-v1.0.1-$(ARCHOPER)-$(OSOPER) ;\
|
|
mv helm-operator-v1.0.1-$(ARCHOPER)-$(OSOPER) ./bin/helm-operator ;\
|
|
chmod +x ./bin/helm-operator ;\
|
|
}
|
|
HELM_OPERATOR=$(realpath ./bin/helm-operator)
|
|
else
|
|
HELM_OPERATOR=$(shell which helm-operator)
|
|
endif
|
|
|
|
# Generate bundle manifests and metadata, then validate generated files.
|
|
.PHONY: bundle
|
|
bundle: kustomize
|
|
operator-sdk generate kustomize manifests -q
|
|
cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG)
|
|
$(KUSTOMIZE) build config/manifests | operator-sdk generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS)
|
|
operator-sdk bundle validate ./bundle
|
|
|
|
# Build the bundle image.
|
|
.PHONY: bundle-build
|
|
bundle-build:
|
|
docker build -f bundle.Dockerfile -t $(BUNDLE_IMG) .
|