From 2a1958c3c4081909e2b6c89435a6ceb05e3047fd Mon Sep 17 00:00:00 2001 From: Charlie Drage Date: Tue, 21 Nov 2017 12:32:52 -0500 Subject: [PATCH] Allow the usage of a string or int as a value in portMappings This allows the use of specifying either (for example) "80" or 80 within portMappings of the Kedge file. --- docs/examples/portMappings/mariadb.yaml | 2 +- pkg/spec/deployment.go | 2 +- pkg/spec/resources.go | 2 +- pkg/spec/types.go | 3 ++- tests/cmd/portmappings/port-mixed.yaml | 11 +++++++++++ tests/cmd/portmappings/port-port.yaml | 9 +++++++++ tests/cmd/portmappings/port-string.yaml | 9 +++++++++ tests/cmd/portmappings/port.yaml | 9 +++++++++ 8 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 tests/cmd/portmappings/port-mixed.yaml create mode 100644 tests/cmd/portmappings/port-port.yaml create mode 100644 tests/cmd/portmappings/port-string.yaml create mode 100644 tests/cmd/portmappings/port.yaml diff --git a/docs/examples/portMappings/mariadb.yaml b/docs/examples/portMappings/mariadb.yaml index 61f0b5fec..86d9a166f 100644 --- a/docs/examples/portMappings/mariadb.yaml +++ b/docs/examples/portMappings/mariadb.yaml @@ -12,5 +12,5 @@ containers: value: wordpress services: - portMappings: - - 3306:3306/TCP + - 3306 type: NodePort diff --git a/pkg/spec/deployment.go b/pkg/spec/deployment.go index 02efda5cd..37ce6ae00 100644 --- a/pkg/spec/deployment.go +++ b/pkg/spec/deployment.go @@ -33,7 +33,7 @@ import ( func (deployment *DeploymentSpecMod) Unmarshal(data []byte) error { err := yaml.Unmarshal(data, &deployment) if err != nil { - return errors.Wrap(err, "could not unmarshal into internal struct") + return errors.Wrap(err, "Deployment could not unmarshal into internal struct") } log.Debugf("object unmarshalled: %#v\n", deployment) return nil diff --git a/pkg/spec/resources.go b/pkg/spec/resources.go index 720b44214..85f0666b5 100644 --- a/pkg/spec/resources.go +++ b/pkg/spec/resources.go @@ -331,7 +331,7 @@ func (app *ControllerFields) createServices() ([]runtime.Object, error) { } for _, portMapping := range s.PortMappings { - servicePort, err := parsePortMapping(portMapping) + servicePort, err := parsePortMapping(portMapping.String()) if err != nil { return nil, errors.Wrap(err, "unable to parse port mapping") } diff --git a/pkg/spec/types.go b/pkg/spec/types.go index 6c4e1a7a0..81d6d6deb 100644 --- a/pkg/spec/types.go +++ b/pkg/spec/types.go @@ -22,6 +22,7 @@ import ( image_v1 "github.com/openshift/origin/pkg/image/apis/image/v1" os_route_v1 "github.com/openshift/origin/pkg/route/apis/route/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" api_v1 "k8s.io/kubernetes/pkg/api/v1" batch_v1 "k8s.io/kubernetes/pkg/apis/batch/v1" ext_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" @@ -63,7 +64,7 @@ type ServiceSpecMod struct { // The list of portMappings, where each portMapping allows specifying port, // targetPort and protocol in the format ':/' // +optional - PortMappings []string `json:"portMappings,omitempty"` + PortMappings []intstr.IntOrString `json:"portMappings,omitempty"` // k8s: io.k8s.kubernetes.pkg.apis.meta.v1.ObjectMeta meta_v1.ObjectMeta `json:",inline"` } diff --git a/tests/cmd/portmappings/port-mixed.yaml b/tests/cmd/portmappings/port-mixed.yaml new file mode 100644 index 000000000..9275fbc47 --- /dev/null +++ b/tests/cmd/portmappings/port-mixed.yaml @@ -0,0 +1,11 @@ +name: database + +containers: + - image: mariadb:10 + +services: + - name: database + portMappings: + - 80 + - "3306" + - "3307" diff --git a/tests/cmd/portmappings/port-port.yaml b/tests/cmd/portmappings/port-port.yaml new file mode 100644 index 000000000..47d3b735e --- /dev/null +++ b/tests/cmd/portmappings/port-port.yaml @@ -0,0 +1,9 @@ +name: database + +containers: + - image: mariadb:10 + +services: + - name: database + portMappings: + - 3306:3306 diff --git a/tests/cmd/portmappings/port-string.yaml b/tests/cmd/portmappings/port-string.yaml new file mode 100644 index 000000000..45bf0bafc --- /dev/null +++ b/tests/cmd/portmappings/port-string.yaml @@ -0,0 +1,9 @@ +name: database + +containers: + - image: mariadb:10 + +services: + - name: database + portMappings: + - "3306" diff --git a/tests/cmd/portmappings/port.yaml b/tests/cmd/portmappings/port.yaml new file mode 100644 index 000000000..093de039c --- /dev/null +++ b/tests/cmd/portmappings/port.yaml @@ -0,0 +1,9 @@ +name: database + +containers: + - image: mariadb:10 + +services: + - name: database + portMappings: + - 3306