Use a classic loadbalancer instead of networklb

This commit is contained in:
nemunaire 2026-06-06 10:54:14 +09:00
commit 52127d2266

75
host.go
View file

@ -7,7 +7,7 @@ import (
"github.com/pulumi/pulumi-oci/sdk/go/oci/core"
"github.com/pulumi/pulumi-oci/sdk/go/oci/identity"
"github.com/pulumi/pulumi-oci/sdk/go/oci/networkloadbalancer"
"github.com/pulumi/pulumi-oci/sdk/go/oci/loadbalancer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
@ -16,13 +16,15 @@ func setupHostMain(ctx *pulumi.Context, ocicfg *config.Config, compartment *iden
cfg := config.New(ctx, "")
// Setup load-balancer
nlb, err := networkloadbalancer.NewNetworkLoadBalancer(ctx, "happy-nlb", &networkloadbalancer.NetworkLoadBalancerArgs{
DisplayName: pulumi.Sprintf("%s-happy-nlb", ctx.Stack()),
SubnetId: subnet.ID(),
CompartmentId: compartment.ID(),
IsPreserveSourceDestination: pulumi.Bool(false),
IsPrivate: pulumi.Bool(false),
NlbIpVersion: pulumi.String("IPV4"),
nlb, err := loadbalancer.NewLoadBalancer(ctx, "happy-nlb", &loadbalancer.LoadBalancerArgs{
DisplayName: pulumi.Sprintf("%s-happy-nlb", ctx.Stack()),
CompartmentId: compartment.ID(),
SubnetIds: pulumi.StringArray{subnet.ID()},
Shape: pulumi.String("flexible"),
ShapeDetails: &loadbalancer.LoadBalancerShapeDetailsArgs{
MaximumBandwidthInMbps: pulumi.Int(10),
MinimumBandwidthInMbps: pulumi.Int(10),
},
})
if err != nil {
return err
@ -30,17 +32,41 @@ func setupHostMain(ctx *pulumi.Context, ocicfg *config.Config, compartment *iden
ctx.Export("nlb-ip", nlb.IpAddresses)
nlbset4, err := networkloadbalancer.NewBackendSet(ctx, "happydomain-nlbset4", &networkloadbalancer.BackendSetArgs{
HealthChecker: &networkloadbalancer.BackendSetHealthCheckerArgs{
nlbset4, err := loadbalancer.NewBackendSet(ctx, "happy-nlbset4", &loadbalancer.BackendSetArgs{
HealthChecker: &loadbalancer.BackendSetHealthCheckerArgs{
Protocol: pulumi.String("TCP"),
Port: pulumi.Int(443),
},
Name: pulumi.Sprintf("%s-happy-nlbset4", ctx.Stack()),
LoadBalancerId: nlb.ID(),
Policy: pulumi.String("LEAST_CONNECTIONS"),
})
if err != nil {
return err
}
_, err = loadbalancer.NewListener(ctx, "local-ia-listener4", &loadbalancer.ListenerArgs{
DefaultBackendSetName: nlbset4.Name,
Name: pulumi.Sprintf("%s-happy-nlb-listen4", ctx.Stack()),
LoadBalancerId: nlb.ID(),
Port: pulumi.Int(443),
Protocol: pulumi.String("TCP"),
})
if err != nil {
return err
}
/*nlbset6, err := loadbalancer.NewBackendSet(ctx, "happy-nlbset6", &loadbalancer.BackendSetArgs{
HealthChecker: &loadbalancer.BackendSetHealthCheckerArgs{
Protocol: pulumi.String("HTTPS"),
Port: pulumi.Int(443),
UrlPath: pulumi.String("/api/version"),
ReturnCode: pulumi.Int(200),
},
Name: pulumi.Sprintf("%s-happydomain-nlbset4", ctx.Stack()),
NetworkLoadBalancerId: nlb.ID(),
Name: pulumi.Sprintf("%s-happy-nlbset6", ctx.Stack()),
LoadBalancerId: nlb.ID(),
Policy: pulumi.String("FIVE_TUPLE"),
IpVersion: pulumi.String("IPV4"),
IpVersion: pulumi.String("IPV6"),
IsPreserveSource: pulumi.Bool(true),
IsFailOpen: pulumi.Bool(true),
})
@ -48,17 +74,17 @@ func setupHostMain(ctx *pulumi.Context, ocicfg *config.Config, compartment *iden
return err
}
_, err = networkloadbalancer.NewListener(ctx, "happydomain-listener4", &networkloadbalancer.ListenerArgs{
DefaultBackendSetName: nlbset4.Name,
Name: pulumi.Sprintf("%s-happydomain-nlb-listen4", ctx.Stack()),
NetworkLoadBalancerId: nlb.ID(),
_, err = loadbalancer.NewListener(ctx, "local-ia-listener6", &loadbalancer.ListenerArgs{
DefaultBackendSetName: nlbset6.Name,
Name: pulumi.Sprintf("%s-happy-nlb-listen6", ctx.Stack()),
LoadBalancerId: nlb.ID(),
Port: pulumi.Int(0),
Protocol: pulumi.String("TCP"),
IpVersion: pulumi.String("IPV4"),
IpVersion: pulumi.String("IPV6"),
})
if err != nil {
return err
}
}*/
// Get boot image
imageId := compartment.CompartmentId.ApplyT(func(id string) string {
@ -152,12 +178,11 @@ func setupHostMain(ctx *pulumi.Context, ocicfg *config.Config, compartment *iden
ctx.Export("instance-ip", instance.PublicIp)
// Add host to backend
_, err = networkloadbalancer.NewBackend(ctx, "happydomain-lb4", &networkloadbalancer.BackendArgs{
BackendSetName: nlbset4.Name,
NetworkLoadBalancerId: nlb.ID(),
Port: pulumi.Int(0),
IpAddress: instance.PrivateIp,
TargetId: instance.ID(),
_, err = loadbalancer.NewBackend(ctx, "happydomain-lb4", &loadbalancer.BackendArgs{
BackendsetName: nlbset4.Name,
LoadBalancerId: nlb.ID(),
Port: pulumi.Int(443),
IpAddress: instance.PrivateIp,
})
if err != nil {
return err