/jenkins-pipelines

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Jenkins pipelines on Telekube

This document describes how to use Jenkins pipelines with Telekube.

Glossary

  • Jenkins - open source automation server, see https://jenkins.io/.
  • Telekube OpsCenter - application catalog, which keeps Kubernetes package for deployment on any infrastructure. Part of telekube.
  • tube - Kubernetes charts repository application.
  • tsh - used to login into remote SSH nodes, part of teleport.
  • helm - client for managing Kubernetes charts and repositories, part of helm.
  • tiller - server for executing deployments throught Kubernetes API, part of helm.
  • Kubernetes charts - packages of pre-configured Kubernetes resources.

General scheme

general

To achieve the same result, you must complete several actions.

On infrastructure side:

  • Get Telekube OpsCenter up and running. TODO where install tube?
  • Deploy tube on opscenter node, add Jenkins Chart to it.
  • Create cluster using k8s application, you can use on-premisise or AWS infrastructure. It will spin up kubernetes and tiller inside it.

Details are not presented, because these parts are closed-source.

On user-side:

Use helm with cluster

Initialize helm on local machine:

helm init --client-only

Then add tube repository to local helm repositories:

TODO: add info how to get proper certificates

helm repo add --ca-file="$HELM_CERTPATH/ca-tube.gravitational.io.pem" \
    --cert-file="$HELM_CERTPATH/client-tube.gravitational.io.pem \
    --key-file="$HELM_CERTPATH/client-key-tube.gravitational.io.pem" \
    tube.gravitational.io https://tube.gravitational.io:443/charts
helm repo update

Install jenkins using tube repository

TODO whats the url of tube?

helm install --debug -f chart-values/jenkins-values.yaml tube/jenkins

After installation some NOTES will be shown -- read it carefully.

Using Jenkins

TODO add info how jenkins works with pipelines and how to build and deploy app