Puppet Class: kubernetes_addons::cluster_autoscaler

Inherits:
::kubernetes_addons::params
Defined in:
manifests/cluster_autoscaler.pp

Overview

Parameters:

  • image (String) (defaults to: 'gcr.io/google_containers/cluster-autoscaler')
  • version (String) (defaults to: '')
  • limit_cpu (String) (defaults to: '200m')
  • limit_mem (String) (defaults to: '500Mi')
  • request_cpu (String) (defaults to: '100m')
  • request_mem (String) (defaults to: '300Mi')
  • instance_pool_names (Array[String]) (defaults to: [])
  • min_instances (Array[Integer]) (defaults to: [])
  • max_instances (Array[Integer]) (defaults to: [])
  • enable_overprovisioning (Optional[Boolean]) (defaults to: undef)
  • proportional_image (Optional[String]) (defaults to: undef)
  • proportional_version (Optional[String]) (defaults to: undef)
  • reserved_millicores_per_replica (Integer) (defaults to: 0)
  • reserved_megabytes_per_replica (Integer) (defaults to: 0)
  • cores_per_replica (Integer) (defaults to: 0)
  • nodes_per_replica (Integer) (defaults to: 0)
  • replica_count (Integer) (defaults to: 0)
  • ca_mounts (Any) (defaults to: $::kubernetes_addons::params::ca_mounts)
  • cloud_provider (Any) (defaults to: $::kubernetes_addons::params::cloud_provider)
  • aws_region (Any) (defaults to: $::kubernetes_addons::params::aws_region)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'manifests/cluster_autoscaler.pp', line 1

class kubernetes_addons::cluster_autoscaler(
  String $image='gcr.io/google_containers/cluster-autoscaler',
  String $version='',
  String $limit_cpu='200m',
  String $limit_mem='500Mi',
  String $request_cpu='100m',
  String $request_mem='300Mi',
  Array[String] $instance_pool_names=[],
  Array[Integer] $min_instances=[],
  Array[Integer] $max_instances=[],
  Optional[Boolean] $enable_overprovisioning=undef,
  Optional[String] $proportional_image=undef,
  Optional[String] $proportional_version=undef,
  Integer $reserved_millicores_per_replica = 0,
  Integer $reserved_megabytes_per_replica = 0,
  Integer $cores_per_replica = 0,
  Integer $nodes_per_replica = 0,
  Integer $replica_count = 0,
  $ca_mounts=$::kubernetes_addons::params::ca_mounts,
  $cloud_provider=$::kubernetes_addons::params::cloud_provider,
  $aws_region=$::kubernetes_addons::params::aws_region,
) inherits ::kubernetes_addons::params {
  require ::kubernetes

  $authorization_mode = $::kubernetes::_authorization_mode
  if member($authorization_mode, 'RBAC'){
    $rbac_enabled = true
  } else {
    $rbac_enabled = false
  }

  if defined('$kubernetes::cluster_name') {
    $asg_name_prefix="${::kubernetes::cluster_name}-kubernetes-"
  } else {
    fail('cluster name must be defined')
  }

  if $version == '' {
    if versioncmp($::kubernetes::version, '1.11.0') >= 0 {
      $_version = '1.3.0'
    } elsif versioncmp($::kubernetes::version, '1.10.0') >= 0 {
      $_version = '1.2.2'
    } elsif versioncmp($::kubernetes::version, '1.9.0') >= 0 {
      $_version = '1.1.2'
    } elsif versioncmp($::kubernetes::version, '1.8.0') >= 0 {
      $_version = '1.0.4'
    } elsif versioncmp($::kubernetes::version, '1.7.0') >= 0 {
      $_version = '0.6.4'
    } elsif versioncmp($::kubernetes::version, '1.6.0') >= 0 {
      $_version = '0.5.4'
    } elsif versioncmp($::kubernetes::version, '1.5.0') >= 0 {
      $_version = '0.4.0'
    } else {
      $_version = '0.3.0'
    }
  } else {
    $_version = $version
  }

  if versioncmp($_version, '0.6.0') >= 0 {
    $balance_similar_node_groups = true
  }

  if versioncmp($::kubernetes::version, '1.6.0') >= 0 {
    $version_before_1_6 = false
  } else {
    $version_before_1_6 = true
  }


  kubernetes::apply{'cluster-autoscaler':
    manifests => [
      template('kubernetes_addons/cluster-autoscaler-deployment.yaml.erb'),
      template('kubernetes_addons/cluster-autoscaler-rbac.yaml.erb'),
    ],
  }
}