This repository has been archived on 2023-05-06. You can view files and clone it, but cannot push or open issues or pull requests.
helix/internal/docker/network.go

47 lines
1,013 B
Go
Raw Normal View History

2021-06-26 01:26:06 +01:00
package docker
import (
"fmt"
2021-06-26 21:57:11 +01:00
2021-06-26 01:26:06 +01:00
"github.com/pulumi/pulumi-docker/sdk/v3/go/docker"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// DockerNetworkConfig is the configuration
// used for creating a Docker network.
type DockerNetworkConfig struct {
Name pulumi.StringInput
Subnet pulumi.StringInput
Driver pulumi.StringInput
}
type DockerNetworkResults struct {
Name pulumi.StringOutput
}
2021-06-26 01:26:06 +01:00
// CreateNetwork creates the forge platform's Docker network.
func CreateNetwork(ctx *pulumi.Context, c DockerNetworkConfig) (DockerNetworkResults, error) {
var result DockerNetworkResults
2021-06-26 01:26:06 +01:00
args := docker.NetworkArgs{
Name: c.Name,
IpamDriver: c.Driver,
IpamConfigs: docker.NetworkIpamConfigArray{
docker.NetworkIpamConfigArgs{
Subnet: c.Subnet,
},
},
}
n, err := docker.NewNetwork(ctx, "docker_network", &args)
2021-06-26 01:26:06 +01:00
if err != nil {
return result, fmt.Errorf("unable to create the docker network...\n%w", err)
}
result = DockerNetworkResults{
Name: n.Name,
2021-06-26 01:26:06 +01:00
}
return result, nil
2021-06-26 01:26:06 +01:00
}