• Stars
    star
    1,343
  • Rank 33,718 (Top 0.7 %)
  • Language
    Go
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helm Charts as Code

GitHub version CircleCI

helmsman-logo

Helmsman v3.0.0 works only with Helm versions >=3.0.0. For older Helm versions, use Helmsman v1.x

What is Helmsman?

Helmsman is a Helm Charts (k8s applications) as Code tool which allows you to automate the deployment/management of your Helm charts from version controlled code.

How does it work?

Helmsman uses a simple declarative TOML file to allow you to describe a desired state for your k8s applications as in the example toml file. Alternatively YAML declaration is also acceptable example yaml file.

The desired state file (DSF) follows the desired state specification.

Helmsman sees what you desire, validates that your desire makes sense (e.g. that the charts you desire are available in the repos you defined), compares it with the current state of Helm and figures out what to do to make your desire come true.

To plan without executing:

helmsman -f example.toml

To plan and execute the plan:

helmsman --apply -f example.toml

To show debugging details:

helmsman --debug --apply -f example.toml

To run a dry-run:

helmsman --debug --dry-run -f example.toml

To limit execution to specific application:

helmsman --debug --dry-run --target artifactory -f example.toml

Features

  • Built for CD: Helmsman can be used as a docker image or a binary.
  • Applications as code: describe your desired applications and manage them from a single version-controlled declarative file.
  • Suitable for Multitenant Clusters: deploy Tiller in different namespaces with service accounts and TLS (versions 1.x).
  • Easy to use: deep knowledge of Helm CLI and Kubectl is NOT mandatory to use Helmsman.
  • Plan, View, apply: you can run Helmsman to generate and view a plan with/without executing it.
  • Portable: Helmsman can be used to manage charts deployments on any k8s cluster.
  • Protect Namespaces/Releases: you can define certain namespaces/releases to be protected against accidental human mistakes.
  • Define the order of managing releases: you can define the priorities at which releases are managed by helmsman (useful for dependencies).
  • Parallelise: Releases with the same priority can be executed in parallel.
  • Idempotency: As long your desired state file does not change, you can execute Helmsman several times and get the same result.
  • Continue from failures: In the case of partial deployment due to a specific chart deployment failure, fix your helm chart and execute Helmsman again without needing to rollback the partial successes first.

Install

From binary

Please make sure the following are installed prior to using helmsman as a binary (the docker image contains all of them):

  • kubectl
  • helm (helm >=v2.10.0 for helmsman >= 1.6.0, helm >=v3.0.0 for helmsman >=v3.0.0)
  • helm-diff (helmsman >= 1.6.0)

If you use private helm repos, you will need either helm-gcs or helm-s3 plugin or you can use basic auth to authenticate to your repos. See the docs for details.

Check the releases page for the different versions.

# on Linux
curl -L https://github.com/Praqma/helmsman/releases/download/v3.11.0/helmsman_3.11.0_linux_amd64.tar.gz | tar zx
# on MacOS
curl -L https://github.com/Praqma/helmsman/releases/download/v3.11.0/helmsman_3.11.0_darwin_amd64.tar.gz | tar zx

mv helmsman /usr/local/bin/helmsman

As a docker image

Check the images on dockerhub

As a package

Helmsman has been packaged in Archlinux under helmsman-bin for the latest binary release, and helmsman-git for master.

You can also install Helmsman using Homebrew

brew install helmsman

As an asdf-vm plugin

asdf plugin-add helmsman
asdf install helmsman latest

Documentation

Documentation for Helmsman v1.x can be found at: docs v1.x

Usage

Helmsman can be used in three different settings:

Contributing

Pull requests, feedback/feature requests are welcome. Please check our contribution guide.

More Repositories

1

LearnKubernetes

Notes and resources collected together to help learn Kubernetes. This will eventually become a tutorial and later a blog post for praqma website (hopefully!)
Shell
510
star
2

Network-MultiTool

Multi-arch multitool for container network troubleshooting.
Dockerfile
270
star
3

JenkinsAsCodeReference

This repository is intended for the reference Jenkins configuration as code as well as JobDSL library
Groovy
142
star
4

git-metrics

Util script(s) to scrape data from git repositories to help teams improve.
Python
100
star
5

git-merge-driver

Example of how to configure a custom git merge driver
Shell
96
star
6

