Skip to content

This project aims to provide support for easy kubernetes deployments for (almost) every system out there.

License

Notifications You must be signed in to change notification settings

jlehtimaki/kubernetes-ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kubernetes-ci

This project aims to provide support for easy kubernetes deployments for (almost) every system out there. Kubernetes-CI uses Environment variables to do kubectl tasks automatically with almost every Cloud provider there is.

Supported types of Kubernetes

Architecture Type Kustomize Other notes
AMD64 EKS Yes --
ARMv8 EKS Yes --
AMD64 GKE Yes --
ARMv8 GKE Yes --
AMD64 Baremetal Yes --
ARMv8 Baremetal Yes --

Note: Currently Kustomize cannot be utilised with ARMv8 architecture due to Kustomize being built only for AMD64 Hopefully this will be fixed in the future!

Supported CI's

Here's a list with tested CI's and examples how to use kubernetes-ci with them.
This plugin should work with every CI that allows you to run custom containers with ENV variables.

Supported environment paramenters

Paramenter Description Required Default Value Allowed Values
AWS_ACCESS_KEY AWS Access key YES - -
AWS_SECRET_KEY AWS Access key secret YES - -
REGION Region / Zone NO eu-west-1 -
ASSUME_ROLE AWS Assume role NO - Role ARN
ACTIONS Kubectl commands to be run YES test apply/delete/diff
KUBECTL_VERSION Kubectl version to be installed NO v1.8.3 -
NAMESPACE Kubernetes namespace NO default -
CLUSTER_NAME EKS Cluster name NO EKS-Cluster -
MANIFEST_DIR Directory holding the manifests NO ./ -
KUSTOMIZE Use Kustomize NO false true / false
IMAGE_VERSION Version to deploy NO - -
IMAGE Image name of the deployment. Used with Kustomize NO - -
TYPE Type of Kubernetes deployment NO Baremetal EKS / Baremetal
TOKEN Kubernetes authentication token NO - -
CA Kubernetes CA certificate NO - -
K8S_SERVER Kubernetes server address NO - -
K8S_USER Kubernetes authentication username NO default -
ROLLOUT_CHECK Check rollout success NO true true / false
ROLLOUT_TIMEOUT Rollout check timeout NO 1m Xs, Xm, Xh ...

Build

Build the binary with the following commands:

export CGO_ENABLED=0
cd cmd/kubernetes-ci && go build

Docker

Kubernetes-ci project uses multiarch builds with dockers buildx tool.
Build the docker image with:

docker buildx build -f docker/Dockerfile --platform linux/amd64,linux/arm64/v8 -t quay.io/jlehtimaki/kubernetes-ci --push .

Usage

docker run --rm -it -e AWS_ACCESS_KEY=.... -e PLUGIN_ASSUME_ROLE=.... -e AWS_SECRET_KEY=.... 
-e PLUGIN_ACTIONS="apply" -e PLUGIN_MANIFEST_DIR="manifests/" lehtux/drone-kubernetes

About

This project aims to provide support for easy kubernetes deployments for (almost) every system out there.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published