From 76565d80b2dccfa2de4b4612557788b1861cc48a Mon Sep 17 00:00:00 2001 From: Bo Biene Date: Mon, 30 Nov 2020 08:48:50 +0100 Subject: [PATCH] TLS improvements (#1317) * Fix tls hostname for ingress with path * Possibility to set ExposeServiceTLS to true * keep full path when extracting host Co-authored-by: Tomas Kral --- .github/workflows/go.yml | 34 ++++++++++++++++++++++++ pkg/transformer/kubernetes/kubernetes.go | 22 ++++++++++----- pkg/transformer/utils.go | 2 +- 3 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 00000000..df0378db --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,34 @@ +name: Go + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ^1.13 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Build + run: make bin + + - name: Test + run: make test + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.1.4 + with: + path: "kompose" diff --git a/pkg/transformer/kubernetes/kubernetes.go b/pkg/transformer/kubernetes/kubernetes.go index 219c0320..e62bd0ee 100755 --- a/pkg/transformer/kubernetes/kubernetes.go +++ b/pkg/transformer/kubernetes/kubernetes.go @@ -421,7 +421,7 @@ func (k *Kubernetes) initIngress(name string, service kobject.ServiceConfig, por Rules: make([]networkingv1beta1.IngressRule, len(hosts)), }, } - + tlsHosts := make([]string, len(hosts)) for i, host := range hosts { host, p := transformer.ParseIngressPath(host) ingress.Spec.Rules[i] = networkingv1beta1.IngressRule{ @@ -443,15 +443,23 @@ func (k *Kubernetes) initIngress(name string, service kobject.ServiceConfig, por } if host != "true" { ingress.Spec.Rules[i].Host = host + tlsHosts[i] = host } } - if service.ExposeServiceTLS != "" { - ingress.Spec.TLS = []networkingv1beta1.IngressTLS{ - { - Hosts: hosts, - SecretName: service.ExposeServiceTLS, - }, + if service.ExposeServiceTLS != "true" { + ingress.Spec.TLS = []networkingv1beta1.IngressTLS{ + { + Hosts: tlsHosts, + SecretName: service.ExposeServiceTLS, + }, + } + } else { + ingress.Spec.TLS = []networkingv1beta1.IngressTLS{ + { + Hosts: tlsHosts, + }, + } } } diff --git a/pkg/transformer/utils.go b/pkg/transformer/utils.go index 071fe536..ded31b14 100644 --- a/pkg/transformer/utils.go +++ b/pkg/transformer/utils.go @@ -117,7 +117,7 @@ func ParseVolume(volume string) (name, host, container, mode string, err error) func ParseIngressPath(url string) (string, string) { if strings.Contains(url, "/") { splits := strings.Split(url, "/") - return splits[0], "/" + splits[1] + return splits[0], "/" + strings.Join(splits[1:], "/") } return url, "" }