Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 111 additions & 33 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,55 @@
version: 2
version: 2.1
orbs:
docker: circleci/docker@1.0.1
kube-orb: circleci/kubernetes@0.11.0
go: circleci/go@1.1.1

commands:
minikube-install:
description: Installs the minikube executable onto the system.
parameters:
version:
default: v0.30.0
type: string
steps:
- run:
command: >-
curl -Lo minikube
https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 &&
chmod +x minikube && sudo
mv minikube /usr/local/bin/
name: Install Minikube Executable

install-conntrack:
description: Starts the minikube service.
steps:
- run:
command: >-
sudo apt-get update -y && sudo apt-get install -y conntrack
name: Install conntrack

minikube-start:
description: Starts the minikube service.
steps:
- install-conntrack
- run:
command: >-
sudo -E minikube start --vm-driver=none --cpus 2 --memory 2048
&> $HOME/minikube.log 2>&1
< /dev/null
name: Start Minikube Cluster

kind-start:
description: install kind cluster
steps:
- run:
name: get kind
command: env GO111MODULE=off go get sigs.k8s.io/kind
- run:
name: Create kind cluster
command: kind create cluster --wait 30m #bla


yaml-templates:
branch_filters: &branch_filters
filters:
Expand Down Expand Up @@ -40,43 +91,48 @@ yaml-templates:
paths:
- dist
workflows:
version: 2
version: 2.1
build-workflow:
jobs:
- build-linux-386:
<<: *release_filters
- build-linux-amd64:
<<: *branch_filters
#- build-linux-amd64:
#<<: *branch_filters
- build-darwin-386:
<<: *release_filters
- build-darwin-amd64:
<<: *branch_filters
#- build-darwin-amd64:
#<<: *branch_filters
- build-windows-386:
<<: *release_filters
- build-windows-amd64:
<<: *branch_filters
- build-linux-arm:
<<: *release_filters
- build-linux-arm64:
<<: *release_filters
#- build-linux-arm:
#<<: *release_filters
#- build-linux-arm64:
#<<: *release_filters
- test:
<<: *branch_filters
- smoke_test:
<<: *branch_filters
#- http_example_test:
#<<: *branch_filters

- publish-github-release:
<<: *release_filters
requires:
- build-linux-386
- build-linux-amd64
- build-darwin-386
- build-darwin-amd64
- build-windows-386
- build-windows-amd64
- build-linux-arm
- build-linux-arm64
- test
#- build-linux-386
#- build-linux-amd64
#- build-darwin-386
#- build-darwin-amd64
#- build-windows-386
#- build-windows-amd64
#- build-linux-arm
#- build-linux-arm64
#- test
- smoke_test
#
#
#- http_example_test

jobs:
build-linux-amd64: &go_build
Expand Down Expand Up @@ -170,33 +226,55 @@ jobs:
source $BASH_ENV
- checkout
- run:
name: install go 1.13
command: |
wget https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
sudo tar -xvf go1.13.3.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo mv go /usr/local
name: cleanup previous go installation
command: sudo rm -rf /usr/local/go
- go/install
- kind-start
- kube-orb/install-kubectl
- run:
name: print go version
command: go version
- run:
name: get kind
command: env GO111MODULE=off go get sigs.k8s.io/kind
- run:
name: compile
command: make
- run:
name: Create kind cluster
command: kind create cluster --wait 30m #bla
- run:
name: Install kubectl
command: curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.17.4/bin/linux/amd64/kubectl && mkdir -p ~/bin && mv kubectl ~/bin/ && chmod +x ~/bin/kubectl
- run:
name: print cluster info
command: kubectl cluster-info
- run:
name: Run Tests
command: ./skupper_smoke #set kubeconfig as parameter if needed

http_example_test:
#executor: minikube/default
machine: #true
image: ubuntu-1604:201903-01
#image: circleci/classic:201808-01
environment:
K8S_VERSION: v1.15.3
KUBECONFIG: /home/circleci/.kube/config
MINIKUBE_VERSION: v1.3.1
MINIKUBE_WANTUPDATENOTIFICATION: false
MINIKUBE_WANTREPORTERRORPROMPT: false
MINIKUBE_HOME: /home/circleci
CHANGE_MINIKUBE_NONE_USER: true
steps:
- run:
name: export
command: |
echo 'export KUBECONFIG=/home/circleci/.kube/config' >> $BASH_ENV #not needed?
echo 'CHANGE_MINIKUBE_NONE_USER=true' >> $BASH_ENV #not needed?
source $BASH_ENV
- checkout
- docker/install-docker
- kube-orb/install-kubectl
- minikube-install
- minikube-start

#clone the example
- run:
name: cluster info
command: kubectl cluster-info

publish-github-release:
docker:
- image: cibuilds/github:0.10
Expand Down
2 changes: 2 additions & 0 deletions cmd/skupper/skupper.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apimachinery/pkg/runtime/serializer/json"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/discovery"
Expand Down Expand Up @@ -2695,6 +2696,7 @@ func initKubeConfig(options *KubeOptions) *KubeDetails {

restconfig.ContentConfig.GroupVersion = &schema.GroupVersion{Version:"v1"}
restconfig.APIPath = "/api"
restconfig.NegotiatedSerializer = serializer.WithoutConversionCodecFactory{CodecFactory: scheme.Codecs}
details.RestConfig = restconfig
details.Standard, err = kubernetes.NewForConfig(restconfig)
if err != nil {
Expand Down