Namespace Args
data class NamespaceArgs(val capabilities: Output<NamespaceCapabilitiesArgs>? = null, val description: Output<String>? = null, val meta: Output<Map<String, String>>? = null, val name: Output<String>? = null, val nodePoolConfig: Output<NamespaceNodePoolConfigArgs>? = null, val quota: Output<String>? = null) : ConvertibleToJava<NamespaceArgs>
Provisions a namespace within a Nomad cluster. Nomad auto-generates a default namespace called default
. This namespace cannot be removed, so destroying a nomad.Namespace
resource where name = "default"
will cause the namespace to be reset to its default configuration.
Example Usage
Registering a namespace:
import * as pulumi from "@pulumi/pulumi";
import * as nomad from "@pulumi/nomad";
const dev = new nomad.Namespace("dev", {
name: "dev",
description: "Shared development environment.",
quota: "dev",
meta: {
owner: "John Doe",
foo: "bar",
},
});
Content copied to clipboard
import pulumi
import pulumi_nomad as nomad
dev = nomad.Namespace("dev",
name="dev",
description="Shared development environment.",
quota="dev",
meta={
"owner": "John Doe",
"foo": "bar",
})
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Nomad = Pulumi.Nomad;
return await Deployment.RunAsync(() =>
{
var dev = new Nomad.Namespace("dev", new()
{
Name = "dev",
Description = "Shared development environment.",
Quota = "dev",
Meta =
{
{ "owner", "John Doe" },
{ "foo", "bar" },
},
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := nomad.NewNamespace(ctx, "dev", &nomad.NamespaceArgs{
Name: pulumi.String("dev"),
Description: pulumi.String("Shared development environment."),
Quota: pulumi.String("dev"),
Meta: pulumi.StringMap{
"owner": pulumi.String("John Doe"),
"foo": pulumi.String("bar"),
},
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.nomad.Namespace;
import com.pulumi.nomad.NamespaceArgs;
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 dev = new Namespace("dev", NamespaceArgs.builder()
.name("dev")
.description("Shared development environment.")
.quota("dev")
.meta(Map.ofEntries(
Map.entry("owner", "John Doe"),
Map.entry("foo", "bar")
))
.build());
}
}
Content copied to clipboard
resources:
dev:
type: nomad:Namespace
properties:
name: dev
description: Shared development environment.
quota: dev
meta:
owner: John Doe
foo: bar
Content copied to clipboard
Registering a namespace with a quota:
import * as pulumi from "@pulumi/pulumi";
import * as nomad from "@pulumi/nomad";
const webTeam = new nomad.QuoteSpecification("web_team", {
name: "web-team",
description: "web team quota",
limits: [{
region: "global",
regionLimit: {
cpu: 1000,
memoryMb: 256,
},
}],
});
const web = new nomad.Namespace("web", {
name: "web",
description: "Web team production environment.",
quota: webTeam.name,
});
Content copied to clipboard
import pulumi
import pulumi_nomad as nomad
web_team = nomad.QuoteSpecification("web_team",
name="web-team",
description="web team quota",
limits=[{
"region": "global",
"region_limit": {
"cpu": 1000,
"memory_mb": 256,
},
}])
web = nomad.Namespace("web",
name="web",
description="Web team production environment.",
quota=web_team.name)
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Nomad = Pulumi.Nomad;
return await Deployment.RunAsync(() =>
{
var webTeam = new Nomad.QuoteSpecification("web_team", new()
{
Name = "web-team",
Description = "web team quota",
Limits = new[]
{
new Nomad.Inputs.QuoteSpecificationLimitArgs
{
Region = "global",
RegionLimit = new Nomad.Inputs.QuoteSpecificationLimitRegionLimitArgs
{
Cpu = 1000,
MemoryMb = 256,
},
},
},
});
var web = new Nomad.Namespace("web", new()
{
Name = "web",
Description = "Web team production environment.",
Quota = webTeam.Name,
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-nomad/sdk/v2/go/nomad"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
webTeam, err := nomad.NewQuoteSpecification(ctx, "web_team", &nomad.QuoteSpecificationArgs{
Name: pulumi.String("web-team"),
Description: pulumi.String("web team quota"),
Limits: nomad.QuoteSpecificationLimitArray{
&nomad.QuoteSpecificationLimitArgs{
Region: pulumi.String("global"),
RegionLimit: &nomad.QuoteSpecificationLimitRegionLimitArgs{
Cpu: pulumi.Int(1000),
MemoryMb: pulumi.Int(256),
},
},
},
})
if err != nil {
return err
}
_, err = nomad.NewNamespace(ctx, "web", &nomad.NamespaceArgs{
Name: pulumi.String("web"),
Description: pulumi.String("Web team production environment."),
Quota: webTeam.Name,
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.nomad.QuoteSpecification;
import com.pulumi.nomad.QuoteSpecificationArgs;
import com.pulumi.nomad.inputs.QuoteSpecificationLimitArgs;
import com.pulumi.nomad.inputs.QuoteSpecificationLimitRegionLimitArgs;
import com.pulumi.nomad.Namespace;
import com.pulumi.nomad.NamespaceArgs;
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 webTeam = new QuoteSpecification("webTeam", QuoteSpecificationArgs.builder()
.name("web-team")
.description("web team quota")
.limits(QuoteSpecificationLimitArgs.builder()
.region("global")
.regionLimit(QuoteSpecificationLimitRegionLimitArgs.builder()
.cpu(1000)
.memoryMb(256)
.build())
.build())
.build());
var web = new Namespace("web", NamespaceArgs.builder()
.name("web")
.description("Web team production environment.")
.quota(webTeam.name())
.build());
}
}
Content copied to clipboard
resources:
webTeam:
type: nomad:QuoteSpecification
name: web_team
properties:
name: web-team
description: web team quota
limits:
- region: global
regionLimit:
cpu: 1000
memoryMb: 256
web:
type: nomad:Namespace
properties:
name: web
description: Web team production environment.
quota: ${webTeam.name}
Content copied to clipboard
Constructors
Link copied to clipboard
constructor(capabilities: Output<NamespaceCapabilitiesArgs>? = null, description: Output<String>? = null, meta: Output<Map<String, String>>? = null, name: Output<String>? = null, nodePoolConfig: Output<NamespaceNodePoolConfigArgs>? = null, quota: Output<String>? = null)
Properties
Link copied to clipboard
(block: <optional>)
- A block of capabilities for the namespace. Can't be repeated. See below for the structure of this block.
Link copied to clipboard
(string: "")
- A description of the namespace.
Link copied to clipboard
(block: <optional>)
- A block with node pool configuration for the namespace (Nomad Enterprise only).