From 3d274ab6a2fcd1137e3a2d568547929972bed877 Mon Sep 17 00:00:00 2001 From: Jake Sanders Date: Tue, 31 Mar 2020 12:03:32 +0100 Subject: [PATCH] Add namespace support to Kubernetes client (#1446) * Add namespace support to Kubernetes client * Fix LastUpdateTime Condition --- runtime/kubernetes/kubernetes.go | 2 +- util/kubernetes/client/templates.go | 14 ++++++++++++++ util/kubernetes/client/types.go | 13 +++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/runtime/kubernetes/kubernetes.go b/runtime/kubernetes/kubernetes.go index f8568dc1..b0e68882 100644 --- a/runtime/kubernetes/kubernetes.go +++ b/runtime/kubernetes/kubernetes.go @@ -129,7 +129,7 @@ func (k *kubernetes) getService(labels map[string]string) ([]*service, error) { // parse out deployment status and inject into service metadata if len(kdep.Status.Conditions) > 0 { svc.Metadata["status"] = kdep.Status.Conditions[0].Type - svc.Metadata["started"] = kdep.Status.Conditions[0].LastUpdate + svc.Metadata["started"] = kdep.Status.Conditions[0].LastUpdateTime delete(svc.Metadata, "error") } else { svc.Metadata["status"] = "n/a" diff --git a/util/kubernetes/client/templates.go b/util/kubernetes/client/templates.go index 84852cc0..feddfffc 100644 --- a/util/kubernetes/client/templates.go +++ b/util/kubernetes/client/templates.go @@ -3,6 +3,7 @@ package client var templates = map[string]string{ "deployment": deploymentTmpl, "service": serviceTmpl, + "namespace": namespaceTmpl, } // stripped image pull policy always @@ -108,3 +109,16 @@ spec: {{- end }} {{- end }} ` + +var namespaceTmpl = ` +apiVersion: v1 +kind: Namespace +metadata: + name: "{{ .Metadata.Name }}" + labels: + {{- with .Metadata.Labels }} + {{- range $key, $value := . }} + {{ $key }}: "{{ $value }}" + {{- end }} + {{- end }} +` diff --git a/util/kubernetes/client/types.go b/util/kubernetes/client/types.go index 0c6ecc29..c19fff1c 100644 --- a/util/kubernetes/client/types.go +++ b/util/kubernetes/client/types.go @@ -39,10 +39,10 @@ type DeploymentSpec struct { // DeploymentCondition describes the state of deployment type DeploymentCondition struct { - LastUpdate string `json:lastUpdateTime` - Type string `json:"type"` - reason string `json:"reason,omitempty"` - message string `json:"message,omitempty"` + LastUpdateTime string `json:"lastUpdateTime"` + Type string `json:"type"` + Reason string `json:"reason,omitempty"` + Message string `json:"message,omitempty"` } // DeploymentStatus is returned when querying deployment @@ -178,3 +178,8 @@ type Template struct { Metadata *Metadata `json:"metadata,omitempty"` PodSpec *PodSpec `json:"spec,omitempty"` } + +// Namespace is a Kubernetes Namespace +type Namespace struct { + Metadata *Metadata `json:"metadata,omitempty"` +}