-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add OVHcloud's minimal templates (#858)
- Loading branch information
Showing
18 changed files
with
645 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>net8.0</TargetFramework> | ||
<Nullable>enable</Nullable> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Pulumi" Version="3.*" /> | ||
<PackageReference Include="Pulumi.Ovh" Version="1.*" /> | ||
</ItemGroup> | ||
|
||
</Project> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using Pulumi; | ||
using Ovh = Pulumi.Ovh; | ||
using System; | ||
|
||
return await Deployment.RunAsync(() => | ||
{ | ||
// Get some configuration values (or use defaults) | ||
var config = new Pulumi.Config(); | ||
var ovhServiceName = config.Require("ovhServiceName"); | ||
var ovhRegion = config.Get("ovhRegion") ?? "GRA"; | ||
var planName = config.Get("planName") ?? "SMALL"; | ||
var registryName = config.Get("registryName") ?? "my-registry"; | ||
|
||
var registryUserName = config.Get("registryUserName") ?? "user"; | ||
var registryUserEmail = config.Get("registryUserEmail") ?? "[email protected]"; | ||
var registryUserLogin = config.Get("registryUserLogin") ?? "myuser"; | ||
|
||
// Initiate the configuration of the registry | ||
var regcap = Ovh.CloudProject.GetCapabilitiesContainerFilter.Invoke(new() | ||
{ | ||
ServiceName = ovhServiceName, | ||
PlanName = planName, | ||
Region = ovhRegion, | ||
}); | ||
|
||
// Deploy a new Managed private registry | ||
var myRegistry = new Ovh.CloudProject.ContainerRegistry(registryName, new() | ||
{ | ||
ServiceName = regcap.Apply(getCapabilitiesContainerFilterResult => getCapabilitiesContainerFilterResult.ServiceName), | ||
PlanId = regcap.Apply(getCapabilitiesContainerFilterResult => getCapabilitiesContainerFilterResult.Id), | ||
Region = regcap.Apply(getCapabilitiesContainerFilterResult => getCapabilitiesContainerFilterResult.Region), | ||
}); | ||
|
||
// Create a Private Registry User | ||
var myRegistryUser = new Ovh.CloudProject.ContainerRegistryUser(registryUserName, new() | ||
{ | ||
ServiceName = ovhServiceName, | ||
RegistryId = myRegistry.Id, | ||
Email = registryUserEmail, | ||
Login = registryUserLogin, | ||
}); | ||
|
||
// Export some values for use elsewhere | ||
return new Dictionary<string, object?> | ||
{ | ||
["registryURL"] = myRegistry.Url, | ||
["registryUser"] = myRegistryUser.User, | ||
["registryPassword"] = myRegistryUser.Password, | ||
}; | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: ${PROJECT} | ||
description: ${DESCRIPTION} | ||
runtime: dotnet | ||
template: | ||
description: A minimal OVHcloud C# Pulumi program | ||
config: | ||
ovhServiceName: | ||
description: The OVHcloud Public Cloud Project to deploy into | ||
ovhRegion: | ||
default: GRA | ||
description: The OVHcloud region to deploy into | ||
planName: | ||
default: SMALL | ||
description: Name of the plan | ||
registryName: | ||
default: my-registry | ||
description: Name of the private registry | ||
registryUserName: | ||
default: user | ||
description: Name of the user | ||
registryUserEmail: | ||
default: [email protected] | ||
description: Email of the user | ||
registryUserLogin: | ||
default: myuser | ||
description: Login of the user |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: ${PROJECT} | ||
description: ${DESCRIPTION} | ||
runtime: go | ||
template: | ||
description: A minimal OVHcloud Go Pulumi program | ||
config: | ||
ovhServiceName: | ||
description: The OVHcloud Public Cloud Project to deploy into | ||
ovhRegion: | ||
default: GRA | ||
description: The OVHcloud region to deploy into | ||
planName: | ||
default: SMALL | ||
description: Name of the plan | ||
registryName: | ||
default: my-registry | ||
description: Name of the private registry | ||
registryUserName: | ||
default: user | ||
description: Name of the user | ||
registryUserEmail: | ||
default: [email protected] | ||
description: Email of the user | ||
registryUserLogin: | ||
default: myuser | ||
description: Login of the user |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
module kubernetes-ovh-go | ||
|
||
go 1.22 | ||
|
||
require ( | ||
github.com/ovh/pulumi-ovh/sdk v1.1.0 | ||
github.com/pulumi/pulumi/sdk/v3 v3.137.0 | ||
) | ||
|
||
require ( | ||
dario.cat/mergo v1.0.0 // indirect | ||
github.com/BurntSushi/toml v1.2.1 // indirect | ||
github.com/Microsoft/go-winio v0.6.1 // indirect | ||
github.com/ProtonMail/go-crypto v1.0.0 // indirect | ||
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect | ||
github.com/agext/levenshtein v1.2.3 // indirect | ||
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect | ||
github.com/atotto/clipboard v0.1.4 // indirect | ||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect | ||
github.com/blang/semver v3.5.1+incompatible // indirect | ||
github.com/charmbracelet/bubbles v0.16.1 // indirect | ||
github.com/charmbracelet/bubbletea v0.25.0 // indirect | ||
github.com/charmbracelet/lipgloss v0.7.1 // indirect | ||
github.com/cheggaaa/pb v1.0.29 // indirect | ||
github.com/cloudflare/circl v1.3.7 // indirect | ||
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect | ||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect | ||
github.com/djherbis/times v1.5.0 // indirect | ||
github.com/emirpasic/gods v1.18.1 // indirect | ||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect | ||
github.com/go-git/go-billy/v5 v5.5.0 // indirect | ||
github.com/go-git/go-git/v5 v5.12.0 // indirect | ||
github.com/gogo/protobuf v1.3.2 // indirect | ||
github.com/golang/glog v1.2.0 // indirect | ||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect | ||
github.com/google/uuid v1.6.0 // indirect | ||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect | ||
github.com/hashicorp/errwrap v1.1.0 // indirect | ||
github.com/hashicorp/go-multierror v1.1.1 // indirect | ||
github.com/hashicorp/hcl/v2 v2.17.0 // indirect | ||
github.com/inconshreveable/mousetrap v1.1.0 // indirect | ||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect | ||
github.com/kevinburke/ssh_config v1.2.0 // indirect | ||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect | ||
github.com/mattn/go-isatty v0.0.19 // indirect | ||
github.com/mattn/go-localereader v0.0.1 // indirect | ||
github.com/mattn/go-runewidth v0.0.15 // indirect | ||
github.com/mitchellh/go-ps v1.0.0 // indirect | ||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect | ||
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect | ||
github.com/muesli/cancelreader v0.2.2 // indirect | ||
github.com/muesli/reflow v0.3.0 // indirect | ||
github.com/muesli/termenv v0.15.2 // indirect | ||
github.com/opentracing/basictracer-go v1.1.0 // indirect | ||
github.com/opentracing/opentracing-go v1.2.0 // indirect | ||
github.com/pgavlin/fx v0.1.6 // indirect | ||
github.com/pjbgf/sha1cd v0.3.0 // indirect | ||
github.com/pkg/errors v0.9.1 // indirect | ||
github.com/pkg/term v1.1.0 // indirect | ||
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect | ||
github.com/pulumi/esc v0.9.1 // indirect | ||
github.com/rivo/uniseg v0.4.4 // indirect | ||
github.com/rogpeppe/go-internal v1.11.0 // indirect | ||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect | ||
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect | ||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect | ||
github.com/skeema/knownhosts v1.2.2 // indirect | ||
github.com/spf13/cast v1.4.1 // indirect | ||
github.com/spf13/cobra v1.7.0 // indirect | ||
github.com/spf13/pflag v1.0.5 // indirect | ||
github.com/texttheater/golang-levenshtein v1.0.1 // indirect | ||
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect | ||
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect | ||
github.com/xanzy/ssh-agent v0.3.3 // indirect | ||
github.com/zclconf/go-cty v1.13.2 // indirect | ||
go.uber.org/atomic v1.9.0 // indirect | ||
golang.org/x/crypto v0.24.0 // indirect | ||
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect | ||
golang.org/x/mod v0.18.0 // indirect | ||
golang.org/x/net v0.26.0 // indirect | ||
golang.org/x/sync v0.7.0 // indirect | ||
golang.org/x/sys v0.21.0 // indirect | ||
golang.org/x/term v0.21.0 // indirect | ||
golang.org/x/text v0.16.0 // indirect | ||
golang.org/x/tools v0.22.0 // indirect | ||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect | ||
google.golang.org/grpc v1.63.2 // indirect | ||
google.golang.org/protobuf v1.33.0 // indirect | ||
gopkg.in/warnings.v0 v0.1.2 // indirect | ||
gopkg.in/yaml.v3 v3.0.1 // indirect | ||
lukechampine.com/frand v1.4.2 // indirect | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
package main | ||
|
||
import ( | ||
"github.com/ovh/pulumi-ovh/sdk/go/ovh/cloudproject" | ||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi" | ||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" | ||
) | ||
|
||
func main() { | ||
pulumi.Run(func(ctx *pulumi.Context) error { | ||
// Get some configuration values or use defaults | ||
cfg := config.New(ctx, "") | ||
ovhServiceName := cfg.Require("ovhServiceName") | ||
ovhRegion, err := cfg.Try("ovhRegion") | ||
if err != nil { | ||
ovhRegion = "GRA" | ||
} | ||
|
||
planName, err := cfg.Try("planName") | ||
if err != nil { | ||
planName = "SMALL" | ||
} | ||
|
||
registryName, err := cfg.Try("registryName") | ||
if err != nil { | ||
registryName = "my-registry" | ||
} | ||
|
||
registryUserName, err := cfg.Try("registryUserName") | ||
if err != nil { | ||
registryUserName = "user" | ||
} | ||
|
||
registryUserEmail, err := cfg.Try("registryUserEmail") | ||
if err != nil { | ||
registryUserEmail = "[email protected]" | ||
} | ||
|
||
registryUserLogin, err := cfg.Try("registryUserLogin") | ||
if err != nil { | ||
registryUserLogin = "myuser" | ||
} | ||
|
||
// Initiate the configuration of the registry | ||
regcap, err := cloudproject.GetCapabilitiesContainerFilter(ctx, &cloudproject.GetCapabilitiesContainerFilterArgs{ | ||
ServiceName: ovhServiceName, | ||
PlanName: planName, | ||
Region: ovhRegion, | ||
}, nil) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
// Deploy a new Managed private registry | ||
myRegistry, err := cloudproject.NewContainerRegistry(ctx, registryName, &cloudproject.ContainerRegistryArgs{ | ||
ServiceName: pulumi.String(regcap.ServiceName), | ||
PlanId: pulumi.String(regcap.Id), | ||
Region: pulumi.String(regcap.Region), | ||
}) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
// Create a Private Registry User | ||
myRegistryUser, err := cloudproject.NewContainerRegistryUser(ctx, registryUserName, &cloudproject.ContainerRegistryUserArgs{ | ||
ServiceName: pulumi.String(regcap.ServiceName), | ||
RegistryId: myRegistry.ID(), | ||
Email: pulumi.String(registryUserEmail), | ||
Login: pulumi.String(registryUserLogin), | ||
}) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
// Add as an output registry information | ||
ctx.Export("registryURL", myRegistry.Url) | ||
ctx.Export("registryUser", myRegistryUser.User) | ||
ctx.Export("registryPassword", myRegistryUser.Password) | ||
|
||
return nil | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: ${PROJECT} | ||
description: ${DESCRIPTION} | ||
runtime: java | ||
template: | ||
description: A minimal OVHcloud Java Pulumi program | ||
config: | ||
ovhServiceName: | ||
description: The OVHcloud Public Cloud Project to deploy into | ||
ovhRegion: | ||
default: GRA | ||
description: The OVHcloud region to deploy into | ||
planName: | ||
default: SMALL | ||
description: Name of the plan | ||
registryName: | ||
default: my-registry | ||
description: Name of the private registry | ||
registryUserName: | ||
default: user | ||
description: Name of the user | ||
registryUserEmail: | ||
default: [email protected] | ||
description: Email of the user | ||
registryUserLogin: | ||
default: myuser | ||
description: Login of the user |
Oops, something went wrong.