learn-traefik

This repository contains examples on using traefik reverse proxy.
85
star
7

praqma-jenkins-casc

Repository for our casc demo setup
Dockerfile
70
star
8

kubernetes-ebook

Kubernetes ebook by Kamran Azeem from Praqma
39
star
9

jira

Atlassian Software in Kubernetes (ASK) - Jira. This repository is no longer being maintained. Please see main README file.
Dockerfile
38
star
10

alpine-sshd

No frills, simple alpine based SSHD server
Dockerfile
29
star
11

AndroidAospInDocker

This is repository with a setup helps to build custom Android aosp images inside docker containers.
Shell
28
star
12

gradle-plugin-bootstrap

All you need to create a custom Gradle plugin
Groovy
26
star
13

smallstep-ca-demo

Demo showing how to provide a behind the firewall Certificate Authority for development environments.
Shell
25
star
14

windows-jenkins-slaves-with-packer

Provision and start Windows Jenkins build slaves using Packer and Terraform.
HCL
23
star
15

git-hooks

Ruby
21
star
16

confluence

Atlassian Software in Kubernetes (ASK) - Confluence. This repository is no longer being maintained. Please see main README file.
Dockerfile
20
star
17

Praqmatic-Automated-Changelog

A repository for PAC (Praqmatic Automated Changelog)
Ruby
20
star
18

DAME

DAME is the Dockerized Arcade Machine Emulator, allowing you to play old games on your laptop!
Shell
17
star
19

2git

A Groovy DSL to migrate from ClearCase to Git
Groovy
16
star
20

code-utils

Continuous Delivery utilities - small scripts and concepts used by in continuous delivery setups.
Groovy
14
star
21

bitbucket

Atlassian Software in Kubernetes (ASK) - Bitbucket. This repository is no longer being maintained. Please see main README file.
Dockerfile
14
star
22

memory-map-plugin

A repository for the memory-map-plugin
Java
13
star
23

staci

Containerizing the Atlassian tools stack. Jira, Confluence, Bamboo and a MySQL database.
Shell
12
star
24

ask

Helm and Helmsman charts for ASK. This repository is no longer being maintained. Please see main README file.
Shell
11
star
25

job-dsl-collection

Job DSL collection library
Groovy
9
star
26

pretested-integration-plugin

A generic pretest commit plugin for Jenkins CI
Java
7
star
27

artifactory-retention

Clone & Own solution for Artifactory Retention Policies
Groovy
7
star
28

atlassian-metrics

Groovy
6
star
29

traefik-bitbucker-docker-demo

A demo of a dockerized Bitbucket instance proxied with Traefik and automated SSL cert management.
Shell
6
star
30

deploy2docker

A tool-set to deploy docker-compose apps to a plain docker-compose server
Shell
6
star
31

questionnaire-engine

Containerized web application to create and analyze surveys
JavaScript
6
star
32

reveals

HTML
5
star
33

jobdsl-helpers

Collection of classes to simplify JobDSL snippets
Groovy
4
star
34

GodotDevOps

A summer project exploring contemporary software development and DevOps in a game dev setting
GDScript
4
star
35

jcasc-core

docker images to be used for jcasc powered jenkins
Dockerfile
4
star
36

praqmajutils

Praqma Java Utils
Java
4
star
37

native

Examples of Native Builds
4
star
38

rook-ask-demo

A demo for Code-Conf 2019 showing Rook and ASK
Shell
4
star
39

k8s-cloud-loadbalancer

The Load Balancer is now a separate repository instead of being a sub directory inside praqma/LearnKubernetes
Shell
4
star
40

jcasc-conf

Example wrapper for running Jenkins with prebuilt docker images with JCasC
Shell
3
star
41

sdelements-plugin

Jenkins plugin for SD Elements risk assessment tool by Security Compass
Java
3
star
42

VersionedBinaryArtifacts

A gradle plugin to allow a build be defined in a properties file
Groovy
3
star
43

tracey

Initial repo for the Tracey implementation
Groovy
3
star
44

git-artifact

Shell
3
star
45

vaultReference

This is a reference project on how to easily and fast get Vault up and run in a production ready setup.
Shell
3
star
46

gradle-docker-plugin

Groovy
3
star
47

jenkins4casc

Dockerfile repository for a Jenkins preconfigured with Jenkins Configuration as Code plugin
Dockerfile
3
star
48

