Namespace

class Namespace : KotlinCustomResource

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",
},
});
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",
})
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" },
},
});
});
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
})
}
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());
}
}
resources:
dev:
type: nomad:Namespace
properties:
name: dev
description: Shared development environment.
quota: dev
meta:
owner: John Doe
foo: bar

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,
});
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)
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,
});
});
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
})
}
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());
}
}
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}

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
val description: Output<String>?

(string: "") - A description of the namespace.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val meta: Output<Map<String, String>>?

(map[string]string: <optional>) - Specifies arbitrary KV metadata to associate with the namespace.

Link copied to clipboard
val name: Output<String>

(string: <required>) - A unique name for the namespace.

Link copied to clipboard

(block: <optional>) - A block with node pool configuration for the namespace (Nomad Enterprise only).

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val quota: Output<String>?

(string: "") - A resource quota to attach to the namespace.

Link copied to clipboard
val urn: Output<String>