|
| 1 | +# Current Operator version |
| 2 | +VERSION ?= 1.64.1 |
| 3 | +# Default bundle image tag |
| 4 | +BUNDLE_IMG ?= snyk/snyk-operator-bundle:$(VERSION) |
| 5 | +# Options for 'bundle-build' |
| 6 | +ifneq ($(origin CHANNELS), undefined) |
| 7 | +BUNDLE_CHANNELS := --channels=$(CHANNELS) |
| 8 | +endif |
| 9 | +ifneq ($(origin DEFAULT_CHANNEL), undefined) |
| 10 | +BUNDLE_DEFAULT_CHANNEL := --default-channel=$(DEFAULT_CHANNEL) |
| 11 | +endif |
| 12 | +BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL) |
| 13 | + |
| 14 | +# Image URL to use all building/pushing image targets |
| 15 | +IMG ?= snyk/snyk-operator:$(VERSION) |
| 16 | + |
| 17 | +all: docker-build |
| 18 | + |
| 19 | +# Run against the configured Kubernetes cluster in ~/.kube/config |
| 20 | +run: helm-operator |
| 21 | + $(HELM_OPERATOR) run |
| 22 | + |
| 23 | +# Install CRDs into a cluster |
| 24 | +install: kustomize |
| 25 | + $(KUSTOMIZE) build config/crd | kubectl apply -f - |
| 26 | + |
| 27 | +# Uninstall CRDs from a cluster |
| 28 | +uninstall: kustomize |
| 29 | + $(KUSTOMIZE) build config/crd | kubectl delete -f - |
| 30 | + |
| 31 | +# Deploy controller in the configured Kubernetes cluster in ~/.kube/config |
| 32 | +deploy: kustomize |
| 33 | + cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} |
| 34 | + $(KUSTOMIZE) build config/default | kubectl apply -f - |
| 35 | + |
| 36 | +# Undeploy controller in the configured Kubernetes cluster in ~/.kube/config |
| 37 | +undeploy: kustomize |
| 38 | + $(KUSTOMIZE) build config/default | kubectl delete -f - |
| 39 | + |
| 40 | +# Build the docker image |
| 41 | +docker-build: |
| 42 | + docker build . -t ${IMG} |
| 43 | + |
| 44 | +# Push the docker image |
| 45 | +docker-push: |
| 46 | + docker push ${IMG} |
| 47 | + |
| 48 | +PATH := $(PATH):$(PWD)/bin |
| 49 | +# SHELL := env PATH=$(PATH) /bin/sh |
| 50 | +OS = $(shell uname -s | tr '[:upper:]' '[:lower:]') |
| 51 | +ARCH = $(shell uname -m | sed 's/x86_64/amd64/') |
| 52 | +OSOPER = $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/') |
| 53 | +ARCHOPER = $(shell uname -m ) |
| 54 | + |
| 55 | +kustomize: |
| 56 | +ifeq (, $(shell which kustomize 2>/dev/null)) |
| 57 | + @{ \ |
| 58 | + set -e ;\ |
| 59 | + mkdir -p bin ;\ |
| 60 | + 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/ ;\ |
| 61 | + } |
| 62 | +KUSTOMIZE=$(realpath ./bin/kustomize) |
| 63 | +else |
| 64 | +KUSTOMIZE=$(shell which kustomize) |
| 65 | +endif |
| 66 | + |
| 67 | +helm-operator: |
| 68 | +ifeq (, $(shell which helm-operator 2>/dev/null)) |
| 69 | + @{ \ |
| 70 | + set -e ;\ |
| 71 | + mkdir -p bin ;\ |
| 72 | + curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.8.0/helm-operator-v1.8.0-$(ARCHOPER)-$(OSOPER) ;\ |
| 73 | + mv helm-operator-v1.1.0-$(ARCHOPER)-$(OSOPER) ./bin/helm-operator ;\ |
| 74 | + chmod +x ./bin/helm-operator ;\ |
| 75 | + } |
| 76 | +HELM_OPERATOR=$(realpath ./bin/helm-operator) |
| 77 | +else |
| 78 | +HELM_OPERATOR=$(shell which helm-operator) |
| 79 | +endif |
| 80 | + |
| 81 | +# Generate bundle manifests and metadata, then validate generated files. |
| 82 | +.PHONY: bundle |
| 83 | +bundle: kustomize |
| 84 | + operator-sdk generate kustomize manifests -q |
| 85 | + cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) |
| 86 | + $(KUSTOMIZE) build config/manifests | operator-sdk generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS) |
| 87 | + operator-sdk bundle validate ./bundle |
| 88 | + |
| 89 | +# Build the bundle image. |
| 90 | +.PHONY: bundle-build |
| 91 | +bundle-build: |
| 92 | + docker build -f bundle.Dockerfile -t $(BUNDLE_IMG) . |
0 commit comments