Merge pull request #10080 from hashicorp/b-gw-updated
consul/connect: correctly detect when connect tasks not updated
This commit is contained in:
commit
24a1238e48
|
@ -23,6 +23,7 @@ BUG FIXES:
|
|||
* consul/connect: Fixed a bug preventing more than one connect gateway per Nomad client [[GH-9849](https://github.com/hashicorp/nomad/pull/9849)]
|
||||
* consul/connect: Fixed a bug where connect sidecar services would be re-registered unnecessarily. [[GH-10059](https://github.com/hashicorp/nomad/pull/10059)]
|
||||
* consul/connect: Fixed a bug where the sidecar health checks would fail if `host_network` was defined. [[GH-9975](https://github.com/hashicorp/nomad/issues/9975)]
|
||||
* consul/connect: Fixed a bug where tasks with connect services might be updated when no update necessary. [[GH-10077](https://github.com/hashicorp/nomad/issues/10077)]
|
||||
* deployments: Fixed a bug where deployments with multiple task groups and manual promotion would fail if promoted after the progress deadline. [[GH-10042](https://github.com/hashicorp/nomad/issues/10042)]
|
||||
* drivers/docker: Fixed a bug preventing multiple ports to be mapped to the same container port [[GH-9951](https://github.com/hashicorp/nomad/issues/9951)]
|
||||
* driver/qemu: Fixed a bug where network namespaces were not supported for QEMU workloads [[GH-9861](https://github.com/hashicorp/nomad/pull/9861)]
|
||||
|
|
|
@ -467,7 +467,7 @@ func connectServiceUpdated(servicesA, servicesB []*structs.Service) bool {
|
|||
// update.
|
||||
func connectUpdated(connectA, connectB *structs.ConsulConnect) bool {
|
||||
if connectA == nil || connectB == nil {
|
||||
return connectA == connectB
|
||||
return connectA != connectB
|
||||
}
|
||||
|
||||
if connectA.Native != connectB.Native {
|
||||
|
@ -492,7 +492,7 @@ func connectUpdated(connectA, connectB *structs.ConsulConnect) bool {
|
|||
|
||||
func connectSidecarServiceUpdated(ssA, ssB *structs.ConsulSidecarService) bool {
|
||||
if ssA == nil || ssB == nil {
|
||||
return ssA == ssB
|
||||
return ssA != ssB
|
||||
}
|
||||
|
||||
if ssA.Port != ssB.Port {
|
||||
|
|
|
@ -1386,3 +1386,77 @@ func TestUtil_UpdateNonTerminalAllocsToLost(t *testing.T) {
|
|||
expected = []string{}
|
||||
require.True(t, reflect.DeepEqual(allocsLost, expected), "actual: %v, expected: %v", allocsLost, expected)
|
||||
}
|
||||
|
||||
func TestUtil_connectUpdated(t *testing.T) {
|
||||
t.Run("both nil", func(t *testing.T) {
|
||||
require.False(t, connectUpdated(nil, nil))
|
||||
})
|
||||
|
||||
t.Run("one nil", func(t *testing.T) {
|
||||
require.True(t, connectUpdated(nil, new(structs.ConsulConnect)))
|
||||
})
|
||||
|
||||
t.Run("native differ", func(t *testing.T) {
|
||||
a := &structs.ConsulConnect{Native: true}
|
||||
b := &structs.ConsulConnect{Native: false}
|
||||
require.True(t, connectUpdated(a, b))
|
||||
})
|
||||
|
||||
t.Run("gateway differ", func(t *testing.T) {
|
||||
a := &structs.ConsulConnect{Gateway: &structs.ConsulGateway{
|
||||
Ingress: new(structs.ConsulIngressConfigEntry),
|
||||
}}
|
||||
b := &structs.ConsulConnect{Gateway: &structs.ConsulGateway{
|
||||
Terminating: new(structs.ConsulTerminatingConfigEntry),
|
||||
}}
|
||||
require.True(t, connectUpdated(a, b))
|
||||
})
|
||||
|
||||
t.Run("sidecar task differ", func(t *testing.T) {
|
||||
a := &structs.ConsulConnect{SidecarTask: &structs.SidecarTask{
|
||||
Driver: "exec",
|
||||
}}
|
||||
b := &structs.ConsulConnect{SidecarTask: &structs.SidecarTask{
|
||||
Driver: "docker",
|
||||
}}
|
||||
require.True(t, connectUpdated(a, b))
|
||||
})
|
||||
|
||||
t.Run("sidecar service differ", func(t *testing.T) {
|
||||
a := &structs.ConsulConnect{SidecarService: &structs.ConsulSidecarService{
|
||||
Port: "1111",
|
||||
}}
|
||||
b := &structs.ConsulConnect{SidecarService: &structs.ConsulSidecarService{
|
||||
Port: "2222",
|
||||
}}
|
||||
require.True(t, connectUpdated(a, b))
|
||||
})
|
||||
|
||||
t.Run("same", func(t *testing.T) {
|
||||
a := new(structs.ConsulConnect)
|
||||
b := new(structs.ConsulConnect)
|
||||
require.False(t, connectUpdated(a, b))
|
||||
})
|
||||
}
|
||||
|
||||
func TestUtil_connectSidecarServiceUpdated(t *testing.T) {
|
||||
t.Run("both nil", func(t *testing.T) {
|
||||
require.False(t, connectSidecarServiceUpdated(nil, nil))
|
||||
})
|
||||
|
||||
t.Run("one nil", func(t *testing.T) {
|
||||
require.True(t, connectSidecarServiceUpdated(nil, new(structs.ConsulSidecarService)))
|
||||
})
|
||||
|
||||
t.Run("ports differ", func(t *testing.T) {
|
||||
a := &structs.ConsulSidecarService{Port: "1111"}
|
||||
b := &structs.ConsulSidecarService{Port: "2222"}
|
||||
require.True(t, connectSidecarServiceUpdated(a, b))
|
||||
})
|
||||
|
||||
t.Run("same", func(t *testing.T) {
|
||||
a := &structs.ConsulSidecarService{Port: "1111"}
|
||||
b := &structs.ConsulSidecarService{Port: "1111"}
|
||||
require.False(t, connectSidecarServiceUpdated(a, b))
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue