mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-22 08:24:25 +01:00
Update dependencies (2022-11) (#780)
* update dependencies
Update to latest dependencies on Nov 21, 2022.
Here are the diffs for deps that actually end up in the binaries (based
on `go version -m`)
Updated github.com/imdario/mergo https://github.com/imdario/mergo/compare/v0.3.12...v0.3.13
Updated github.com/matttproud/golang_protobuf_extensions https://github.com/matttproud/golang_protobuf_extensions/compare/v1.0.1...v1.0.4
Updated github.com/miekg/dns https://github.com/miekg/dns/compare/v1.1.48...v1.1.50
Updated github.com/prometheus/client_golang https://github.com/prometheus/client_golang/compare/v1.12.1...v1.14.0
Updated github.com/prometheus/client_model https://github.com/prometheus/client_model/compare/v0.2.0...v0.3.0
Updated github.com/prometheus/common https://github.com/prometheus/common/compare/v0.33.0...v0.37.0
Updated github.com/prometheus/procfs https://github.com/prometheus/procfs/compare/v0.7.3...v0.8.0
Updated github.com/sirupsen/logrus https://github.com/sirupsen/logrus/compare/v1.8.1...v1.9.0
Updated github.com/vishvananda/netns https://github.com/vishvananda/netns/compare/50045581ed74...v0.0.1
Updated golang.org/x/crypto https://github.com/golang/crypto/compare/ae2d96664a29...v0.3.0
Updated golang.org/x/net https://github.com/golang/net/compare/749bd193bc2b...v0.2.0
Updated golang.org/x/sys https://github.com/golang/sys/compare/289d7a0edf71...v0.2.0
Updated golang.org/x/term https://github.com/golang/term/compare/03fcf44c2211...v0.2.0
Updated google.golang.org/protobuf v1.28.0...v1.28.1
* test that mergo merges like we expect
This commit is contained in:
@@ -7,8 +7,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/imdario/mergo"
|
||||
"github.com/slackhq/nebula/test"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
func TestConfig_Load(t *testing.T) {
|
||||
@@ -147,3 +150,77 @@ func TestConfig_ReloadConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Ensure mergo merges are done the way we expect.
|
||||
// This is needed to test for potential regressions, like:
|
||||
// - https://github.com/imdario/mergo/issues/187
|
||||
func TestConfig_MergoMerge(t *testing.T) {
|
||||
configs := [][]byte{
|
||||
[]byte(`
|
||||
listen:
|
||||
port: 1234
|
||||
`),
|
||||
[]byte(`
|
||||
firewall:
|
||||
inbound:
|
||||
- port: 443
|
||||
proto: tcp
|
||||
groups:
|
||||
- server
|
||||
- port: 443
|
||||
proto: tcp
|
||||
groups:
|
||||
- webapp
|
||||
`),
|
||||
[]byte(`
|
||||
listen:
|
||||
host: 0.0.0.0
|
||||
port: 4242
|
||||
firewall:
|
||||
outbound:
|
||||
- port: any
|
||||
proto: any
|
||||
host: any
|
||||
inbound:
|
||||
- port: any
|
||||
proto: icmp
|
||||
host: any
|
||||
`),
|
||||
}
|
||||
|
||||
var m map[any]any
|
||||
|
||||
// merge the same way config.parse() merges
|
||||
for _, b := range configs {
|
||||
var nm map[any]any
|
||||
err := yaml.Unmarshal(b, &nm)
|
||||
require.NoError(t, err)
|
||||
|
||||
// We need to use WithAppendSlice so that firewall rules in separate
|
||||
// files are appended together
|
||||
err = mergo.Merge(&nm, m, mergo.WithAppendSlice)
|
||||
m = nm
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
t.Logf("Merged Config: %#v", m)
|
||||
mYaml, err := yaml.Marshal(m)
|
||||
require.NoError(t, err)
|
||||
t.Logf("Merged Config as YAML:\n%s", mYaml)
|
||||
|
||||
// If a bug is present, some items might be replaced instead of merged like we expect
|
||||
expected := map[any]any{
|
||||
"firewall": map[any]any{
|
||||
"inbound": []any{
|
||||
map[any]any{"host": "any", "port": "any", "proto": "icmp"},
|
||||
map[any]any{"groups": []any{"server"}, "port": 443, "proto": "tcp"},
|
||||
map[any]any{"groups": []any{"webapp"}, "port": 443, "proto": "tcp"}},
|
||||
"outbound": []any{
|
||||
map[any]any{"host": "any", "port": "any", "proto": "any"}}},
|
||||
"listen": map[any]any{
|
||||
"host": "0.0.0.0",
|
||||
"port": 4242,
|
||||
},
|
||||
}
|
||||
assert.Equal(t, expected, m)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user