Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package okteto for openSUSE:Factory checked in at 2022-06-07 11:45:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/okteto (Old) and /work/SRC/openSUSE:Factory/.okteto.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "okteto" Tue Jun 7 11:45:10 2022 rev:19 rq:981040 version:2.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/okteto/okteto.changes 2022-06-01 17:35:57.642832873 +0200 +++ /work/SRC/openSUSE:Factory/.okteto.new.1548/okteto.changes 2022-06-07 11:45:19.231245971 +0200 @@ -1,0 +2,6 @@ +Mon Jun 06 18:34:12 UTC 2022 - ka...@b1-systems.de + +- Update to version 2.3.3: + * fix: translate stacks to compose ports when unmarshalling (#2748) + +------------------------------------------------------------------- Old: ---- okteto-2.3.2.tar.gz New: ---- okteto-2.3.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ okteto.spec ++++++ --- /var/tmp/diff_new_pack.m5exrE/_old 2022-06-07 11:45:20.227247329 +0200 +++ /var/tmp/diff_new_pack.m5exrE/_new 2022-06-07 11:45:20.235247340 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: okteto -Version: 2.3.2 +Version: 2.3.3 Release: 0 Summary: Develop your applications directly in your Kubernetes Cluster License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.m5exrE/_old 2022-06-07 11:45:20.295247421 +0200 +++ /var/tmp/diff_new_pack.m5exrE/_new 2022-06-07 11:45:20.299247427 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/okteto/okteto</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">2.3.2</param> + <param name="revision">2.3.3</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> </service> @@ -15,7 +15,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">okteto-2.3.2.tar.gz</param> + <param name="archive">okteto-2.3.3.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.m5exrE/_old 2022-06-07 11:45:20.339247481 +0200 +++ /var/tmp/diff_new_pack.m5exrE/_new 2022-06-07 11:45:20.347247492 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/okteto/okteto</param> - <param name="changesrevision">649548a589f7565c913004ec23939a659635aab5</param></service></servicedata> + <param name="changesrevision">755bd3963c1c42eac2d35d7a4c18af7be3d11c57</param></service></servicedata> (No newline at EOF) ++++++ okteto-2.3.2.tar.gz -> okteto-2.3.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.3.2/pkg/cmd/stack/translate.go new/okteto-2.3.3/pkg/cmd/stack/translate.go --- old/okteto-2.3.2/pkg/cmd/stack/translate.go 2022-06-01 09:37:38.000000000 +0200 +++ new/okteto-2.3.3/pkg/cmd/stack/translate.go 2022-06-03 17:11:44.000000000 +0200 @@ -423,7 +423,7 @@ func getSvcPublicPorts(svcName string, s *model.Stack) []model.Port { result := []model.Port{} for _, p := range s.Services[svcName].Ports { - if !model.IsSkippablePort(p.ContainerPort) && (p.HostPort != 0 || s.Services[svcName].Public) { + if !model.IsSkippablePort(p.ContainerPort) && p.HostPort != 0 { result = append(result, p) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.3.2/pkg/cmd/stack/translate_test.go new/okteto-2.3.3/pkg/cmd/stack/translate_test.go --- old/okteto-2.3.2/pkg/cmd/stack/translate_test.go 2022-06-01 09:37:38.000000000 +0200 +++ new/okteto-2.3.3/pkg/cmd/stack/translate_test.go 2022-06-03 17:11:44.000000000 +0200 @@ -1568,6 +1568,7 @@ Ports: []model.Port{ { ContainerPort: 80, + HostPort: 80, }, }, }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.3.2/pkg/model/stack.go new/okteto-2.3.3/pkg/model/stack.go --- old/okteto-2.3.2/pkg/model/stack.go 2022-06-01 09:37:38.000000000 +0200 +++ new/okteto-2.3.3/pkg/model/stack.go 2022-06-03 17:11:44.000000000 +0200 @@ -90,6 +90,7 @@ Healtcheck *HealthCheck `yaml:"healthcheck,omitempty"` User *StackSecurityContext `yaml:"user,omitempty"` + // Fields only for okteto stacks Public bool `yaml:"public,omitempty"` Replicas int32 `yaml:"replicas,omitempty"` Resources *StackResources `yaml:"resources,omitempty"` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.3.2/pkg/model/stack_serializer.go new/okteto-2.3.3/pkg/model/stack_serializer.go --- old/okteto-2.3.2/pkg/model/stack_serializer.go 2022-06-01 09:37:38.000000000 +0200 +++ new/okteto-2.3.3/pkg/model/stack_serializer.go 2022-06-03 17:11:44.000000000 +0200 @@ -566,6 +566,11 @@ func getSvcPorts(public bool, rawPorts, rawExpose []PortRaw) (bool, []Port, error) { rawPorts = expandRangePorts(rawPorts) + // If public is set at this point it means that it comes from an okteto stacks and it's true + if public { + rawPorts = translateOktetoStacksPortsIntoComposeSyntax(rawPorts) + } + if !public && len(getAccessiblePorts(rawPorts)) == 1 { public = true } @@ -597,6 +602,25 @@ return public, ports, nil } +// translateOktetoStacksPortsIntoComposeSyntax translates okteto stack port syntax into compose ports syntax +// We need this translation because we are using the same serializer for okteto stacks and docker compose syntax +// Otherwise we don't know which ports should create an endpoint and which ones not +// Example 1: +// Stacks syntax -> Compose syntax +// ports: | ports: +// - 5000 | - 5000:5000 +// - 3000 | - 3000:3000 +// public: true | +func translateOktetoStacksPortsIntoComposeSyntax(ports []PortRaw) []PortRaw { + for idx, p := range ports { + if p.HostPort == 0 { + p.HostPort = p.ContainerPort + } + ports[idx] = p + } + return ports +} + func expandRangePorts(ports []PortRaw) []PortRaw { newPortList := make([]PortRaw, 0) for _, p := range ports { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.3.2/pkg/model/stack_serializer_test.go new/okteto-2.3.3/pkg/model/stack_serializer_test.go --- old/okteto-2.3.2/pkg/model/stack_serializer_test.go 2022-06-01 09:37:38.000000000 +0200 +++ new/okteto-2.3.3/pkg/model/stack_serializer_test.go 2022-06-03 17:11:44.000000000 +0200 @@ -1853,3 +1853,84 @@ }) } } + +func Test_TranslateOktetoStackPortsToComposePorts(t *testing.T) { + tests := []struct { + name string + ports []PortRaw + expected []PortRaw + }{ + { + name: "containerPort only", + ports: []PortRaw{ + { + ContainerPort: 8080, + }, + { + ContainerPort: 3000, + }, + }, + expected: []PortRaw{ + { + ContainerPort: 8080, + HostPort: 8080, + }, + { + ContainerPort: 3000, + HostPort: 3000, + }, + }, + }, + { + name: "hostPort:containerPort only", + ports: []PortRaw{ + { + ContainerPort: 8080, + HostPort: 8081, + }, + { + ContainerPort: 3000, + HostPort: 2345, + }, + }, + expected: []PortRaw{ + { + ContainerPort: 8080, + HostPort: 8081, + }, + { + ContainerPort: 3000, + HostPort: 2345, + }, + }, + }, + { + name: "hostPort:containerPort and containerPort", + ports: []PortRaw{ + { + ContainerPort: 8080, + }, + { + ContainerPort: 3000, + HostPort: 2345, + }, + }, + expected: []PortRaw{ + { + ContainerPort: 8080, + HostPort: 8080, + }, + { + ContainerPort: 3000, + HostPort: 2345, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := translateOktetoStacksPortsIntoComposeSyntax(tt.ports) + assert.Equal(t, tt.expected, result) + }) + } +} ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/okteto/vendor.tar.gz /work/SRC/openSUSE:Factory/.okteto.new.1548/vendor.tar.gz differ: char 5, line 1