Git Product home page Git Product logo

puppet-module-tarmak's Introduction

tarmak

Table of Contents

  1. Description
  2. Classes

Description

This module is part of Tarmak and should currently be considered alpha.

Travis

Classes

tarmak

Tarmak

This is the top-level class for the tarmak project. It's not including any component. It's just setting global variables for the cluster

Parameters

dest_dir
  • path to installation directory for components
  • Type: String
  • Default: '/opt'
bin_dir
  • path to the binary directory for components
  • Type: String
  • Default: '/opt/bin'
cluster_name
  • a DNS compatible name for the cluster
  • Type: String
  • Default: $tarmak::params::cluster_name
systemctl_path
  • absoulute path to systemctl binary
  • Type: String
  • Default: $tarmak::params::systemctl_path
role
  • which role to build
  • Type: Enum['etcd','master','worker', nil]
  • Default: nil
kubernetes_version
  • Kubernetes version to install
  • Type: String
  • Default: $tarmak::params::kubernetes_version
kubernetes_user
  • Type: String
  • Default: 'kubernetes'
kubernetes_group
  • Type: String
  • Default: 'kubernetes'
kubernetes_uid
  • Type: Integer
  • Default: 837
kubernetes_gid
  • Type: Integer
  • Default: 837
kubernetes_ca_name
  • Type: String
  • Default: 'k8s'
kubernetes_ssl_dir
  • Type: String
  • Default: '/etc/kubernetes/ssl'
kubernetes_config_dir
  • Type: String
  • Default: '/etc/kubernetes'
kubernetes_api_insecure_port
  • Type: Integer[1,65535]
  • Default: 6443
kubernetes_api_secure_port
  • Type: Integer[1,65535]
  • Default: 8080
kubernetes_pod_network
  • Type: String
  • Default: '10.234.0.0/16'
kubernetes_api_url
  • Type: String
  • Default: nil
kubernetes_api_prefix
  • Type: String
  • Default: 'api'
kubernetes_authorization_mode
  • Type: Array[Enum['AlwaysAllow', 'ABAC', 'RBAC']]
  • Default: []
dns_root
  • Type: String
  • Default: $tarmak::params::dns_root
hostname
  • Type: String
  • Default: $tarmak::params::hostname
etcd_cluster
  • Type: Array[String]
  • Default: []
etcd_start_index
  • Type: Integer[0,1]
  • Default: 1
etcd_user
  • Type: String
  • Default: 'etcd'
etcd_group
  • Type: String
  • Default: 'etcd'
etcd_uid
  • Type: Integer
  • Default: 873
etcd_gid
  • Type: Integer
  • Default: 873
etcd_home
  • Type: String
  • Default: '/etc/etcd'
etcd_ssl_dir
  • Type: String
  • Default: '/etc/etcd/ssl'
etcd_instances
  • Type: Integer
  • Default: 3
etcd_advertise_client_network
  • Type: String
  • Default: $tarmak::params::etcd_advertise_client_network
etcd_overlay_client_port
  • Type: Integer[1,65535]
  • Default: 2359
etcd_overlay_peer_port
  • Type: Integer[1,65535]
  • Default: 2360
etcd_overlay_ca_name
  • Type: String
  • Default: 'etcd-overlay'
etcd_overlay_version
  • Type: String
  • Default: '3.2.17'
etcd_k8s_main_client_port
  • Type: Integer[1,65535]
  • Default: 2379
etcd_k8s_main_peer_port
  • Type: Integer[1,65535]
  • Default: 2380
etcd_k8s_main_ca_name
  • Type: String
  • Default: 'etcd-k8s'
etcd_k8s_main_version
  • Type: String
  • Default: '3.2.17'
etcd_k8s_events_client_port
  • Type: Integer[1,65535]
  • Default: 2369
etcd_k8s_events_peer_port
  • Type: Integer[1,65535]
  • Default: 2370
etcd_k8s_events_ca_name
  • Type: String
  • Default: 'etcd-k8s'
etcd_k8s_events_version
  • Type: String
  • Default: '3.2.17'
cloud_provider
  • Type: Enum['aws', '']
  • Default: ''
helper_path
  • Type: String
  • Default: $tarmak::params::helper_path
systemd_dir
  • Type: String
  • Default: '/etc/systemd/system'

Examples

Declaring the class
include ::tarmak
Overriding the kubernetes version
class{'tarmak':
  kubernetes_version => '1.5.4'
}

tarmak::etcd

tarmak::master

Parameters

disable_kubelet
  • Type: Any
  • Default: true
disable_proxy
  • Type: Any
  • Default: true

tarmak::overlay_calico

tarmak::params

Defines parameters for other classes to reuse

tarmak::single_node

Parameters

dns_root
  • Type: String
  • Default: $tarmak::params::dns_root
cluster_name
  • Type: String
  • Default: $tarmak::params::cluster_name
etcd_advertise_client_network
  • Type: String
  • Default: $tarmak::params::etcd_advertise_client_network
kubernetes_api_url
  • Type: String
  • Default: nil
kubernetes_version
  • Type: String
  • Default: $tarmak::params::kubernetes_version
kubernetes_authorization_mode
  • Type: Array[Enum['AlwaysAllow', 'ABAC', 'RBAC']]
  • Default: []

tarmak::worker

puppet-module-tarmak's People

Contributors

jetstack-bot avatar joshvanl avatar kragniz avatar simonswine avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-module-tarmak's Issues

Puppernetes module feature set

This ticket is for discussion of what we want out of the top level puppernetes module as it's assembled, and anything that's missing from the submodules

  • OS detection to set PATH / preferred binary paths for helpers and scripts (can we also discuss adding file extensions to scripts?)
  • More standard Linux paths for anything we install / configure - see https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard (well, for everything but CoreOS)
  • More sophisticated orchestration - wait for puppet master, wait for etcd, wait for apiserver / ELB
  • True HA and anything anywhere - each of the k8s components should be able to run on a machine without any others
  • Override packages and download urls - anything we download from the Internet should be changeable as a param
  • Override versions of everything
  • Enable / disable k8s addons - dashboard, dns, etc.
  • Enable / disable TLS - for etcd / k8s / globally
  • Enable / disable vault

Open sourcing of modules

Tracking ticket for issues related to open sourcing the Puppernetes modules, so we can understand the resource and effort required and track this to completion.

CTM are very keen to see the modules in the open source and raised this again with us recently.

Things to do:

  • Puppet
    • Versioning automation
    • Generate READMEs for all modules
    • 1.6 RBAC support
      • module-kubernetes
      • module-kubernetes_addons
      • module-kube-dns
    • Use aws_ebs instead of etcd_mount
    • Prometheus configurable using separated defined types
  • Terraform
    • ignore_changes on tools => For volume tags instance
    • Document destroy of stack
    • Fix vault setup

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.