|
1 | 1 | # Makefile for Splunk Operator |
2 | 2 |
|
3 | | -.PHONY: all image package local clean run fmt lint |
| 3 | +.PHONY: all builder builder-image image package local clean run fmt lint |
| 4 | + |
| 5 | +# Security Scanner Variables |
| 6 | +SCANNER_DATE := `date +%Y-%m-%d` |
| 7 | +SCANNER_DATE_YEST := `TZ=GMT+24 +%Y:%m:%d` |
| 8 | +SCANNER_VERSION := v8 |
| 9 | +SCANNER_LOCALIP := $(shell ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | awk '{print $1}' | head -n 1) |
| 10 | +ifeq ($(shell uname), Linux) |
| 11 | + SCANNER_FILE = clair-scanner_linux_amd64 |
| 12 | +else ifeq ($(shell uname), Darwin) |
| 13 | + SCANNER_FILE = clair-scanner_darwin_amd64 |
| 14 | +else |
| 15 | + SCANNER_FILE = clair-scanner_windows_amd64.exe |
| 16 | +endif |
4 | 17 |
|
5 | 18 | all: image |
6 | 19 |
|
7 | | -builder-image: |
| 20 | +builder: |
8 | 21 | @echo Creating container image to build splunk-operator |
9 | 22 | @docker build -f ./build/Dockerfile.builder -t splunk/splunk-operator-builder . |
10 | 23 |
|
11 | | -builder: deploy/all-in-one-scoped.yaml deploy/all-in-one-cluster.yaml |
12 | | - @echo Using container to build splunk-operator |
| 24 | +builder-image: |
| 25 | + @echo Using builder container to build splunk-operator |
13 | 26 | @mkdir -p ./build/_output/bin |
14 | | - @docker run -v ${PWD}:/opt/app-root/src/splunk-operator -u root -it splunk/splunk-operator-builder bash -c "cd /opt/app-root/src/splunk-operator && go build -v -o ./build/_output/bin/splunk-operator ./cmd/manager" |
| 27 | + @docker run -v /var/run/docker.sock:/var/run/docker.sock -v ${PWD}:/opt/app-root/src/splunk-operator -w /opt/app-root/src/splunk-operator -u root -it splunk/splunk-operator-builder bash -c "operator-sdk build --verbose splunk/splunk-operator" |
15 | 28 |
|
16 | | -image: deploy/all-in-one-scoped.yaml deploy/all-in-one-cluster.yaml |
17 | | - @echo Building splunk-operator image |
18 | | - @operator-sdk build splunk/splunk-operator |
| 29 | +builder-test: |
| 30 | + @echo Running unit tests for splunk-operator inside of builder container |
| 31 | + @docker run -v /var/run/docker.sock:/var/run/docker.sock -v ${PWD}:/opt/app-root/src/splunk-operator -w /opt/app-root/src/splunk-operator -u root -it splunk/splunk-operator-builder bash -c "go test -v -covermode=count -coverprofile=coverage.out --timeout=300s github.com/splunk/splunk-operator/pkg/splunk/resources github.com/splunk/splunk-operator/pkg/splunk/spark github.com/splunk/splunk-operator/pkg/splunk/enterprise github.com/splunk/splunk-operator/pkg/splunk/reconcile github.com/splunk/splunk-operator/pkg/splunk/client" |
19 | 32 |
|
20 | | -package: deploy/all-in-one-scoped.yaml deploy/all-in-one-cluster.yaml |
21 | | - @build/package.sh |
| 33 | +image: |
| 34 | + @echo Building splunk-operator image |
| 35 | + @operator-sdk build --verbose splunk/splunk-operator |
22 | 36 |
|
23 | | -local: deploy/all-in-one-scoped.yaml deploy/all-in-one-cluster.yaml |
| 37 | +local: |
| 38 | + @echo Building splunk-operator-local binary only |
24 | 39 | @mkdir -p ./build/_output/bin |
25 | 40 | @go build -v -o ./build/_output/bin/splunk-operator-local ./cmd/manager |
26 | 41 |
|
27 | | -clean: |
| 42 | +test: |
| 43 | + @echo Running unit tests for splunk-operator |
| 44 | + @go test -v -covermode=count -coverprofile=coverage.out --timeout=300s github.com/splunk/splunk-operator/pkg/splunk/resources github.com/splunk/splunk-operator/pkg/splunk/spark github.com/splunk/splunk-operator/pkg/splunk/enterprise github.com/splunk/splunk-operator/pkg/splunk/reconcile github.com/splunk/splunk-operator/pkg/splunk/client |
| 45 | + |
| 46 | +stop_clair_scanner: |
| 47 | + @docker stop clair_db || true |
| 48 | + @docker rm clair_db || true |
| 49 | + @docker stop clair || true |
| 50 | + @docker rm clair || true |
| 51 | + |
| 52 | +setup_clair_scanner: stop_clair_scanner |
| 53 | + @mkdir -p clair-scanner-logs |
| 54 | + @docker pull arminc/clair-db:${SCANNER_DATE} || docker pull arminc/clair-db:${SCANNER_DATE_YEST} || echo "WARNING: Failed to pull daily image, defaulting to latest" >> clair-scanner-logs/clair_setup_errors.log ; docker pull arminc/clair-db:latest |
| 55 | + @docker run -d --name clair_db arminc/clair-db:${SCANNER_DATE} || docker run -d --name clair_db arminc/clair-db:${SCANNER_DATE_YEST} || docker run -d --name clair_db arminc/clair-db:latest |
| 56 | + @docker run -p 6060:6060 --link clair_db:postgres -d --name clair --restart on-failure arminc/clair-local-scan:v2.0.6 |
| 57 | + @wget https://github.com/arminc/clair-scanner/releases/download/${SCANNER_VERSION}/${SCANNER_FILE} |
| 58 | + @mv ${SCANNER_FILE} clair-scanner |
| 59 | + @chmod +x clair-scanner |
| 60 | + @echo "Waiting for clair daemon to start" |
| 61 | + @retries=0 ; while( ! wget -T 10 -q -O /dev/null http://0.0.0.0:6060/v1/namespaces ) ; do sleep 1 ; echo -n "." ; if [ $$retries -eq 10 ] ; then echo " Timeout, aborting." ; exit 1 ; fi ; retries=$$(($$retries+1)) ; done |
| 62 | + @echo "Clair daemon started." |
| 63 | + |
| 64 | +run_clair_scan: |
| 65 | + @./clair-scanner -c http://0.0.0.0:6060 --ip ${SCANNER_LOCALIP} -r clair-scanner-logs/results.json -l clair-scanner-logs/results.log splunk/splunk-operator |
| 66 | + |
| 67 | +generate: |
| 68 | + @echo Running operator-sdk generate k8s |
| 69 | + @operator-sdk generate k8s |
| 70 | + @echo Running operator-sdk generate crds |
| 71 | + @cp deploy/rbac.yaml deploy/role.yaml |
| 72 | + @operator-sdk generate crds |
| 73 | + @rm -f deploy/role.yaml deploy/crds/*_cr.yaml |
| 74 | + @echo Rebuilding deploy/crds/combined.yaml |
| 75 | + @echo "---" > deploy/crds/combined.yaml |
| 76 | + @cat deploy/crds/enterprise.splunk.com_standalones_crd.yaml >> deploy/crds/combined.yaml |
| 77 | + @echo "---" >> deploy/crds/combined.yaml |
| 78 | + @cat deploy/crds/enterprise.splunk.com_licensemasters_crd.yaml >> deploy/crds/combined.yaml |
| 79 | + @echo "---" >> deploy/crds/combined.yaml |
| 80 | + @cat deploy/crds/enterprise.splunk.com_searchheadclusters_crd.yaml >> deploy/crds/combined.yaml |
| 81 | + @echo "---" >> deploy/crds/combined.yaml |
| 82 | + @cat deploy/crds/enterprise.splunk.com_indexerclusters_crd.yaml >> deploy/crds/combined.yaml |
| 83 | + @echo "---" >> deploy/crds/combined.yaml |
| 84 | + @cat deploy/crds/enterprise.splunk.com_sparks_crd.yaml >> deploy/crds/combined.yaml |
| 85 | + @echo Rebuilding deploy/all-in-one-scoped.yaml |
| 86 | + @cat deploy/crds/combined.yaml deploy/rbac.yaml deploy/operator.yaml > deploy/all-in-one-scoped.yaml |
| 87 | + @echo Rebuilding deploy/all-in-one-cluster.yaml |
| 88 | + @cat deploy/crds/combined.yaml deploy/rbac.yaml deploy/cluster_operator.yaml > deploy/all-in-one-cluster.yaml |
| 89 | + |
| 90 | +package: lint fmt generate |
| 91 | + @build/package.sh |
| 92 | + |
| 93 | +clean: stop_clair_scanner |
28 | 94 | @rm -rf ./build/_output |
29 | 95 | @docker rmi splunk/splunk-operator || true |
| 96 | + @rm -f clair-scanner |
| 97 | + @rm -rf clair-scanner-logs |
30 | 98 |
|
31 | 99 | run: |
32 | | - @OPERATOR_NAME=splunk-operator operator-sdk up local |
| 100 | + @OPERATOR_NAME=splunk-operator operator-sdk run --local |
33 | 101 |
|
34 | 102 | fmt: |
35 | 103 | @gofmt -l -w `find ./ -name "*.go"` |
36 | 104 |
|
37 | 105 | lint: |
38 | 106 | @golint ./... |
39 | | - |
40 | | -deploy/all-in-one-scoped.yaml: deploy/crds/enterprise_v1alpha1_splunkenterprise_crd.yaml deploy/rbac.yaml deploy/operator.yaml |
41 | | - @echo Rebuilding deploy/all-in-one-scoped.yaml |
42 | | - @cat deploy/crds/enterprise_v1alpha1_splunkenterprise_crd.yaml deploy/rbac.yaml deploy/operator.yaml > deploy/all-in-one-scoped.yaml |
43 | | - |
44 | | -deploy/all-in-one-cluster.yaml: deploy/crds/enterprise_v1alpha1_splunkenterprise_crd.yaml deploy/rbac.yaml deploy/cluster_operator.yaml |
45 | | - @echo Rebuilding deploy/all-in-one-cluster.yaml |
46 | | - @cat deploy/crds/enterprise_v1alpha1_splunkenterprise_crd.yaml deploy/rbac.yaml deploy/cluster_operator.yaml > deploy/all-in-one-cluster.yaml |
|
0 commit comments