Skip to content

Commit

Permalink
Add location IDs to additional subject ids (#22)
Browse files Browse the repository at this point in the history
* Add location IDs to additional subject ids

Signed-off-by: Tyler Auerbeck <[email protected]>

* Switch provider to use new api client; Use location from lbData instead of provider config

Signed-off-by: Tyler Auerbeck <[email protected]>

---------

Signed-off-by: Tyler Auerbeck <[email protected]>
Co-authored-by: Tyler Auerbeck <[email protected]>
  • Loading branch information
tylerauerbeck and tylerauerbeck authored Sep 11, 2023
1 parent df7ef7b commit 15cd12d
Show file tree
Hide file tree
Showing 12 changed files with 129 additions and 71 deletions.
2 changes: 1 addition & 1 deletion cmd/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/spf13/viper"

"go.infratographer.com/ipam-api/pkg/ipamclient"
"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"
"go.infratographer.com/x/echox"
"go.infratographer.com/x/events"
"go.infratographer.com/x/oauth2x"
Expand Down
36 changes: 20 additions & 16 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ require (
github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
go.infratographer.com/ipam-api v0.0.4
go.infratographer.com/load-balancer-api v0.0.26
go.infratographer.com/loadbalancer-manager-haproxy v0.0.4
go.infratographer.com/x v0.3.7
go.uber.org/zap v1.24.0
golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1
go.infratographer.com/x v0.3.8
go.uber.org/zap v1.25.0
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63
)

require (
Expand All @@ -25,11 +26,14 @@ require (
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gobwas/ws v1.0.4 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/golang-jwt/jwt/v5 v5.0.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
github.com/google/uuid v1.3.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.2 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hasura/go-graphql-client v0.10.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jaevor/go-nanoid v1.3.0 // indirect
github.com/klauspost/compress v1.16.7 // indirect
Expand All @@ -45,22 +49,22 @@ require (
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/nats-io/jwt/v2 v2.4.1 // indirect
github.com/nats-io/nats-server/v2 v2.9.19 // indirect
github.com/nats-io/nats.go v1.27.1 // indirect
github.com/nats-io/nats.go v1.28.0 // indirect
github.com/nats-io/nkeys v0.4.4 // indirect
github.com/nats-io/nuid v1.0.1 // indirect
github.com/pelletier/go-toml/v2 v2.0.9 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.16.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.11.0 // indirect
github.com/prometheus/procfs v0.11.1 // indirect
github.com/shurcooL/graphql v0.0.0-20230714182844-3e04114ae69a // indirect
github.com/spf13/afero v1.9.5 // indirect
github.com/spf13/cast v1.5.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho v0.42.0 // indirect
Expand All @@ -75,20 +79,20 @@ require (
go.opentelemetry.io/otel/metric v1.16.0 // indirect
go.opentelemetry.io/otel/sdk v1.16.0 // indirect
go.opentelemetry.io/otel/trace v1.16.0 // indirect
go.opentelemetry.io/proto/otlp v0.20.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.11.0 // indirect
golang.org/x/net v0.12.0 // indirect
golang.org/x/crypto v0.12.0 // indirect
golang.org/x/net v0.14.0 // indirect
golang.org/x/oauth2 v0.10.0 // indirect
golang.org/x/sys v0.10.0 // indirect
golang.org/x/text v0.11.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
golang.org/x/time v0.3.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
google.golang.org/grpc v1.55.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230815205213-6bfd019c3878 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
google.golang.org/grpc v1.57.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
nhooyr.io/websocket v1.8.7 // indirect
)
127 changes: 89 additions & 38 deletions go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion internal/loadbalancer/loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ package loadbalancer
import (
"context"

"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"
"go.infratographer.com/x/gidx"
"go.uber.org/zap"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/loadbalancer/loadbalancer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"go.infratographer.com/x/gidx"
"go.uber.org/zap"

"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"

"go.infratographer.com/loadbalancer-provider-haproxy/internal/loadbalancer"
"go.infratographer.com/loadbalancer-provider-haproxy/internal/testutils/mock"
Expand Down
4 changes: 2 additions & 2 deletions internal/loadbalancer/types.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package loadbalancer

import (
"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"
"go.infratographer.com/x/gidx"
)

Expand All @@ -18,6 +18,6 @@ const (

type LoadBalancer struct {
LoadBalancerID gidx.PrefixedID
LbData *lbapi.GetLoadBalancer
LbData *lbapi.LoadBalancer
LbType int
}
19 changes: 11 additions & 8 deletions internal/server/changes.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,20 @@ import (
"go.infratographer.com/loadbalancer-provider-haproxy/internal/loadbalancer"

"go.infratographer.com/x/events"
"go.infratographer.com/x/gidx"
)

func (s *Server) processLoadBalancerChangeCreate(lb *loadbalancer.LoadBalancer) error {
// for now, limit to one IP address per loadbalancer
if len(lb.LbData.LoadBalancer.IPAddresses) == 0 {
if ip, err := ipam.RequestAddress(s.Context, s.IPAMClient, s.Logger, s.IPBlock, lb.LoadBalancerID.String(), lb.LbData.LoadBalancer.Owner.ID); err != nil {
if len(lb.LbData.IPAddresses) == 0 {
if ip, err := ipam.RequestAddress(s.Context, s.IPAMClient, s.Logger, s.IPBlock, lb.LoadBalancerID.String(), lb.LbData.Owner.ID); err != nil {
return err
} else {
msg := events.EventMessage{
EventType: "ip-address.assigned",
SubjectID: lb.LoadBalancerID,
Timestamp: time.Now().UTC(),
EventType: "ip-address.assigned",
SubjectID: lb.LoadBalancerID,
Timestamp: time.Now().UTC(),
AdditionalSubjectIDs: []gidx.PrefixedID{gidx.PrefixedID(lb.LbData.Location.ID)},
}

if _, err := s.EventsConnection.PublishEvent(s.Context, "load-balancer", msg); err != nil {
Expand All @@ -37,9 +39,10 @@ func (s *Server) processLoadBalancerChangeDelete(lb *loadbalancer.LoadBalancer)
}

msg := events.EventMessage{
EventType: "ip-address.unassigned",
SubjectID: lb.LoadBalancerID,
Timestamp: time.Now().UTC(),
EventType: "ip-address.unassigned",
SubjectID: lb.LoadBalancerID,
Timestamp: time.Now().UTC(),
AdditionalSubjectIDs: []gidx.PrefixedID{gidx.PrefixedID(lb.LbData.Location.ID)},
}

if _, err := s.EventsConnection.PublishEvent(s.Context, "load-balancer", msg); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion internal/server/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"go.infratographer.com/x/events"
"go.infratographer.com/x/gidx"

"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"

"go.infratographer.com/loadbalancer-provider-haproxy/internal/loadbalancer"
)
Expand Down
2 changes: 1 addition & 1 deletion internal/server/handlers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"github.com/stretchr/testify/assert"

"go.infratographer.com/ipam-api/pkg/ipamclient"
"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"

"go.infratographer.com/x/echox"
"go.infratographer.com/x/events"
Expand Down
2 changes: 1 addition & 1 deletion internal/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package server
import (
"context"

"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"
"go.infratographer.com/x/echox"
"go.infratographer.com/x/events"
"go.uber.org/zap"
Expand Down
2 changes: 1 addition & 1 deletion internal/server/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"go.infratographer.com/x/gidx"
"go.uber.org/zap"

"go.infratographer.com/loadbalancer-manager-haproxy/pkg/lbapi"
lbapi "go.infratographer.com/load-balancer-api/pkg/client"

"go.infratographer.com/loadbalancer-provider-haproxy/internal/server"
"go.infratographer.com/loadbalancer-provider-haproxy/internal/testutils/mock"
Expand Down
Binary file added loadbalancer-provider-haproxy
Binary file not shown.

0 comments on commit 15cd12d

Please sign in to comment.