Tarmak
@@ -828,6 +828,18 @@
ClusterKubernetes v1alpha1
|
+grafana ClusterKubernetesGrafana |
+ |
+
+
+heapster ClusterKubernetesHeapster |
+ |
+
+
+influxDB ClusterKubernetesInfluxDB |
+ |
+
+
kubelet ClusterKubernetesKubelet |
|
@@ -1335,6 +1347,120 @@
ClusterKubernetesDashboard v1alpha1
+ClusterKubernetesGrafana v1alpha1
+
+
+
+Group |
+Version |
+Kind |
+
+
+
+
+cluster |
+v1alpha1 |
+ClusterKubernetesGrafana |
+
+
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+enabled boolean |
+ |
+
+
+
+
ClusterKubernetesHeapster v1alpha1
+
+
+
+Group |
+Version |
+Kind |
+
+
+
+
+cluster |
+v1alpha1 |
+ClusterKubernetesHeapster |
+
+
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+enabled boolean |
+ |
+
+
+
+
ClusterKubernetesInfluxDB v1alpha1
+
+
+
+Group |
+Version |
+Kind |
+
+
+
+
+cluster |
+v1alpha1 |
+ClusterKubernetesInfluxDB |
+
+
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+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':}
}
}