kubernetes_ci

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

README

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

type Plugin struct {
	Config s.Config
	Kube   s.Kube
}

Plugin represents the plugin instance to be executed

func (Plugin) Exec

func (p Plugin) Exec() error

Exec executes the plugin

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL