Loading main.go +41 −1 Original line number Diff line number Diff line Loading @@ -3,10 +3,13 @@ package main import ( "context" "crypto/ed25519" "crypto/rand" "encoding/pem" "errors" "fmt" "math" "net/http" "strings" "github.com/cloudscale-ch/cloudscale-go-sdk/v6" hclog "github.com/hashicorp/go-hclog" Loading Loading @@ -66,7 +69,44 @@ func (g *instanceGroup) Init(ctx context.Context, logger hclog.Logger, settings // Increase implements provider.InstanceGroup. func (g *instanceGroup) Increase(ctx context.Context, delta int) (succeeded int, err error) { return 0, nil servers := make([]*cloudscale.Server, 0, delta) errs := make([]error, 0) tagMap := cloudscale.TagMap{"fleeting": "true"} for range delta { serverName := strings.ToLower(rand.Text()[:5]) server, err := g.client.Servers.Create(ctx, &cloudscale.ServerRequest{ Name: "fleeting-" + serverName, Flavor: "flex-4-1", Image: "ubuntu-24.04", VolumeSizeGB: 10, SSHKeys: []string{string(g.authorizedKey)}, TaggedResourceRequest: cloudscale.TaggedResourceRequest{Tags: &tagMap}, UserData: `#cloud-config package_update: true package_upgrade: true apt: sources: gitlab_runner: source: "deb https://packages.gitlab.com/runner/gitlab-runner/ubuntu/ $RELEASE main" keyserver: "https://packages.gitlab.com/runner/gitlab-runner/gpgkey" keyid: "F6403F6544A38863DAA0B6E03F01618A51312F3F" packages: - git - gitlab-runner `, }) if err != nil { errs = append(errs, fmt.Errorf("failed to create server: %w", err)) continue } servers = append(servers, server) } return len(servers), errors.Join(errs...) } // Decrease implements provider.InstanceGroup. Loading Loading
main.go +41 −1 Original line number Diff line number Diff line Loading @@ -3,10 +3,13 @@ package main import ( "context" "crypto/ed25519" "crypto/rand" "encoding/pem" "errors" "fmt" "math" "net/http" "strings" "github.com/cloudscale-ch/cloudscale-go-sdk/v6" hclog "github.com/hashicorp/go-hclog" Loading Loading @@ -66,7 +69,44 @@ func (g *instanceGroup) Init(ctx context.Context, logger hclog.Logger, settings // Increase implements provider.InstanceGroup. func (g *instanceGroup) Increase(ctx context.Context, delta int) (succeeded int, err error) { return 0, nil servers := make([]*cloudscale.Server, 0, delta) errs := make([]error, 0) tagMap := cloudscale.TagMap{"fleeting": "true"} for range delta { serverName := strings.ToLower(rand.Text()[:5]) server, err := g.client.Servers.Create(ctx, &cloudscale.ServerRequest{ Name: "fleeting-" + serverName, Flavor: "flex-4-1", Image: "ubuntu-24.04", VolumeSizeGB: 10, SSHKeys: []string{string(g.authorizedKey)}, TaggedResourceRequest: cloudscale.TaggedResourceRequest{Tags: &tagMap}, UserData: `#cloud-config package_update: true package_upgrade: true apt: sources: gitlab_runner: source: "deb https://packages.gitlab.com/runner/gitlab-runner/ubuntu/ $RELEASE main" keyserver: "https://packages.gitlab.com/runner/gitlab-runner/gpgkey" keyid: "F6403F6544A38863DAA0B6E03F01618A51312F3F" packages: - git - gitlab-runner `, }) if err != nil { errs = append(errs, fmt.Errorf("failed to create server: %w", err)) continue } servers = append(servers, server) } return len(servers), errors.Join(errs...) } // Decrease implements provider.InstanceGroup. Loading