Skip to content

Commit

Permalink
Merge pull request #35 from qinqon/merge-03-06-2024
Browse files Browse the repository at this point in the history
 OCPBUGS-30303: Merge github.com/kubevirt 03 06 2024
  • Loading branch information
openshift-merge-bot[bot] committed Mar 7, 2024
2 parents e465e60 + 9b71756 commit a25706b
Show file tree
Hide file tree
Showing 55 changed files with 14,187 additions and 2,774 deletions.
10 changes: 5 additions & 5 deletions go.mod
Expand Up @@ -90,13 +90,13 @@ require (
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/crypto v0.1.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/crypto v0.15.0 // indirect
golang.org/x/net v0.18.0 // indirect
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/term v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/sys v0.14.0 // indirect
golang.org/x/term v0.14.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.7.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
Expand Down
10 changes: 6 additions & 4 deletions go.sum
Expand Up @@ -466,8 +466,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
Expand Down Expand Up @@ -530,17 +530,19 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8=
golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
Expand Down
4 changes: 4 additions & 0 deletions pkg/provider/cloud.go
Expand Up @@ -58,6 +58,10 @@ type LoadBalancerConfig struct {

// CreationPollTimeout determines how many seconds to wait for the load balancer creation
CreationPollTimeout *int `yaml:"creationPollTimeout,omitempty"`

// Selectorless delegate endpointslices creation on third party by
// skipping service selector creation
Selectorless *bool `yaml:"selectorless,omitempty"`
}

type InstancesV2Config struct {
Expand Down
4 changes: 3 additions & 1 deletion pkg/provider/loadbalancer.go
Expand Up @@ -198,11 +198,13 @@ func (lb *loadbalancer) createLoadBalancerService(ctx context.Context, lbName st
},
Spec: corev1.ServiceSpec{
Ports: ports,
Selector: vmiLabels,
Type: corev1.ServiceTypeLoadBalancer,
ExternalTrafficPolicy: service.Spec.ExternalTrafficPolicy,
},
}
if lb.config.Selectorless == nil || !*lb.config.Selectorless {
lbService.Spec.Selector = vmiLabels
}
if len(service.Spec.ExternalIPs) > 0 {
lbService.Spec.ExternalIPs = service.Spec.ExternalIPs
}
Expand Down
64 changes: 63 additions & 1 deletion pkg/provider/loadbalancer_test.go
Expand Up @@ -245,7 +245,7 @@ var _ = Describe("LoadBalancer", func() {
loadBalancerIP string
)

BeforeAll(func() {
BeforeEach(func() {
ctrl, ctx = gomock.WithContext(context.Background(), GinkgoT())
c = mockclient.NewMockClient(ctrl)
lb = &loadbalancer{
Expand Down Expand Up @@ -402,6 +402,68 @@ var _ = Describe("LoadBalancer", func() {

})

It("Should create new Service without selector if selectorless flag is true", func() {
checkSvcExistErr := notFoundErr
getCount := 1
port := 30001
infraServiceExist := generateInfraService(
tenantService,
[]corev1.ServicePort{
{Name: "port1", Protocol: corev1.ProtocolTCP, Port: 80, TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: int32(port)}},
},
)
infraServiceExist.Status = corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{
Ingress: []corev1.LoadBalancerIngress{
{
IP: loadBalancerIP,
},
},
},
}

c.EXPECT().
Get(ctx, client.ObjectKey{Name: "af6ebf1722bb111e9b210d663bd873d9", Namespace: "test"}, gomock.AssignableToTypeOf(&corev1.Service{})).
Return(checkSvcExistErr)

infraService1 := generateInfraService(
tenantService,
[]corev1.ServicePort{
{Name: "port1", Protocol: corev1.ProtocolTCP, Port: 80, TargetPort: intstr.IntOrString{Type: intstr.Int, IntVal: 30001}},
},
)
infraService1.Spec.Selector = nil

c.EXPECT().Create(ctx, infraService1)

for i := 0; i < getCount; i++ {
infraService2 := infraService1.DeepCopy()
if i == getCount-1 {
infraService2.Status = corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{
Ingress: []corev1.LoadBalancerIngress{
{
IP: loadBalancerIP,
},
},
},
}
}
c.EXPECT().Get(
ctx,
client.ObjectKey{Name: "af6ebf1722bb111e9b210d663bd873d9", Namespace: "test"},
gomock.AssignableToTypeOf(&corev1.Service{}),
).Do(func(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) {
infraService2.DeepCopyInto(obj.(*corev1.Service))
})
}
lb.config.Selectorless = pointer.Bool(true)
lbStatus, err := lb.EnsureLoadBalancer(ctx, clusterName, tenantService, nodes)
Expect(err).To(BeNil())
Expect(len(lbStatus.Ingress)).Should(Equal(1))
Expect(lbStatus.Ingress[0].IP).Should(Equal(loadBalancerIP))

})
It("Should return an error if service already exist", func() {
expectedError := errors.New("Test error - check if service already exist")
port := 30001
Expand Down
87 changes: 51 additions & 36 deletions vendor/golang.org/x/crypto/cryptobyte/asn1.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 11 additions & 3 deletions vendor/golang.org/x/crypto/cryptobyte/builder.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions vendor/golang.org/x/crypto/cryptobyte/string.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion vendor/golang.org/x/crypto/internal/alias/alias.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion vendor/golang.org/x/crypto/internal/alias/alias_purego.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit a25706b

Please sign in to comment.