Exoscale Component

ExoscalePublisher creates one Ubuntu 22.04 bootstrap-mode Netskope Publisher per resolved publisher name.

Required platform inputs: zone, type, templateId, and diskSize. Use an Ubuntu 22.04 template ID.

Inputs

Required Netskope inputs: tenantUrl and bearerToken, unless registrations is provided. OAuth2 enrollment is available with authMode: "oauth2" and oauth2 client credentials.

Bootstrap behavior

The component renders the shared Netskope Publisher cloud-init payload, installs the generic publisher software, and enrolls the VM with a deployment-time registration token.

Pulumi YAML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
name: netskope-publisher-exoscale
runtime: yaml
config:
tenantUrl:
type: String
bearerToken:
type: String
secret: true
resources:
publisher:
type: netskope-publisher:index:ExoscalePublisher
properties:
namePrefix: pub
replicas: 2
tenantUrl: ${tenantUrl}
bearerToken: ${bearerToken}
zone: ch-gva-2
templateId: <ubuntu-2204-template-id>
instanceType: standard.medium
bootstrap: true
outputs:
publisherNames: ${publisher.publisherNames}
publishers: ${publisher.publishers}

TypeScript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import * as pulumi from "@pulumi/pulumi";
import { ExoscalePublisher } from "@johninnl/pulumi-netskope-publisher";

const netskope = new pulumi.Config("netskope");
const publisher = new ExoscalePublisher("publisher", {
namePrefix: "pub",
replicas: 2,
tenantUrl: netskope.require("tenantUrl"),
bearerToken: netskope.requireSecret("bearerToken"),
zone: "ch-gva-2",
type: "standard.medium",
templateId: "ubuntu-22-template",
diskSize: 50,
});
export const publishers = publisher.publishers;

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pulumi
from pulumi_netskope_publisher import ExoscalePublisher

netskope = pulumi.Config("netskope")
publisher = ExoscalePublisher(
"publisher",
name_prefix="pub",
replicas=2,
tenant_url=netskope.require("tenantUrl"),
bearer_token=netskope.require_secret("bearerToken"),
zone="ch-gva-2",
type="standard.medium",
template_id="ubuntu-22-template",
disk_size=50,
)
pulumi.export("publishers", publisher.publishers)

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using Pulumi;
using JohninNL.Pulumi.NetskopePublisher;

return await Deployment.RunAsync(() =>
{
var netskope = new Config("netskope");
var publisher = new ExoscalePublisher("publisher", new ExoscalePublisherArgs
{
NamePrefix = "pub",
Replicas = 2,
TenantUrl = netskope.Require("tenantUrl"),
BearerToken = netskope.RequireSecret("bearerToken"),
Zone = "ch-gva-2",
Type = "standard.medium",
TemplateId = "ubuntu-22-template",
DiskSize = 50,
});
});

Go

1
2
3
4
5
6
7
8
9
10
11
publisher, err := netskopepublisher.NewExoscalePublisher(ctx, "publisher", &netskopepublisher.ExoscalePublisherArgs{
NamePrefix: pulumi.String("pub"),
Replicas: pulumi.Int(2),
TenantUrl: pulumi.String(netskope.Require("tenantUrl")),
BearerToken: netskope.RequireSecret("bearerToken"),
Zone: pulumi.String("ch-gva-2"),
Type: pulumi.String("standard.medium"),
TemplateId: pulumi.String("ubuntu-22-template"),
DiskSize: pulumi.Int(50),
})
_ = publisher

Java

1
2
3
4
5
6
7
8
9
10
var publisher = new ExoscalePublisher("publisher", ExoscalePublisherArgs.builder()
.namePrefix("pub")
.replicas(2)
.tenantUrl(netskope.require("tenantUrl"))
.bearerToken(netskope.requireSecret("bearerToken"))
.zone("ch-gva-2")
.type("standard.medium")
.templateId("ubuntu-22-template")
.diskSize(50)
.build());

Rust

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let publisher = netskope::exoscale_publisher::create(
ctx,
"publisher",
netskope::exoscale_publisher::ExoscalePublisherArgs::builder()
.name_prefix("pub")
.replicas(2)
.tenant_url("https://tenant.goskope.com")
.bearer_token("secret-token")
.zone("ch-gva-2")
.type_("standard.medium")
.template_id("ubuntu-22-template")
.disk_size(50)
.build_struct(),
);