Opennebula Provider
Generate Provider
The Opennebula provider must be installed as a Local Package by following the instructions for Any Terraform Provider:
pulumi package add terraform-provider opennebula/opennebula
Overview
The OpenNebula provider is used to interact with OpenNebula cluster resources.
The provider allows you to manage your OpenNebula clusters resources. It needs to be configured with proper credentials before it can be used.
Example Usage
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: nodejs
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
import * as pulumi from "@pulumi/pulumi";
import * as opennebula from "@pulumi/opennebula";
const group = new opennebula.Group("group", {name: "OpenNebula"});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: python
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
import pulumi
import pulumi_opennebula as opennebula
group = opennebula.Group("group", name="OpenNebula")
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: dotnet
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Opennebula = Pulumi.Opennebula;
return await Deployment.RunAsync(() =>
{
var @group = new Opennebula.Group("group", new()
{
Name = "OpenNebula",
});
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: go
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
package main
import (
"github.com/pulumi/pulumi-pulumi-provider/sdks/go/opennebula/opennebula"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opennebula.NewGroup(ctx, "group", &opennebula.GroupArgs{
Name: pulumi.String("OpenNebula"),
})
if err != nil {
return err
}
return nil
})
}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: yaml
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
resources:
group:
type: opennebula:Group
properties:
name: OpenNebula
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: java
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.opennebula.Group;
import com.pulumi.opennebula.GroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var group = new Group("group", GroupArgs.builder()
.name("OpenNebula")
.build());
}
}
Authentication and Configuration
The configuration of the OpenNebula Provider can be set by the provider configuration attributes or by the environment variables.
Provider attributes
endpoint
- (Required) The URL of OpenNebula XML-RPC Endpoint API (for example,http://example.com:2633/RPC2
).flowEndpoint
- (Optional) The OneFlow HTTP Endpoint API (for example,http://example.com:2474
).username
- (Required) The OpenNebula username.password
- (Required) The Opennebula password matching the username.insecure
- (Optional) Allow insecure connexion (skip TLS verification).defaultTags
- (Optional) Apply default custom tags to resources supportingtags
. Theses tags can be overriden in thetags
section of the resource. See Using tags below for more details.
!> Warning: Hard-coded credentials are not recommended in any Pulumi configuration file and should not be commited in a public repository you might prefer Environment variables instead.
Environment variables
The provider can also read the following environment variables if no value is set in the the provider configuration attributes:
OPENNEBULA_ENDPOINT
OPENNEBULA_FLOW_ENDPOINT
OPENNEBULA_USERNAME
OPENNEBULA_PASSWORD
OPENNEBULA_INSECURE
Example
export OPENNEBULA_ENDPOINT="https://example.com:2633/RPC2"
export OPENNEBULA_FLOW_ENDPOINT="https://example.com:2474"
export OPENNEBULA_USERNAME="me"
export OPENNEBULA_PASSWORD="p@s5w0rD"
export OPENNEBULA_INSECURE="true"
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: nodejs
import * as pulumi from "@pulumi/pulumi";
import * as opennebula from "@pulumi/opennebula";
const group = new opennebula.Group("group", {});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: python
import pulumi
import pulumi_opennebula as opennebula
group = opennebula.Group("group")
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: dotnet
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Opennebula = Pulumi.Opennebula;
return await Deployment.RunAsync(() =>
{
var @group = new Opennebula.Group("group");
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: go
package main
import (
"github.com/pulumi/pulumi-pulumi-provider/sdks/go/opennebula/opennebula"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opennebula.NewGroup(ctx, "group", nil)
if err != nil {
return err
}
return nil
})
}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: yaml
resources:
group:
type: opennebula:Group
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: java
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.opennebula.Group;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var group = new Group("group");
}
}
pulumi up
pulumi preview
Using tags
Resource tags
Some resources can support the tags
attribute. In consists of a map of key-value elements. In the OpenNebula language, these are called ‘attributes’.
Default tags
The provider’s defaultTags
attribute allows to set default tags for all resources supporting tags.
defaultTags
supports the following arguments:
tags
- (Optional) Map of tags.
When a tag is added to a resource, it overrides the one present in defaultTags
from the provider configuration if the key matches. In the example bellow, the resource will have environment = "production"
and deploymentMethod = "pulumi"
tags.
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: nodejs
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
import * as pulumi from "@pulumi/pulumi";
import * as opennebula from "@pulumi/opennebula";
const group = new opennebula.Group("group", {tags: {
environment: "production",
}});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: python
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
import pulumi
import pulumi_opennebula as opennebula
group = opennebula.Group("group", tags={
"environment": "production",
})
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: dotnet
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Opennebula = Pulumi.Opennebula;
return await Deployment.RunAsync(() =>
{
var @group = new Opennebula.Group("group", new()
{
Tags =
{
{ "environment", "production" },
},
});
});
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: go
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
package main
import (
"github.com/pulumi/pulumi-pulumi-provider/sdks/go/opennebula/opennebula"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opennebula.NewGroup(ctx, "group", &opennebula.GroupArgs{
Tags: pulumi.StringMap{
"environment": pulumi.String("production"),
},
})
if err != nil {
return err
}
return nil
})
}
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: yaml
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
resources:
group:
type: opennebula:Group
properties:
tags:
environment: production
# Pulumi.yaml provider configuration file
name: configuration-example
runtime: java
config:
opennebula:endpoint:
value: https://example.com:2633/RPC2
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.opennebula.Group;
import com.pulumi.opennebula.GroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var group = new Group("group", GroupArgs.builder()
.tags(Map.of("environment", "production"))
.build());
}
}