diff --git a/docs/generated/reference/output/api-docs.html b/docs/generated/reference/output/api-docs.html index 43e49a7576..741364d6a7 100644 --- a/docs/generated/reference/output/api-docs.html +++ b/docs/generated/reference/output/api-docs.html @@ -11,7 +11,7 @@ - +

Tarmak

@@ -828,6 +828,18 @@

ClusterKubernetes v1alpha1

+grafana
ClusterKubernetesGrafana + + + +heapster
ClusterKubernetesHeapster + + + +influxDB
ClusterKubernetesInfluxDB + + + kubelet
ClusterKubernetesKubelet @@ -1335,6 +1347,120 @@

ClusterKubernetesDashboard v1alpha1 +

ClusterKubernetesGrafana v1alpha1

+ + + + + + + + + + + + + + + +
GroupVersionKind
clusterv1alpha1ClusterKubernetesGrafana
+ + + + + + + + + + + + + + + +
FieldDescription
enabled
boolean
+

ClusterKubernetesHeapster v1alpha1

+ + + + + + + + + + + + + + + +
GroupVersionKind
clusterv1alpha1ClusterKubernetesHeapster
+ + + + + + + + + + + + + + + +
FieldDescription
enabled
boolean
+

ClusterKubernetesInfluxDB v1alpha1

+ + + + + + + + + + + + + + + +
GroupVersionKind
clusterv1alpha1ClusterKubernetesInfluxDB
+ + + + + + + + + + + + + + + +
FieldDescription
enabled
boolean

ClusterKubernetesKubelet v1alpha1

diff --git a/docs/generated/reference/output/navData.js b/docs/generated/reference/output/navData.js index b90f59a80f..c0cac41c2f 100644 --- a/docs/generated/reference/output/navData.js +++ b/docs/generated/reference/output/navData.js @@ -1 +1 @@ -(function(){navData = {"toc":[{"section":"-strong-field-definitions-strong-","subsections":[{"section":"volume-v1alpha1"},{"section":"values-v1alpha1"},{"section":"taint-v1alpha1"},{"section":"subnet-v1alpha1"},{"section":"ssh-v1alpha1"},{"section":"providergcp-v1alpha1"},{"section":"providerazure-v1alpha1"},{"section":"provideramazon-v1alpha1"},{"section":"provider-v1alpha1"},{"section":"network-v1alpha1"},{"section":"loggingsinkelasticsearch-v1alpha1"},{"section":"loggingsink-v1alpha1"},{"section":"label-v1alpha1"},{"section":"kubernetesapi-v1alpha1"},{"section":"internetgw-v1alpha1"},{"section":"instancestatusmanifest-v1alpha1"},{"section":"instancespecmanifest-v1alpha1"},{"section":"instancepoolkubernetes-v1alpha1"},{"section":"instancepoolamazon-v1alpha1"},{"section":"instancepool-v1alpha1"},{"section":"ingressrule-v1alpha1"},{"section":"httpbasicauth-v1alpha1"},{"section":"firewall-v1alpha1"},{"section":"environmentflags-v1alpha1"},{"section":"environmentdestroyflags-v1alpha1"},{"section":"environment-v1alpha1"},{"section":"egressrule-v1alpha1"},{"section":"clustervaulthelper-v1alpha1"},{"section":"clusterpodsecuritypolicy-v1alpha1"},{"section":"clusterplanflags-v1alpha1"},{"section":"clusterlogsflags-v1alpha1"},{"section":"clusterkubernetestiller-v1alpha1"},{"section":"clusterkubernetesscheduler-v1alpha1"},{"section":"clusterkubernetesproxy-v1alpha1"},{"section":"clusterkubernetesprometheus-v1alpha1"},{"section":"clusterkuberneteskubelet-v1alpha1"},{"section":"clusterkubernetesdashboard-v1alpha1"},{"section":"clusterkubernetescontrollermanager-v1alpha1"},{"section":"clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1"},{"section":"clusterkubernetesclusterautoscaler-v1alpha1"},{"section":"clusterkubernetescalico-v1alpha1"},{"section":"clusterkubernetesapiserveroidc-v1alpha1"},{"section":"clusterkubernetesapiserveramazonaccesslogs-v1alpha1"},{"section":"clusterkubernetesapiserveramazon-v1alpha1"},{"section":"clusterkubernetesapiserver-v1alpha1"},{"section":"clusterkubernetes-v1alpha1"},{"section":"clusterkubeconfigflags-v1alpha1"},{"section":"clusterimagesflags-v1alpha1"},{"section":"clusterimagesbuildflags-v1alpha1"},{"section":"clusterflags-v1alpha1"},{"section":"clusterdestroyflags-v1alpha1"},{"section":"clusterapplyflags-v1alpha1"},{"section":"clusteramazon-v1alpha1"},{"section":"amazonesproxy-v1alpha1"}]},{"section":"-strong-old-api-versions-strong-","subsections":[]},{"section":"instance-v1alpha1","subsections":[]},{"section":"cluster-v1alpha1","subsections":[]},{"section":"flags-v1alpha1","subsections":[]},{"section":"image-v1alpha1","subsections":[]},{"section":"config-v1alpha1","subsections":[]},{"section":"-strong-tarmak-strong-","subsections":[]}],"flatToc":["volume-v1alpha1","values-v1alpha1","taint-v1alpha1","subnet-v1alpha1","ssh-v1alpha1","providergcp-v1alpha1","providerazure-v1alpha1","provideramazon-v1alpha1","provider-v1alpha1","network-v1alpha1","loggingsinkelasticsearch-v1alpha1","loggingsink-v1alpha1","label-v1alpha1","kubernetesapi-v1alpha1","internetgw-v1alpha1","instancestatusmanifest-v1alpha1","instancespecmanifest-v1alpha1","instancepoolkubernetes-v1alpha1","instancepoolamazon-v1alpha1","instancepool-v1alpha1","ingressrule-v1alpha1","httpbasicauth-v1alpha1","firewall-v1alpha1","environmentflags-v1alpha1","environmentdestroyflags-v1alpha1","environment-v1alpha1","egressrule-v1alpha1","clustervaulthelper-v1alpha1","clusterpodsecuritypolicy-v1alpha1","clusterplanflags-v1alpha1","clusterlogsflags-v1alpha1","clusterkubernetestiller-v1alpha1","clusterkubernetesscheduler-v1alpha1","clusterkubernetesproxy-v1alpha1","clusterkubernetesprometheus-v1alpha1","clusterkuberneteskubelet-v1alpha1","clusterkubernetesdashboard-v1alpha1","clusterkubernetescontrollermanager-v1alpha1","clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1","clusterkubernetesclusterautoscaler-v1alpha1","clusterkubernetescalico-v1alpha1","clusterkubernetesapiserveroidc-v1alpha1","clusterkubernetesapiserveramazonaccesslogs-v1alpha1","clusterkubernetesapiserveramazon-v1alpha1","clusterkubernetesapiserver-v1alpha1","clusterkubernetes-v1alpha1","clusterkubeconfigflags-v1alpha1","clusterimagesflags-v1alpha1","clusterimagesbuildflags-v1alpha1","clusterflags-v1alpha1","clusterdestroyflags-v1alpha1","clusterapplyflags-v1alpha1","clusteramazon-v1alpha1","amazonesproxy-v1alpha1","-strong-field-definitions-strong-","-strong-old-api-versions-strong-","instance-v1alpha1","cluster-v1alpha1","flags-v1alpha1","image-v1alpha1","config-v1alpha1","-strong-tarmak-strong-"]};})(); \ No newline at end of file +(function(){navData = {"toc":[{"section":"-strong-field-definitions-strong-","subsections":[{"section":"volume-v1alpha1"},{"section":"values-v1alpha1"},{"section":"taint-v1alpha1"},{"section":"subnet-v1alpha1"},{"section":"ssh-v1alpha1"},{"section":"providergcp-v1alpha1"},{"section":"providerazure-v1alpha1"},{"section":"provideramazon-v1alpha1"},{"section":"provider-v1alpha1"},{"section":"network-v1alpha1"},{"section":"loggingsinkelasticsearch-v1alpha1"},{"section":"loggingsink-v1alpha1"},{"section":"label-v1alpha1"},{"section":"kubernetesapi-v1alpha1"},{"section":"internetgw-v1alpha1"},{"section":"instancestatusmanifest-v1alpha1"},{"section":"instancespecmanifest-v1alpha1"},{"section":"instancepoolkubernetes-v1alpha1"},{"section":"instancepoolamazon-v1alpha1"},{"section":"instancepool-v1alpha1"},{"section":"ingressrule-v1alpha1"},{"section":"httpbasicauth-v1alpha1"},{"section":"firewall-v1alpha1"},{"section":"environmentflags-v1alpha1"},{"section":"environmentdestroyflags-v1alpha1"},{"section":"environment-v1alpha1"},{"section":"egressrule-v1alpha1"},{"section":"clustervaulthelper-v1alpha1"},{"section":"clusterpodsecuritypolicy-v1alpha1"},{"section":"clusterplanflags-v1alpha1"},{"section":"clusterlogsflags-v1alpha1"},{"section":"clusterkubernetestiller-v1alpha1"},{"section":"clusterkubernetesscheduler-v1alpha1"},{"section":"clusterkubernetesproxy-v1alpha1"},{"section":"clusterkubernetesprometheus-v1alpha1"},{"section":"clusterkuberneteskubelet-v1alpha1"},{"section":"clusterkubernetesinfluxdb-v1alpha1"},{"section":"clusterkubernetesheapster-v1alpha1"},{"section":"clusterkubernetesgrafana-v1alpha1"},{"section":"clusterkubernetesdashboard-v1alpha1"},{"section":"clusterkubernetescontrollermanager-v1alpha1"},{"section":"clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1"},{"section":"clusterkubernetesclusterautoscaler-v1alpha1"},{"section":"clusterkubernetescalico-v1alpha1"},{"section":"clusterkubernetesapiserveroidc-v1alpha1"},{"section":"clusterkubernetesapiserveramazonaccesslogs-v1alpha1"},{"section":"clusterkubernetesapiserveramazon-v1alpha1"},{"section":"clusterkubernetesapiserver-v1alpha1"},{"section":"clusterkubernetes-v1alpha1"},{"section":"clusterkubeconfigflags-v1alpha1"},{"section":"clusterimagesflags-v1alpha1"},{"section":"clusterimagesbuildflags-v1alpha1"},{"section":"clusterflags-v1alpha1"},{"section":"clusterdestroyflags-v1alpha1"},{"section":"clusterapplyflags-v1alpha1"},{"section":"clusteramazon-v1alpha1"},{"section":"amazonesproxy-v1alpha1"}]},{"section":"-strong-old-api-versions-strong-","subsections":[]},{"section":"instance-v1alpha1","subsections":[]},{"section":"cluster-v1alpha1","subsections":[]},{"section":"flags-v1alpha1","subsections":[]},{"section":"image-v1alpha1","subsections":[]},{"section":"config-v1alpha1","subsections":[]},{"section":"-strong-tarmak-strong-","subsections":[]}],"flatToc":["volume-v1alpha1","values-v1alpha1","taint-v1alpha1","subnet-v1alpha1","ssh-v1alpha1","providergcp-v1alpha1","providerazure-v1alpha1","provideramazon-v1alpha1","provider-v1alpha1","network-v1alpha1","loggingsinkelasticsearch-v1alpha1","loggingsink-v1alpha1","label-v1alpha1","kubernetesapi-v1alpha1","internetgw-v1alpha1","instancestatusmanifest-v1alpha1","instancespecmanifest-v1alpha1","instancepoolkubernetes-v1alpha1","instancepoolamazon-v1alpha1","instancepool-v1alpha1","ingressrule-v1alpha1","httpbasicauth-v1alpha1","firewall-v1alpha1","environmentflags-v1alpha1","environmentdestroyflags-v1alpha1","environment-v1alpha1","egressrule-v1alpha1","clustervaulthelper-v1alpha1","clusterpodsecuritypolicy-v1alpha1","clusterplanflags-v1alpha1","clusterlogsflags-v1alpha1","clusterkubernetestiller-v1alpha1","clusterkubernetesscheduler-v1alpha1","clusterkubernetesproxy-v1alpha1","clusterkubernetesprometheus-v1alpha1","clusterkuberneteskubelet-v1alpha1","clusterkubernetesinfluxdb-v1alpha1","clusterkubernetesheapster-v1alpha1","clusterkubernetesgrafana-v1alpha1","clusterkubernetesdashboard-v1alpha1","clusterkubernetescontrollermanager-v1alpha1","clusterkubernetesclusterautoscaleroverprovisioning-v1alpha1","clusterkubernetesclusterautoscaler-v1alpha1","clusterkubernetescalico-v1alpha1","clusterkubernetesapiserveroidc-v1alpha1","clusterkubernetesapiserveramazonaccesslogs-v1alpha1","clusterkubernetesapiserveramazon-v1alpha1","clusterkubernetesapiserver-v1alpha1","clusterkubernetes-v1alpha1","clusterkubeconfigflags-v1alpha1","clusterimagesflags-v1alpha1","clusterimagesbuildflags-v1alpha1","clusterflags-v1alpha1","clusterdestroyflags-v1alpha1","clusterapplyflags-v1alpha1","clusteramazon-v1alpha1","amazonesproxy-v1alpha1","-strong-field-definitions-strong-","-strong-old-api-versions-strong-","instance-v1alpha1","cluster-v1alpha1","flags-v1alpha1","image-v1alpha1","config-v1alpha1","-strong-tarmak-strong-"]};})(); \ No newline at end of file diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index a798c8e859..b3ef9d3d83 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -40,6 +40,7 @@ Golang Grafana gz Hashicorp +heapster heptio hostname iam diff --git a/docs/user-guide.rst b/docs/user-guide.rst index fc015fef7f..83a3f3e475 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -976,6 +976,19 @@ Enabling Typha, along with setting the number of replicas is shown above. Cluster Services ---------------- +Deploying Grafana, InfluxDB and Heapster can be toggled in the Tarmak +configuration like follows: + +.. code-block:: yaml + + kubernetes: + grafana: + enabled: true + heapster: + enabled: false + influxDB: + enabled: true + Grafana ~~~~~~~ diff --git a/pkg/apis/cluster/v1alpha1/cluster.go b/pkg/apis/cluster/v1alpha1/cluster.go index 12e23bdd66..5e74b9d9e6 100644 --- a/pkg/apis/cluster/v1alpha1/cluster.go +++ b/pkg/apis/cluster/v1alpha1/cluster.go @@ -96,6 +96,9 @@ type ClusterKubernetes struct { Dashboard *ClusterKubernetesDashboard `json:"dashboard,omitempty"` PodSecurityPolicy *ClusterPodSecurityPolicy `json:"podSecurityPolicy,omitempty"` Prometheus *ClusterKubernetesPrometheus `json:"prometheus,omitempty"` + Grafana *ClusterKubernetesGrafana `json:"grafana,omiempty"` + Heapster *ClusterKubernetesHeapster `json:"heapster,omiempty"` + InfluxDB *ClusterKubernetesInfluxDB `json:"influxDB,omiempty"` APIServer *ClusterKubernetesAPIServer `json:"apiServer,omitempty"` Kubelet *ClusterKubernetesKubelet `json:"kubelet,omitempty"` @@ -214,6 +217,18 @@ type ClusterKubernetesPrometheus struct { Mode string `json:"mode,omitempty"` } +type ClusterKubernetesGrafana struct { + Enabled bool `json:"enabled,omitempty"` +} + +type ClusterKubernetesHeapster struct { + Enabled bool `json:"enabled,omitempty"` +} + +type ClusterKubernetesInfluxDB struct { + Enabled bool `json:"enabled,omitempty"` +} + type ClusterVaultHelper struct { URL string `json:"url,omitempty"` } diff --git a/pkg/apis/cluster/v1alpha1/defaults.go b/pkg/apis/cluster/v1alpha1/defaults.go index 0ed3b5c6f3..55c296521c 100644 --- a/pkg/apis/cluster/v1alpha1/defaults.go +++ b/pkg/apis/cluster/v1alpha1/defaults.go @@ -87,6 +87,24 @@ func SetDefaults_Cluster(obj *Cluster) { obj.Kubernetes.Calico.TyphaReplicas = intPointer(1) } + if obj.Kubernetes.Heapster == nil { + obj.Kubernetes.Heapster = &ClusterKubernetesHeapster{ + Enabled: true, + } + } + + if obj.Kubernetes.Grafana == nil { + obj.Kubernetes.Grafana = &ClusterKubernetesGrafana{ + Enabled: true, + } + } + + if obj.Kubernetes.InfluxDB == nil { + obj.Kubernetes.InfluxDB = &ClusterKubernetesInfluxDB{ + Enabled: true, + } + } + // EBS encryption off if Amazon interface used // but EBSEncrypted not specified if obj.Amazon == nil { diff --git a/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go index 9f4095b135..9894abe812 100644 --- a/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go @@ -154,6 +154,21 @@ func (in *ClusterKubernetes) DeepCopyInto(out *ClusterKubernetes) { *out = new(ClusterKubernetesPrometheus) **out = **in } + if in.Grafana != nil { + in, out := &in.Grafana, &out.Grafana + *out = new(ClusterKubernetesGrafana) + **out = **in + } + if in.Heapster != nil { + in, out := &in.Heapster, &out.Heapster + *out = new(ClusterKubernetesHeapster) + **out = **in + } + if in.InfluxDB != nil { + in, out := &in.InfluxDB, &out.InfluxDB + *out = new(ClusterKubernetesInfluxDB) + **out = **in + } if in.APIServer != nil { in, out := &in.APIServer, &out.APIServer *out = new(ClusterKubernetesAPIServer) @@ -427,6 +442,54 @@ func (in *ClusterKubernetesDashboard) DeepCopy() *ClusterKubernetesDashboard { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterKubernetesGrafana) DeepCopyInto(out *ClusterKubernetesGrafana) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubernetesGrafana. +func (in *ClusterKubernetesGrafana) DeepCopy() *ClusterKubernetesGrafana { + if in == nil { + return nil + } + out := new(ClusterKubernetesGrafana) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterKubernetesHeapster) DeepCopyInto(out *ClusterKubernetesHeapster) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubernetesHeapster. +func (in *ClusterKubernetesHeapster) DeepCopy() *ClusterKubernetesHeapster { + if in == nil { + return nil + } + out := new(ClusterKubernetesHeapster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterKubernetesInfluxDB) DeepCopyInto(out *ClusterKubernetesInfluxDB) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterKubernetesInfluxDB. +func (in *ClusterKubernetesInfluxDB) DeepCopy() *ClusterKubernetesInfluxDB { + if in == nil { + return nil + } + out := new(ClusterKubernetesInfluxDB) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClusterKubernetesKubelet) DeepCopyInto(out *ClusterKubernetesKubelet) { *out = *in diff --git a/pkg/puppet/puppet.go b/pkg/puppet/puppet.go index c7e98905f5..fb2bdc531f 100644 --- a/pkg/puppet/puppet.go +++ b/pkg/puppet/puppet.go @@ -333,6 +333,18 @@ func kubernetesClusterConfigPerRole(conf *clusterv1alpha1.ClusterKubernetes, rol } } + if g := conf.Grafana; g != nil { + hieraData.variables = append(hieraData.variables, fmt.Sprintf(`kubernetes_addons::grafana::enabled: %t`, conf.Grafana.Enabled)) + } + + if h := conf.Heapster; h != nil { + hieraData.variables = append(hieraData.variables, fmt.Sprintf(`kubernetes_addons::heapster::enabled: %t`, conf.Heapster.Enabled)) + } + + if i := conf.Heapster; i != nil { + hieraData.variables = append(hieraData.variables, fmt.Sprintf(`kubernetes_addons::influxdb::enabled: %t`, conf.InfluxDB.Enabled)) + } + return } diff --git a/pkg/tarmak/initialize/initialize.go b/pkg/tarmak/initialize/initialize.go index 1a73571274..4ba60fb50c 100644 --- a/pkg/tarmak/initialize/initialize.go +++ b/pkg/tarmak/initialize/initialize.go @@ -286,6 +286,22 @@ creationLoop: return nil, err } + if clusterConf.Kubernetes == nil { + clusterConf.Kubernetes = new(clusterv1alpha1.ClusterKubernetes) + } + + clusterConf.Kubernetes.Heapster = &clusterv1alpha1.ClusterKubernetesHeapster{ + Enabled: false, + } + + clusterConf.Kubernetes.Grafana = &clusterv1alpha1.ClusterKubernetesGrafana{ + Enabled: false, + } + + clusterConf.Kubernetes.InfluxDB = &clusterv1alpha1.ClusterKubernetesInfluxDB{ + Enabled: false, + } + clusterObj, err = i.newCluster(clusterConf) if err != nil { return nil, err diff --git a/puppet/hieradata/role/master.yaml b/puppet/hieradata/role/master.yaml index abd470376a..447e5df1c4 100644 --- a/puppet/hieradata/role/master.yaml +++ b/puppet/hieradata/role/master.yaml @@ -3,8 +3,8 @@ classes: - tarmak::master - tarmak::worker - tarmak::overlay_calico -- kubernetes_addons::heapster - kubernetes_addons::metrics_server +- kubernetes_addons::heapster - kubernetes_addons::influxdb - kubernetes_addons::grafana diff --git a/puppet/modules/kubernetes_addons/manifests/grafana.pp b/puppet/modules/kubernetes_addons/manifests/grafana.pp index 51c5dd7552..cc3d58a10b 100644 --- a/puppet/modules/kubernetes_addons/manifests/grafana.pp +++ b/puppet/modules/kubernetes_addons/manifests/grafana.pp @@ -1,13 +1,18 @@ class kubernetes_addons::grafana( $image=$::kubernetes_addons::params::grafana_image, $version=$::kubernetes_addons::params::grafana_version, + $enabled = true, ) inherits ::kubernetes_addons::params { require ::kubernetes - kubernetes::apply{'heapster-grafana': - manifests => [ - template('kubernetes_addons/grafana-svc.yaml.erb'), - template('kubernetes_addons/grafana-deployment.yaml.erb'), - ], + if $enabled { + kubernetes::apply{'heapster-grafana': + manifests => [ + template('kubernetes_addons/grafana-svc.yaml.erb'), + template('kubernetes_addons/grafana-deployment.yaml.erb'), + ], + } + } else { + kubernetes::delete{'heapster-grafana':} } } diff --git a/puppet/modules/kubernetes_addons/manifests/heapster.pp b/puppet/modules/kubernetes_addons/manifests/heapster.pp index 326c397fce..14a79c5305 100644 --- a/puppet/modules/kubernetes_addons/manifests/heapster.pp +++ b/puppet/modules/kubernetes_addons/manifests/heapster.pp @@ -11,6 +11,7 @@ $nanny_request_mem=$::kubernetes_addons::params::heapster_nanny_request_mem, $nanny_limit_cpu=$::kubernetes_addons::params::heapster_nanny_limit_cpu, $nanny_limit_mem=$::kubernetes_addons::params::heapster_nanny_limit_mem, + $enabled = true, $sink=undef, ) inherits ::kubernetes_addons::params { require ::kubernetes @@ -40,11 +41,15 @@ $version_before_1_9 = true } - kubernetes::apply{'heapster': - manifests => [ - template('kubernetes_addons/heapster-svc.yaml.erb'), - template('kubernetes_addons/heapster-deployment.yaml.erb'), - template('kubernetes_addons/heapster-rbac.yaml.erb'), - ], + if $enabled { + kubernetes::apply{'heapster': + manifests => [ + template('kubernetes_addons/heapster-svc.yaml.erb'), + template('kubernetes_addons/heapster-deployment.yaml.erb'), + template('kubernetes_addons/heapster-rbac.yaml.erb'), + ], + } + } else { + kubernetes::delete{'heapster':} } } diff --git a/puppet/modules/kubernetes_addons/manifests/influxdb.pp b/puppet/modules/kubernetes_addons/manifests/influxdb.pp index dd0531a033..57cb0690d8 100644 --- a/puppet/modules/kubernetes_addons/manifests/influxdb.pp +++ b/puppet/modules/kubernetes_addons/manifests/influxdb.pp @@ -1,13 +1,18 @@ class kubernetes_addons::influxdb( $image=$::kubernetes_addons::params::influxdb_image, $version=$::kubernetes_addons::params::influxdb_version, + $enabled = true, ) inherits ::kubernetes_addons::params { require ::kubernetes - kubernetes::apply{'heapster-influxdb': - manifests => [ - template('kubernetes_addons/influxdb-svc.yaml.erb'), - template('kubernetes_addons/influxdb-deployment.yaml.erb'), - ], + if $enabled { + kubernetes::apply{'heapster-influxdb': + manifests => [ + template('kubernetes_addons/influxdb-svc.yaml.erb'), + template('kubernetes_addons/influxdb-deployment.yaml.erb'), + ], + } + } else { + kubernetes::delete{'heapster-influxdb':} } }