Skip to content

Commit

Permalink
Add Network Quota Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
spjmurray committed Sep 3, 2024
1 parent 09197d3 commit d61009b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
19 changes: 19 additions & 0 deletions pkg/providers/openstack/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ import (
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/external"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/routers"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/provider"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/quotas"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/networks"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/subnets"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/trace"

"github.com/unikorn-cloud/core/pkg/util"
"github.com/unikorn-cloud/core/pkg/util/cache"
unikornv1 "github.com/unikorn-cloud/region/pkg/apis/unikorn/v1alpha1"
"github.com/unikorn-cloud/region/pkg/constants"
Expand Down Expand Up @@ -294,3 +296,20 @@ func (c *NetworkClient) RemoveRouterInterface(ctx context.Context, routerID, sub

return routers.RemoveInterface(ctx, c.client, routerID, opts).Err
}

func (c *NetworkClient) UpdateQuotas(ctx context.Context, projectID string) error {
tracer := otel.GetTracerProvider().Tracer(constants.Application)

_, span := tracer.Start(ctx, "PUT /network/v2.0/os-quota-sets")
defer span.End()

opts := &quotas.UpdateOpts{
// TODO: this is a relatively restrictive default, as floating IPs are
// in short supply. This allows 1 for a Kubernetes API load balancer,
// 1 for an ingress controller, and a spare for debugging or as a
// bastion.
FloatingIP: util.ToPointer(3),
}

return quotas.Update(ctx, c.client, projectID, opts).Err
}
9 changes: 9 additions & 0 deletions pkg/providers/openstack/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -553,6 +553,15 @@ func (p *Provider) provisionQuotas(ctx context.Context, identity *unikornv1.Open
return err
}

network, err := NewNetworkClient(ctx, providerClient, p.region.Spec.Openstack.Network)
if err != nil {
return err
}

if err := network.UpdateQuotas(ctx, *identity.Spec.ProjectID); err != nil {
return err
}

return nil
}

Expand Down

0 comments on commit d61009b

Please sign in to comment.