From fcf6f0098cedcc75e8ac8217efd8e389f9101cf0 Mon Sep 17 00:00:00 2001 From: Kashif Saadat Date: Thu, 28 Nov 2019 09:54:12 +0000 Subject: [PATCH] Canal Typha spec and apimachinery --- cmd/kops/rollingupdatecluster.go | 3 +-- pkg/apis/kops/networking.go | 8 ++++++++ pkg/apis/kops/v1alpha1/networking.go | 8 ++++++++ pkg/apis/kops/v1alpha1/zz_generated.conversion.go | 6 ++++++ pkg/apis/kops/v1alpha2/networking.go | 8 ++++++++ pkg/apis/kops/v1alpha2/zz_generated.conversion.go | 6 ++++++ pkg/instancegroups/rollingupdate.go | 3 +-- .../k8s-1.15.yaml.template | 3 +++ 8 files changed, 41 insertions(+), 4 deletions(-) diff --git a/cmd/kops/rollingupdatecluster.go b/cmd/kops/rollingupdatecluster.go index 218412d365..ddbcfe234f 100644 --- a/cmd/kops/rollingupdatecluster.go +++ b/cmd/kops/rollingupdatecluster.go @@ -24,8 +24,6 @@ import ( "strings" "time" - "k8s.io/kops/pkg/validation" - "github.com/spf13/cobra" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -39,6 +37,7 @@ import ( "k8s.io/kops/pkg/featureflag" "k8s.io/kops/pkg/instancegroups" "k8s.io/kops/pkg/pretty" + "k8s.io/kops/pkg/validation" "k8s.io/kops/upup/pkg/fi/cloudup" "k8s.io/kops/util/pkg/tables" "k8s.io/kubernetes/pkg/kubectl/util/i18n" diff --git a/pkg/apis/kops/networking.go b/pkg/apis/kops/networking.go index 698527211e..8d44a8301e 100644 --- a/pkg/apis/kops/networking.go +++ b/pkg/apis/kops/networking.go @@ -134,6 +134,14 @@ type CanalNetworkingSpec struct { PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"` // PrometheusProcessMetricsEnabled enables Prometheus process metrics collection PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha + // (default: false) + TyphaPrometheusMetricsEnabled bool `json:"typhaPrometheusMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server + // should bind to (default: 9093) + TyphaPrometheusMetricsPort int32 `json:"typhaPrometheusMetricsPort,omitempty"` + // TyphaReplicas is the number of replicas of Typha to deploy + TyphaReplicas int32 `json:"typhaReplicas,omitempty"` } // KuberouterNetworkingSpec declares that we want Kube-router networking diff --git a/pkg/apis/kops/v1alpha1/networking.go b/pkg/apis/kops/v1alpha1/networking.go index 11cd4666d0..33f00b2b78 100644 --- a/pkg/apis/kops/v1alpha1/networking.go +++ b/pkg/apis/kops/v1alpha1/networking.go @@ -134,6 +134,14 @@ type CanalNetworkingSpec struct { PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"` // PrometheusProcessMetricsEnabled enables Prometheus process metrics collection PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha + // (default: false) + TyphaPrometheusMetricsEnabled bool `json:"typhaPrometheusMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server + // should bind to (default: 9093) + TyphaPrometheusMetricsPort int32 `json:"typhaPrometheusMetricsPort,omitempty"` + // TyphaReplicas is the number of replicas of Typha to deploy + TyphaReplicas int32 `json:"typhaReplicas,omitempty"` } // KuberouterNetworkingSpec declares that we want Kube-router networking diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go index 9082281e47..6ac9640ba3 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -1180,6 +1180,9 @@ func autoConvert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(in *Ca out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled out.PrometheusMetricsPort = in.PrometheusMetricsPort out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas return nil } @@ -1198,6 +1201,9 @@ func autoConvert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(in *ko out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled out.PrometheusMetricsPort = in.PrometheusMetricsPort out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas return nil } diff --git a/pkg/apis/kops/v1alpha2/networking.go b/pkg/apis/kops/v1alpha2/networking.go index e0d094e8f2..72370c8b0e 100644 --- a/pkg/apis/kops/v1alpha2/networking.go +++ b/pkg/apis/kops/v1alpha2/networking.go @@ -134,6 +134,14 @@ type CanalNetworkingSpec struct { PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"` // PrometheusProcessMetricsEnabled enables Prometheus process metrics collection PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha + // (default: false) + TyphaPrometheusMetricsEnabled bool `json:"typhaPrometheusMetricsEnabled,omitempty"` + // TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server + // should bind to (default: 9093) + TyphaPrometheusMetricsPort int32 `json:"typhaPrometheusMetricsPort,omitempty"` + // TyphaReplicas is the number of replicas of Typha to deploy + TyphaReplicas int32 `json:"typhaReplicas,omitempty"` } // KuberouterNetworkingSpec declares that we want Kube-router networking diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index 8afc85e24b..90c5bad8d8 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -1222,6 +1222,9 @@ func autoConvert_v1alpha2_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(in *Ca out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled out.PrometheusMetricsPort = in.PrometheusMetricsPort out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas return nil } @@ -1240,6 +1243,9 @@ func autoConvert_kops_CanalNetworkingSpec_To_v1alpha2_CanalNetworkingSpec(in *ko out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled out.PrometheusMetricsPort = in.PrometheusMetricsPort out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas return nil } diff --git a/pkg/instancegroups/rollingupdate.go b/pkg/instancegroups/rollingupdate.go index aac7bd7565..a943a48a11 100644 --- a/pkg/instancegroups/rollingupdate.go +++ b/pkg/instancegroups/rollingupdate.go @@ -21,12 +21,11 @@ import ( "sync" "time" - "k8s.io/kops/pkg/validation" - "k8s.io/client-go/kubernetes" "k8s.io/klog" api "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/cloudinstances" + "k8s.io/kops/pkg/validation" "k8s.io/kops/upup/pkg/fi" ) diff --git a/upup/models/cloudup/resources/addons/networking.projectcalico.org.canal/k8s-1.15.yaml.template b/upup/models/cloudup/resources/addons/networking.projectcalico.org.canal/k8s-1.15.yaml.template index 23c3cca8fb..930994f931 100644 --- a/upup/models/cloudup/resources/addons/networking.projectcalico.org.canal/k8s-1.15.yaml.template +++ b/upup/models/cloudup/resources/addons/networking.projectcalico.org.canal/k8s-1.15.yaml.template @@ -486,6 +486,9 @@ spec: # production, we recommend running at least 3 replicas to reduce the impact of rolling upgrade. replicas: {{ or .Networking.Canal.TyphaReplicas 0 }} revisionHistoryLimit: 2 + selector: + matchLabels: + k8s-app: calico-typha template: metadata: labels: