diff --git a/.github/workflows/goimports.yml b/.github/workflows/goimports.yml new file mode 100644 index 000000000..83023970b --- /dev/null +++ b/.github/workflows/goimports.yml @@ -0,0 +1,16 @@ +name: Check imports +on: [push] +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v1 + with: + go-version: '1.12' + - uses: actions/checkout@master + - name: Check imports + shell: bash + run: | + export PATH=$(go env GOPATH)/bin:$PATH + go get golang.org/x/tools/cmd/goimports + diff -u <(echo -n) <(goimports -d .) diff --git a/.github/workflows/publish_on_master.yml b/.github/workflows/publish_on_master.yml new file mode 100644 index 000000000..8c582f9e6 --- /dev/null +++ b/.github/workflows/publish_on_master.yml @@ -0,0 +1,22 @@ +name: Push latest version +on: + push: + branches: + - master +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v1 + with: + go-version: '1.12' + - uses: actions/checkout@master + - name: Publish latest tag to registry + env: + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + docker version + docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" + docker build -t hetznercloud/hcloud-cloud-controller-manager:latest . + docker push hetznercloud/hcloud-cloud-controller-manager:latest \ No newline at end of file diff --git a/.github/workflows/publish_on_tag.yml b/.github/workflows/publish_on_tag.yml new file mode 100644 index 000000000..166f174d2 --- /dev/null +++ b/.github/workflows/publish_on_tag.yml @@ -0,0 +1,24 @@ +name: Push latest version +on: + push: + tags: + - 'v*.*.*' +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v1 + with: + go-version: '1.12' + - name: Set env + run: echo ::set-env name=RELEASE_VERSION::$(echo ${GITHUB_REF:10}) + - uses: actions/checkout@master + - name: Publish tag to registry + env: + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + docker version + docker login -u "$DOCKER_USER" -p "$DOCKER_PASSWORD" + docker build -t hetznercloud/hcloud-cloud-controller-manager:$RELEASE_VERSION . + docker push hetznercloud/hcloud-cloud-controller-manager:$RELEASE_VERSION diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..dade636ab --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,17 @@ +name: Run tests +on: [push] +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/setup-go@v1 + with: + go-version: '1.12' + - uses: actions/checkout@master + - name: Run tests + run: | + docker pull lkdevelopment/hetzner-cloud-api-mock + docker run -d -p 127.0.0.1:4000:8080 lkdevelopment/hetzner-cloud-api-mock + docker ps -a + go vet ./... + go test ./... diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fb4d9391b..000000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -dist: xenial -language: go -go: - - 1.12 -env: - - GO111MODULE=on -before_script: - - go get golang.org/x/lint/golint - - docker pull lkdevelopment/hetzner-cloud-api-mock - - docker run -d -p 127.0.0.1:4000:8080 lkdevelopment/hetzner-cloud-api-mock - - docker ps -a - - sleep 10 -script: - - make test - - make diff --git a/Makefile b/Makefile deleted file mode 100644 index 9eaf4846c..000000000 --- a/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -export CGO_ENABLED:=0 - -VERSION=$(shell ./scripts/git-version.bash) -DOCKER_REPO=hetznercloud/hcloud-cloud-controller-manager - -all: build - -build: clean bin/hcloud-cloud-controller-manager - -bin/%: - @go build -o bin/$* . - -container: build - docker build -t $(DOCKER_REPO):$(VERSION) . - -release-container: - docker push $(DOCKER_REPO):$(VERSION) - -test: - @./scripts/test.bash - -clean: - @rm -rf bin/* - -.PHONY: all build clean test container release-container diff --git a/README.md b/README.md index 77e8161a1..2b9f63200 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Kubernetes Cloud Controller Manager for Hetzner Cloud -[![Build Status](https://travis-ci.org/hetznercloud/hcloud-cloud-controller-manager.svg?branch=master)](https://travis-ci.org/hetznercloud/hcloud-cloud-controller-manager) +[![GitHub Actions status](https://github.com/hetznercloud/hcloud-cloud-controller-manager/workflows/Run%20tests/badge.svg)](https://github.com/hetznercloud/hcloud-cloud-controller-manager/actions) The Hetzner Cloud cloud controller manager integrates your Kubernets cluster with the Hetzner Cloud API. Read more about kubernetes cloud controller managers in the [kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/). diff --git a/deploy/development-networks.yaml b/deploy/development-networks.yaml index 39d305dcc..a15be18db 100644 --- a/deploy/development-networks.yaml +++ b/deploy/development-networks.yaml @@ -54,7 +54,7 @@ spec: effect: "NoSchedule" hostNetwork: true containers: - - image: hetznercloud/hcloud-cloud-controller-manager:dev + - image: hetznercloud/hcloud-cloud-controller-manager:latest name: hcloud-cloud-controller-manager command: - "/bin/hcloud-cloud-controller-manager" diff --git a/deploy/development.yaml b/deploy/development.yaml index 95ac64ec4..abc958f11 100644 --- a/deploy/development.yaml +++ b/deploy/development.yaml @@ -54,7 +54,7 @@ spec: - key: "node.kubernetes.io/not-ready" effect: "NoSchedule" containers: - - image: hetznercloud/hcloud-cloud-controller-manager:dev + - image: hetznercloud/hcloud-cloud-controller-manager:latest name: hcloud-cloud-controller-manager command: - "/bin/hcloud-cloud-controller-manager" diff --git a/hcloud/instances.go b/hcloud/instances.go index 423bba58c..ab90e6093 100644 --- a/hcloud/instances.go +++ b/hcloud/instances.go @@ -18,12 +18,13 @@ package hcloud import ( "context" - "k8s.io/kubernetes/pkg/cloudprovider" "os" "strconv" + "k8s.io/kubernetes/pkg/cloudprovider" + "github.com/hetznercloud/hcloud-go/hcloud" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" ) diff --git a/hcloud/instances_test.go b/hcloud/instances_test.go index 50f7f304d..484592c88 100644 --- a/hcloud/instances_test.go +++ b/hcloud/instances_test.go @@ -24,7 +24,7 @@ import ( "github.com/hetznercloud/hcloud-go/hcloud" "github.com/hetznercloud/hcloud-go/hcloud/schema" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" ) func TestNodeAddressesByProviderID(t *testing.T) { diff --git a/hcloud/routes.go b/hcloud/routes.go index a25b8cfc4..c6ea08e3e 100644 --- a/hcloud/routes.go +++ b/hcloud/routes.go @@ -3,11 +3,12 @@ package hcloud import ( "context" "fmt" + "net" + "time" + "github.com/hetznercloud/hcloud-go/hcloud" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider" - "net" - "time" ) type routes struct { diff --git a/hcloud/routes_test.go b/hcloud/routes_test.go index fd11b18d8..cbcba4edb 100644 --- a/hcloud/routes_test.go +++ b/hcloud/routes_test.go @@ -3,11 +3,12 @@ package hcloud import ( "context" "encoding/json" + "net/http" + "testing" + "github.com/hetznercloud/hcloud-go/hcloud" "github.com/hetznercloud/hcloud-go/hcloud/schema" "k8s.io/kubernetes/pkg/cloudprovider" - "net/http" - "testing" ) func TestRoutes_CreateRoute(t *testing.T) { diff --git a/hcloud/zones.go b/hcloud/zones.go index 2d0576d50..baf7ea789 100644 --- a/hcloud/zones.go +++ b/hcloud/zones.go @@ -18,6 +18,7 @@ package hcloud import ( "context" + "github.com/hetznercloud/hcloud-go/hcloud" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider"