From a30f4d9bbacc7f7755d779c29fc6dc93bd6f3aca Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Thu, 23 May 2024 19:55:11 +0400 Subject: [PATCH] feat: provide negative address filter support This allows to filter out addresses reported by Talos machines to SideroMetal and which appear under `Machine.status.addresses`. Fixes #1368 Signed-off-by: Andrey Smirnov --- Makefile | 6 +- .../cmd/events-manager/adapter.go | 72 +++++++++++-------- .../cmd/events-manager/main.go | 24 ++++++- .../config/manager/manager.yaml | 1 + go.mod | 12 ++-- go.sum | 14 ++-- go.work | 2 +- sfyra/go.mod | 24 +++---- sfyra/go.sum | 24 +++---- website/content/v0.6/Overview/installation.md | 1 + 10 files changed, 110 insertions(+), 70 deletions(-) diff --git a/Makefile b/Makefile index 736dfee5a..7bc7047db 100644 --- a/Makefile +++ b/Makefile @@ -9,11 +9,11 @@ MODULE := $(shell head -1 go.mod | cut -d' ' -f2) ARTIFACTS := _out TEST_PKGS ?= ./... -TALOS_RELEASE ?= v1.7.0 +TALOS_RELEASE ?= v1.7.2 DEFAULT_K8S_VERSION ?= v1.29.3 -TOOLS ?= ghcr.io/siderolabs/tools:v1.7.0-1-g10b2a69 -PKGS ?= v1.7.0-5-gb7f1920 +TOOLS ?= ghcr.io/siderolabs/tools:v1.7.0-2-g345db93 +PKGS ?= v1.7.0-15-g82b048a SFYRA_CLUSTERCTL_CONFIG ?= $(HOME)/.cluster-api/clusterctl.sfyra.yaml diff --git a/app/sidero-controller-manager/cmd/events-manager/adapter.go b/app/sidero-controller-manager/cmd/events-manager/adapter.go index 9279a0223..77f5ed009 100644 --- a/app/sidero-controller-manager/cmd/events-manager/adapter.go +++ b/app/sidero-controller-manager/cmd/events-manager/adapter.go @@ -17,9 +17,10 @@ import ( "sigs.k8s.io/cluster-api/util/patch" runtimeclient "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/siderolabs/gen/xslices" + sidero "github.com/siderolabs/sidero/app/caps-controller-manager/api/v1alpha3" "github.com/siderolabs/sidero/app/sidero-controller-manager/internal/siderolink" - "github.com/siderolabs/siderolink/pkg/events" "github.com/siderolabs/talos/pkg/machinery/api/common" @@ -30,17 +31,19 @@ import ( type Adapter struct { Sink *events.Sink - logger *zap.Logger - annotator *siderolink.Annotator - metalClient runtimeclient.Client + logger *zap.Logger + annotator *siderolink.Annotator + metalClient runtimeclient.Client + negativeAddressFilter []netip.Prefix } // NewAdapter initializes new server. -func NewAdapter(metalClient runtimeclient.Client, annotator *siderolink.Annotator, logger *zap.Logger) *Adapter { +func NewAdapter(metalClient runtimeclient.Client, annotator *siderolink.Annotator, logger *zap.Logger, negativeAddressFilter []netip.Prefix) *Adapter { return &Adapter{ - logger: logger, - annotator: annotator, - metalClient: metalClient, + logger: logger, + annotator: annotator, + metalClient: metalClient, + negativeAddressFilter: negativeAddressFilter, } } @@ -62,9 +65,9 @@ func (a *Adapter) HandleEvent(ctx context.Context, event events.Event) error { return err } - ip := ipPort.Addr().String() + ip := ipPort.Addr() - annotation, _ := a.annotator.Get(ip) + annotation, _ := a.annotator.Get(ip.String()) if annotation.ServerUUID != "" { fields = append(fields, zap.String("server_uuid", annotation.ServerUUID)) @@ -88,23 +91,32 @@ func (a *Adapter) HandleEvent(ctx context.Context, event events.Event) error { switch event := event.Payload.(type) { case *machine.AddressEvent: - fields = append(fields, zap.String("hostname", event.GetHostname()), zap.String("addresses", strings.Join(event.GetAddresses(), ","))) - - // filter out SideroLink address from the list - addresses := event.Addresses - - n := 0 - - for _, addr := range addresses { - if addr != ip { - addresses[n] = addr - n++ - } - } - - addresses = addresses[:n] + fields = append(fields, zap.String("hostname", event.GetHostname()), zap.Strings("addresses", event.GetAddresses())) + + // filter out SideroLink address and other negative matches from the list + addresses := xslices.Filter(event.Addresses, + func(addrStr string) bool { + addr, err := netip.ParseAddr(addrStr) + if err != nil { + // invalid address + return false + } + + if addr == ip { + // SideroLink address + return false + } + + for _, prefix := range a.negativeAddressFilter { + if prefix.Contains(addr) { + return false + } + } + + return true + }) - err = a.patchServerBinding(ctx, ip, func(serverbinding *sidero.ServerBinding) { + err = a.patchServerBinding(ctx, ip.String(), func(serverbinding *sidero.ServerBinding) { serverbinding.Spec.Addresses = addresses serverbinding.Spec.Hostname = event.Hostname }) @@ -114,19 +126,19 @@ func (a *Adapter) HandleEvent(ctx context.Context, event events.Event) error { case *machine.ConfigValidationErrorEvent: fields = append(fields, zap.Error(fmt.Errorf(event.GetError()))) - if err = a.handleConfigValidationFailedEvent(ctx, ip, event); err != nil { + if err = a.handleConfigValidationFailedEvent(ctx, ip.String(), event); err != nil { return err } case *machine.ConfigLoadErrorEvent: fields = append(fields, zap.Error(fmt.Errorf(event.GetError()))) - if err = a.handleConfigLoadFailedEvent(ctx, ip, event); err != nil { + if err = a.handleConfigLoadFailedEvent(ctx, ip.String(), event); err != nil { return err } case *machine.PhaseEvent: fields = append(fields, zap.String("phase", event.GetPhase()), zap.String("action", event.GetAction().String())) - if err = a.handlePhaseEvent(ctx, ip, event); err != nil { + if err = a.handlePhaseEvent(ctx, ip.String(), event); err != nil { return err } case *machine.TaskEvent: @@ -137,7 +149,7 @@ func (a *Adapter) HandleEvent(ctx context.Context, event events.Event) error { case *machine.SequenceEvent: fields = append(fields, zap.String("sequence", event.GetSequence()), zap.String("action", event.GetAction().String())) - if err = a.handleSequenceEvent(ctx, ip, event); err != nil { + if err = a.handleSequenceEvent(ctx, ip.String(), event); err != nil { return err } diff --git a/app/sidero-controller-manager/cmd/events-manager/main.go b/app/sidero-controller-manager/cmd/events-manager/main.go index ff26744b4..8d3abc8a1 100644 --- a/app/sidero-controller-manager/cmd/events-manager/main.go +++ b/app/sidero-controller-manager/cmd/events-manager/main.go @@ -7,14 +7,15 @@ package main import ( "context" "errors" - "flag" "fmt" "net" + "net/netip" "os" "os/signal" "syscall" "github.com/siderolabs/talos/pkg/machinery/api/machine" + "github.com/spf13/pflag" "go.uber.org/zap" "golang.org/x/sync/errgroup" "google.golang.org/grpc" @@ -26,8 +27,11 @@ import ( "github.com/siderolabs/sidero/app/sidero-controller-manager/internal/siderolink" ) +var negativeAddressFilter []string + func main() { - flag.Parse() + pflag.StringSliceVar(&negativeAddressFilter, "negative-address-filter", nil, "list of CIDR prefixes to filter out from the address events") + pflag.Parse() if err := run(); err != nil { fmt.Fprintf(os.Stderr, "error: %s", err) @@ -47,6 +51,21 @@ func run() error { ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer cancel() + negativeFilter := make([]netip.Prefix, 0, len(negativeAddressFilter)) + + for _, prefixStr := range negativeAddressFilter { + if prefixStr == "-" { + continue + } + + prefix, err := netip.ParsePrefix(prefixStr) + if err != nil { + return err + } + + negativeFilter = append(negativeFilter, prefix) + } + eg, ctx := errgroup.WithContext(ctx) address := fmt.Sprintf(":%d", siderolink.EventsSinkPort) @@ -68,6 +87,7 @@ func run() error { adapter := NewAdapter(client, annotator, logger.With(zap.String("component", "sink")), + negativeFilter, ) srv := sink.NewSink(adapter, diff --git a/app/sidero-controller-manager/config/manager/manager.yaml b/app/sidero-controller-manager/config/manager/manager.yaml index 0f63217e6..a99f2d2e8 100644 --- a/app/sidero-controller-manager/config/manager/manager.yaml +++ b/app/sidero-controller-manager/config/manager/manager.yaml @@ -175,6 +175,7 @@ spec: memory: 128Mi - command: - /events-manager + - --negative-address-filter=${SIDERO_CONTROLLER_MANAGER_EVENTS_NEGATIVE_ADDRESS_FILTER:=-} image: controller:latest imagePullPolicy: Always name: serverevents diff --git a/go.mod b/go.mod index dd38e5207..39ac123a1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/siderolabs/sidero -go 1.22.2 +go 1.22.3 replace github.com/pensando/goipmi v0.0.0-20200303170213-e858ec1cf0b5 => github.com/talos-systems/goipmi v0.0.0-20211214143420-35f956689e67 @@ -9,8 +9,8 @@ require ( github.com/google/go-cmp v0.6.0 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/hashicorp/go-multierror v1.1.1 - github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8 - github.com/jsimonetti/rtnetlink v1.4.1 + github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49 + github.com/jsimonetti/rtnetlink v1.4.2 github.com/pensando/goipmi v0.0.0-20200303170213-e858ec1cf0b5 github.com/pin/tftp v2.1.1-0.20200117065540-2f79be2dba4e+incompatible github.com/pkg/errors v0.9.1 @@ -25,13 +25,13 @@ require ( github.com/siderolabs/go-smbios v0.3.2 github.com/siderolabs/grpc-proxy v0.4.0 github.com/siderolabs/siderolink v0.3.5 - github.com/siderolabs/talos/pkg/machinery v1.7.0 + github.com/siderolabs/talos/pkg/machinery v1.7.2 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 golang.org/x/net v0.24.0 golang.org/x/sync v0.7.0 - golang.org/x/sys v0.19.0 + golang.org/x/sys v0.20.0 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230429144221-925a1e7659e6 google.golang.org/grpc v1.62.1 google.golang.org/protobuf v1.33.0 @@ -42,7 +42,7 @@ require ( k8s.io/client-go v0.29.3 k8s.io/component-base v0.29.3 k8s.io/klog/v2 v2.110.1 - sigs.k8s.io/cluster-api v1.7.0 + sigs.k8s.io/cluster-api v1.7.2 sigs.k8s.io/controller-runtime v0.17.3 ) diff --git a/go.sum b/go.sum index 594a49b57..4cb7acabe 100644 --- a/go.sum +++ b/go.sum @@ -166,6 +166,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8 h1:V3plQrMHRWOB5zMm3yNqvBxDQVW1+/wHBSok5uPdmVs= github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8/go.mod h1:izxuNQZeFrbx2nK2fAyN5iNUB34Fe9j0nK4PwLzAkKw= +github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49 h1:/OuvSMGT9+xnyZ+7MZQ1zdngaCCAdPoSw8B/uurZ7pg= +github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49/go.mod h1:KclMyHxX06VrVr0DJmeFSUb1ankt7xTfoOA35pCkoic= github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -175,6 +177,8 @@ github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtL github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= github.com/jsimonetti/rtnetlink v1.4.1 h1:JfD4jthWBqZMEffc5RjgmlzpYttAVw1sdnmiNaPO3hE= github.com/jsimonetti/rtnetlink v1.4.1/go.mod h1:xJjT7t59UIZ62GLZbv6PLLo8VFrostJMPBAheR6OM8w= +github.com/jsimonetti/rtnetlink v1.4.2 h1:Df9w9TZ3npHTyDn0Ev9e1uzmN2odmXd0QX+J5GTEn90= +github.com/jsimonetti/rtnetlink v1.4.2/go.mod h1:92s6LJdE+1iOrw+F2/RO7LYI2Qd8pPpFNNUYW06gcoM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -291,8 +295,8 @@ github.com/siderolabs/net v0.4.0 h1:1bOgVay/ijPkJz4qct98nHsiB/ysLQU0KLoBC4qLm7I= github.com/siderolabs/net v0.4.0/go.mod h1:/ibG+Hm9HU27agp5r9Q3eZicEfjquzNzQNux5uEk0kM= github.com/siderolabs/siderolink v0.3.5 h1:sU4WNGCRGQYZ/sQZaVQbGfUNOqS561oL4kafKlo4FDY= github.com/siderolabs/siderolink v0.3.5/go.mod h1:/7Dg0Nkh4q/8yqsY/VirDOTOFOqRvPikagCoyf3+Mf4= -github.com/siderolabs/talos/pkg/machinery v1.7.0 h1:fZiqXwdraM0lfN6/MtBO6sSkeUCaKBtGfP7VUBpOXao= -github.com/siderolabs/talos/pkg/machinery v1.7.0/go.mod h1:YBl9KDCD45Uc7N0rXBY1JqovUn1n46ekUPSNbEVZzQU= +github.com/siderolabs/talos/pkg/machinery v1.7.2 h1:BOE+GM6iUpSb0bOZIajF9h/vNKVtjAxu+ntAPPQrugw= +github.com/siderolabs/talos/pkg/machinery v1.7.2/go.mod h1:85iUG7/XS654ki2Rkk7kTEU8YsnNhj6vAr7TnpbOebk= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -442,6 +446,8 @@ golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= @@ -557,8 +563,8 @@ k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6R k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 h1:TgtAeesdhpm2SGwkQasmbeqDo8th5wOBA5h/AjTKA4I= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0/go.mod h1:VHVDI/KrK4fjnV61bE2g3sA7tiETLn8sooImelsCx3Y= -sigs.k8s.io/cluster-api v1.7.0 h1:sWK6xs2MkCqPZhumsrti0OdKyGcu/c5aBz9XAWFIq5E= -sigs.k8s.io/cluster-api v1.7.0/go.mod h1:V9ZhKLvQtsDODwjXOKgbitjyCmC71yMBwDcMyNNIov0= +sigs.k8s.io/cluster-api v1.7.2 h1:bRE8zoao7ajuLC0HijqfZVcubKQCPlZ04HMgcA53FGE= +sigs.k8s.io/cluster-api v1.7.2/go.mod h1:V9ZhKLvQtsDODwjXOKgbitjyCmC71yMBwDcMyNNIov0= sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/go.work b/go.work index 50b8f02ba..2be945556 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.22.2 +go 1.22.3 use ( . diff --git a/sfyra/go.mod b/sfyra/go.mod index 7e19129a2..846a07727 100644 --- a/sfyra/go.mod +++ b/sfyra/go.mod @@ -1,6 +1,6 @@ module github.com/siderolabs/sidero/sfyra -go 1.22.2 +go 1.22.3 replace ( // local replace @@ -28,18 +28,18 @@ require ( github.com/siderolabs/go-retry v0.3.3 github.com/siderolabs/net v0.4.0 github.com/siderolabs/sidero v0.0.0-00010101000000-000000000000 - github.com/siderolabs/talos v1.7.0 - github.com/siderolabs/talos/pkg/machinery v1.7.0 + github.com/siderolabs/talos v1.7.2 + github.com/siderolabs/talos/pkg/machinery v1.7.2 github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 google.golang.org/grpc v1.62.1 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.30.0 + k8s.io/api v0.30.1 k8s.io/apiextensions-apiserver v0.29.3 - k8s.io/apimachinery v0.30.0 - k8s.io/client-go v0.30.0 - sigs.k8s.io/cluster-api v1.7.0 + k8s.io/apimachinery v0.30.1 + k8s.io/client-go v0.30.1 + sigs.k8s.io/cluster-api v1.7.2 sigs.k8s.io/controller-runtime v0.17.3 ) @@ -102,10 +102,10 @@ require ( github.com/huandu/xstrings v1.3.3 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8 // indirect + github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/josharian/native v1.1.0 // indirect - github.com/jsimonetti/rtnetlink v1.4.1 // indirect + github.com/jsimonetti/rtnetlink v1.4.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.7 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -169,7 +169,7 @@ require ( golang.org/x/net v0.24.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.19.0 // indirect + golang.org/x/sys v0.20.0 // indirect golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect @@ -181,9 +181,9 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/apiserver v0.30.0 // indirect + k8s.io/apiserver v0.30.1 // indirect k8s.io/cluster-bootstrap v0.29.3 // indirect - k8s.io/component-base v0.30.0 // indirect + k8s.io/component-base v0.30.1 // indirect k8s.io/klog/v2 v2.120.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect diff --git a/sfyra/go.sum b/sfyra/go.sum index bbfa27c6a..455d3dcba 100644 --- a/sfyra/go.sum +++ b/sfyra/go.sum @@ -180,14 +180,14 @@ github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8 h1:V3plQrMHRWOB5zMm3yNqvBxDQVW1+/wHBSok5uPdmVs= -github.com/insomniacslk/dhcp v0.0.0-20240227161007-c728f5dd21c8/go.mod h1:izxuNQZeFrbx2nK2fAyN5iNUB34Fe9j0nK4PwLzAkKw= +github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49 h1:/OuvSMGT9+xnyZ+7MZQ1zdngaCCAdPoSw8B/uurZ7pg= +github.com/insomniacslk/dhcp v0.0.0-20240419123447-f1cffa2c0c49/go.mod h1:KclMyHxX06VrVr0DJmeFSUb1ankt7xTfoOA35pCkoic= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= -github.com/jsimonetti/rtnetlink v1.4.1 h1:JfD4jthWBqZMEffc5RjgmlzpYttAVw1sdnmiNaPO3hE= -github.com/jsimonetti/rtnetlink v1.4.1/go.mod h1:xJjT7t59UIZ62GLZbv6PLLo8VFrostJMPBAheR6OM8w= +github.com/jsimonetti/rtnetlink v1.4.2 h1:Df9w9TZ3npHTyDn0Ev9e1uzmN2odmXd0QX+J5GTEn90= +github.com/jsimonetti/rtnetlink v1.4.2/go.mod h1:92s6LJdE+1iOrw+F2/RO7LYI2Qd8pPpFNNUYW06gcoM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -324,10 +324,10 @@ github.com/siderolabs/net v0.4.0 h1:1bOgVay/ijPkJz4qct98nHsiB/ysLQU0KLoBC4qLm7I= github.com/siderolabs/net v0.4.0/go.mod h1:/ibG+Hm9HU27agp5r9Q3eZicEfjquzNzQNux5uEk0kM= github.com/siderolabs/protoenc v0.2.1 h1:BqxEmeWQeMpNP3R6WrPqDatX8sM/r4t97OP8mFmg6GA= github.com/siderolabs/protoenc v0.2.1/go.mod h1:StTHxjet1g11GpNAWiATgc8K0HMKiFSEVVFOa/H0otc= -github.com/siderolabs/talos v1.7.0 h1:rVTEPwQeLk3BAEkFwxxmk0vA5iRNjYthG/CJnOYCZso= -github.com/siderolabs/talos v1.7.0/go.mod h1:Wp+MOisgPh9u7CvAvSitS78qYa9KlLeKYXlQVFGWEKQ= -github.com/siderolabs/talos/pkg/machinery v1.7.0 h1:fZiqXwdraM0lfN6/MtBO6sSkeUCaKBtGfP7VUBpOXao= -github.com/siderolabs/talos/pkg/machinery v1.7.0/go.mod h1:YBl9KDCD45Uc7N0rXBY1JqovUn1n46ekUPSNbEVZzQU= +github.com/siderolabs/talos v1.7.2 h1:Cxh1YARe/Ara2y9kTyfUPPoYKxL36B1Eymz9JNHK8ks= +github.com/siderolabs/talos v1.7.2/go.mod h1:JTz89pJHcsUDsscOxhcZUtHLejgI8YHElaJET8xdPCg= +github.com/siderolabs/talos/pkg/machinery v1.7.2 h1:BOE+GM6iUpSb0bOZIajF9h/vNKVtjAxu+ntAPPQrugw= +github.com/siderolabs/talos/pkg/machinery v1.7.2/go.mod h1:85iUG7/XS654ki2Rkk7kTEU8YsnNhj6vAr7TnpbOebk= github.com/siderolabs/tcpproxy v0.1.0 h1:IbkS9vRhjMOscc1US3M5P1RnsGKFgB6U5IzUk+4WkKA= github.com/siderolabs/tcpproxy v0.1.0/go.mod h1:onn6CPPj/w1UNqQ0U97oRPF0CqbrgEApYCw4P9IiCW8= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= @@ -473,8 +473,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -568,8 +568,8 @@ k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6R k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 h1:TgtAeesdhpm2SGwkQasmbeqDo8th5wOBA5h/AjTKA4I= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0/go.mod h1:VHVDI/KrK4fjnV61bE2g3sA7tiETLn8sooImelsCx3Y= -sigs.k8s.io/cluster-api v1.7.0 h1:sWK6xs2MkCqPZhumsrti0OdKyGcu/c5aBz9XAWFIq5E= -sigs.k8s.io/cluster-api v1.7.0/go.mod h1:V9ZhKLvQtsDODwjXOKgbitjyCmC71yMBwDcMyNNIov0= +sigs.k8s.io/cluster-api v1.7.2 h1:bRE8zoao7ajuLC0HijqfZVcubKQCPlZ04HMgcA53FGE= +sigs.k8s.io/cluster-api v1.7.2/go.mod h1:V9ZhKLvQtsDODwjXOKgbitjyCmC71yMBwDcMyNNIov0= sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/website/content/v0.6/Overview/installation.md b/website/content/v0.6/Overview/installation.md index 5960c1b84..eb2d87027 100644 --- a/website/content/v0.6/Overview/installation.md +++ b/website/content/v0.6/Overview/installation.md @@ -28,6 +28,7 @@ variables or as variables in the `clusterctl` configuration: - `SIDERO_CONTROLLER_MANAGER_IPMI_PXE_METHOD` (`uefi`): IPMI boot from PXE method: `uefi` for UEFI boot or `bios` for BIOS boot - `SIDERO_CONTROLLER_MANAGER_BOOT_FROM_DISK_METHOD` (`ipxe-exit`): configures the way Sidero forces server to boot from disk when server hits iPXE server after initial install: `ipxe-exit` returns iPXE script with `exit` command, `http-404` returns HTTP 404 Not Found error, `ipxe-sanboot` uses iPXE `sanboot` command to boot from the first hard disk (can be also configured on `ServerClass`/`Server` method) - `SIDERO_CONTROLLER_MANAGER_DISABLE_DHCP_PROXY` (`false`): disable DHCP Proxy service (enabled by default) +- `SIDERO_CONTROLLER_MANAGER_EVENTS_NEGATIVE_ADDRESS_FILTER` (empty): negative filter for reported machine addresses (e.g. `10.0.0.0/8` won't publish any `10.x` addresses to the `MetalMachine` status) Sidero provides four endpoints which should be made available to the infrastructure: