Hcloud Component

HcloudPublisher creates one Hetzner Cloud server per publisher name.

Inputs

Required: tenantUrl and apiToken, unless registrations is provided.

Optional platform inputs: serverType, image, location, datacenter,
sshKeys, firewallIds, networkId, and assignPublicIp.

Image and bootstrap behavior

The default image is ubuntu-22.04. Hcloud uses bootstrap mode and runs
Netskope’s generic installer through cloud-init.

Outputs

publisherNames and secret publishers, keyed by publisher name.

Pulumi CLI

1
2
3
4
pulumi config set hcloud:token --secret
pulumi config set netskope:tenantUrl https://tenant.goskope.com
pulumi config set netskope:apiToken --secret
pulumi up

TypeScript

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

const netskope = new pulumi.Config("netskope");
const publisher = new HcloudPublisher("publisher", {
namePrefix: "pub-fsn",
replicas: 2,
tenantUrl: netskope.require("tenantUrl"),
apiToken: netskope.requireSecret("apiToken"),
location: "fsn1",
serverType: "cx22",
});
export const publishers = publisher.publishers;

Python

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

netskope = pulumi.Config("netskope")
publisher = HcloudPublisher(
"publisher",
name_prefix="pub-fsn",
replicas=2,
tenant_url=netskope.require("tenantUrl"),
api_token=netskope.require_secret("apiToken"),
location="fsn1",
server_type="cx22",
)
pulumi.export("publishers", publisher.publishers)

C#

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

return await Deployment.RunAsync(() =>
{
var netskope = new Config("netskope");
var publisher = new HcloudPublisher("publisher", new HcloudPublisherArgs
{
NamePrefix = "pub-fsn",
Replicas = 2,
TenantUrl = netskope.Require("tenantUrl"),
ApiToken = netskope.RequireSecret("apiToken"),
Location = "fsn1",
ServerType = "cx22",
});
});

Go

1
2
3
4
5
6
7
8
publisher, err := netskopepublisher.NewHcloudPublisher(ctx, "publisher", &netskopepublisher.HcloudPublisherArgs{
NamePrefix: pulumi.String("pub-fsn"),
Replicas: pulumi.Int(2),
TenantUrl: pulumi.String(netskope.Require("tenantUrl")),
ApiToken: netskope.RequireSecret("apiToken"),
Location: pulumi.String("fsn1"),
ServerType: pulumi.String("cx22"),
})

Java

1
2
3
4
5
6
7
8
var publisher = new HcloudPublisher("publisher", HcloudPublisherArgs.builder()
.namePrefix("pub-fsn")
.replicas(2)
.tenantUrl(netskope.require("tenantUrl"))
.apiToken(netskope.requireSecret("apiToken"))
.location("fsn1")
.serverType("cx22")
.build());

Rust

1
2
3
4
5
6
7
8
9
10
11
12
let publisher = netskope::hcloud_publisher::create(
ctx,
"publisher",
netskope::hcloud_publisher::HcloudPublisherArgs::builder()
.name_prefix("pub-fsn")
.replicas(2)
.tenant_url("https://tenant.goskope.com")
.api_token("secret-token")
.location("fsn1")
.server_type("cx22")
.build_struct(),
);