diff --git a/.gitignore b/.gitignore index 07b186860..cfaede84f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,5 @@ vendors.txt # Wercker .wercker/ + +.idea/ \ No newline at end of file diff --git a/Makefile b/Makefile index fbf9fa51c..b189955dc 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,12 @@ REGISTRY := wcr.io/oracle PKG := github.com/oracle/oci-cloud-controller-manager BIN := oci-cloud-controller-manager IMAGE := $(REGISTRY)/$(BIN) -VERSION := $(shell git describe --exact-match 2> /dev/null || \ - git describe --match=$(git rev-parse --short=8 HEAD) --always --dirty --abbrev=8) + +BUILD := $(shell git describe --always --dirty) +# Allow overriding for release versions +# Else just equal the build (git hash) +VERSION ?= ${BUILD} GOOS ?= linux ARCH ?= amd64 @@ -22,7 +25,7 @@ else endif .PHONY: all -all: build +all: check test build .PHONY: gofmt gofmt: @@ -36,17 +39,20 @@ golint: govet: @./hack/check-govet.sh ${SRC_DIRS} +.PHONY: check +check: gofmt govet golint + .PHONY: build-dirs build-dirs: @mkdir -p dist/ .PHONY: build -build: build-dirs - @GOOS=${GOOS} GOARCH=${ARCH} go build \ +build: build-dirs manifests + @GOOS=${GOOS} GOARCH=${ARCH} go build -v \ -i \ -o dist/oci-cloud-controller-manager \ -installsuffix "static" \ - -ldflags "-X main.version=${VERSION}" \ + -ldflags "-X main.version=${VERSION} -X main.build=${BUILD}" \ ./cmd/oci-cloud-controller-manager .PHONY: manifests @@ -62,15 +68,15 @@ test: .PHONY: clean clean: - @rm -rf dist/* + @rm -rf dist .PHONY: deploy deploy: kubectl -n kube-system set image ds/${BIN} ${BIN}=${IMAGE}:${VERSION} .PHONY: run-dev -run-dev: - @go run cmd/$(BIN)/main.go \ +run-dev: build + dist/oci-cloud-controller-manager \ --kubeconfig=${KUBECONFIG} \ --cloud-config=${CLOUD_PROVIDER_CFG} \ --cluster-cidr=10.244.0.0/16 \ diff --git a/cmd/oci-cloud-controller-manager/main.go b/cmd/oci-cloud-controller-manager/main.go index 4ed748b82..e3013de96 100644 --- a/cmd/oci-cloud-controller-manager/main.go +++ b/cmd/oci-cloud-controller-manager/main.go @@ -36,6 +36,7 @@ import ( ) var version string +var build string func init() { healthz.DefaultHealthz() @@ -50,7 +51,7 @@ func main() { logs.InitLogs() defer logs.FlushLogs() - glog.V(1).Infof("oci-cloud-controller-manager version: %s", version) + glog.V(1).Infof("oci-cloud-controller-manager version: %s (%s)", version, build) verflag.PrintAndExitIfRequested() diff --git a/manifests/oci-cloud-controller-manager-pod.yaml b/manifests/oci-cloud-controller-manager-pod.yaml deleted file mode 100644 index 0e56a9196..000000000 --- a/manifests/oci-cloud-controller-manager-pod.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: oci-cloud-controller-manager - namespace: kube-system -spec: - hostNetwork: true - tolerations: - - key: node.cloudprovider.kubernetes.io/uninitialized - value: "true" - effect: NoSchedule - containers: - - name: oci-cloud-controller-manager - image: wcr.io/oracle/oci-cloud-controller-manager:0.1.2 - args: - - --cloud-config=/etc/oci/cloud-provider.yaml - - --cloud-provider=oci - - --cluster-cidr=10.244.0.0/16 - - -v=2 - volumeMounts: - - name: cfg - mountPath: /etc/oci - readOnly: true - - name: kubernetes - mountPath: /etc/kubernetes - readOnly: true - volumes: - - name: cfg - secret: - secretName: oci-cloud-controller-manager - - name: kubernetes - hostPath: - path: /etc/kubernetes diff --git a/wercker.yml b/wercker.yml index 16266e95f..88201debf 100644 --- a/wercker.yml +++ b/wercker.yml @@ -5,12 +5,6 @@ dev: build: base-path: "/go/src/github.com/oracle/oci-cloud-controller-manager" steps: - - script: - name: write VERSION.txt - code: | - make version > ${WERCKER_OUTPUT_DIR}/VERSION.txt - cat ${WERCKER_OUTPUT_DIR}/VERSION.txt - - script: name: go fmt code: make gofmt @@ -25,18 +19,30 @@ build: name: go vet code: make govet + - script: + name: unit tests + code: make test + - script: name: build code: make build - script: - name: unit tests - code: make test + name: manifests + code: make manifests - script: - name: copy binary + name: write VERSION.txt + code: | + make version > dist/VERSION.txt + cat dist/VERSION.txt + +copy: + steps: + - script: + name: copy output code: | - cp dist/oci-cloud-controller-manager ${WERCKER_OUTPUT_DIR} + cp -a dist/* ${WERCKER_OUTPUT_DIR} push: box: @@ -59,3 +65,31 @@ push: tag: $VERSION entrypoint: /oci-cloud-controller-manager user: 65534 # nobody + +release: + box: + id: oraclelinux:7-slim + steps: + - script: + name: set ENV vars + code: | + export VERSION=$(cat VERSION.txt) + echo "${VERSION}" + + - github-create-release: + token: $GITHUB_TOKEN + tag: $VERSION + title: $VERSION + draft: false + + - github-upload-asset: + token: $GITHUB_TOKEN + file: ./oci-cloud-controller-manager.yaml + filename: oci-cloud-controller-manager.yaml + content-type: text/yaml + + - github-upload-asset: + token: $GITHUB_TOKEN + file: ./oci-cloud-controller-manager-rbac.yaml + filename: oci-cloud-controller-manager-rbac.yaml + content-type: text/yaml