AWSProvisionWithAnsible

Configure Docker devicemapper storage for AWS RHEL 7 instance using Ansible
Python
3
star
49

shared-pipeline

Repository with shared global pipeline libs. Usable within sandboxed objects
Groovy
2
star
50

drmemory-plugin

Java
2
star
51

logging-plugin

Java
2
star
52

PrometheusGrafana

This is a repository for the demo at the christmas workshop. People have asked for it as a repository. :)
Shell
2
star
53

packer-made-win-slave

Templates and tools to build Windows-based using packer
PowerShell
2
star
54

CodeCamp

Java
2
star
55

helmsman-demo

2
star
56

ngingo

A tiny web server that makes a point
Go
2
star
57

onboarding-as-code

Automating the onboarding process
Python
2
star
58

commit-message-parser

Collection of parsers to extract issues from commit messages
Java
2
star
59

AbstractVcsApi

Java
2
star
60

OctoCopDD

OctoCop (Traffic) Director for Docker
Shell
2
star
61

native-example-scons

C++
2
star
62

concourse-git-phlow

concourse wrapper for git-phlow
Go
2
star
63

metricviz

Code metrics visualization POC
Java
2
star
64

toggleR

A simple R package to read data from toggl
R
2
star
65

dcn-2018-introduction-to-k8s

Kamran's presentation / workshop on Day Of CloudNative 2018.
Shell
2
star
66

k8s-probes-demo

A small Docker image, and related files to demonstrate how kubernetes probes work
Shell
1
star
67

memory-map-examples

Repository to hold example projects for our memory map plugin
1
star
68

ansible4win-poc

Showcase for Ansible configuration and management of Windows nodes as build and test agents
Ruby
1
star
69

CI-with-HAProxy

Shell
1
star
70

MonKit-Plugin

Java
1
star
71

terraform-google-gke

Terraform modules for creating kubernetes clusters in Google cloud (GKE)
HCL
1
star
72

helm-echoserver

A simple Go echoserver built with Echo framework.
Go
1
star
73

drmemory-api

Java
1
star
74

simple-website

A very simple HTML website which is often needed during git/docker/kubernetes labs/demos
HTML
1
star
75

topdesk-linker

Java
1
star
76

native-example-bazel

C++
1
star
77

makeable-deployment-poc

POC for makeable
Shell
1
star
78

toggl-metric

R library to fetch toggl data and generic methods to handle it.
R
1
star
79

selenoid

This is a simple Selenoid example. Selenoid is basically selenium grid as containers. See https://aerokube.com/selenoid/.
Shell
1
star
80

jekyll

Docker built Jekyll image for building Praqma's website.
Shell
1
star
81

Matrix-Reloaded-Plugin

A Jenkins plugin to rebuild matrix builds
Java
1
star
82

First

Java
1
star
83

luci-gradle

Gradle plugin for Luci
Groovy
1
star
84

docker-gh-pages

Dockerfile for creating a docker container for building jekyll enabled Github pages.
Ruby
1
star
85

rqm-plugin

Java
1
star
86

tracey-rabbitmq-neo4j-bridge

Java
1
star
87

Docker-Birthday-3-Oslo

Repo to contain some helpful stuff related to Docker Birthday event - 2016
HTML
1
star
88

vcs-bridge-plugin

Java
1
star
89

dgoss-docker-image

Shell
1
star
90

MonKit

Java
1
star
91

ccanalyzer

Java
1
star
92

docker-linkchecker

Shell
1
star
93

praqma.github.io

The home of http://code.praqma.com. It's repo that will host documentation for all our development
CSS
1
star
94

file-pattern-scanner

Simple script that scans flat/plain text files for patterns predefined in rules
Groovy
1
star
95

yocto-build-container

Ubuntu-based Docker base image for building Yocto images
Dockerfile
1
star
96

makeable-deployment-poc-code

PHP code for makable repository
PHP
1
star
97

terraform-jenkins-artifactory

A terraform/packer setup to create a simple CI system
HCL
1
star
98

PlusBump

This project was previously known as by its temp name "Wincrementor". Content will be updated soon to match the new name.
Ruby
1
star
99

tracey-protocol-eiffel

Ericsson Eiffel protocol implementation for the Tracey framework
Java
1
star