vSphere Component
Java examples use the published
com.pulumi:netskope-publisher
SDK. Rust examples use the published
pulumi-netskope-publisher
crate plus Pulumi Gestalt.
VspherePublisher clones one VM per publisher name from an existing
template and passes registration data through guestinfo cloud-init.
Inputs
Required:
datacenter
datastore
networkName
templateName
- either
cluster or host
tenantUrl and bearerToken, unless registrations is provided
Optional inputs include folder, numCpus, memory, tags,
namePrefix, names, replicas, and wizardPath.
Prepare the template from the official Netskope OVA:
1
| https://s3-us-west-2.amazonaws.com/publisher.netskope.com/latest/NetskopePrivateAccessPublisher.ova
|
The template must have VMware guestinfo cloud-init support enabled.
Outputs
publisherNames
- secret
publishers
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 24
| name: netskope-publisher-vsphere runtime: yaml config: tenantUrl: type: String bearerToken: type: String secret: true resources: publisher: type: netskope-publisher:index:VspherePublisher properties: namePrefix: pub-eu replicas: 2 tenantUrl: ${tenantUrl} bearerToken: ${bearerToken} datacenter: Lab datastore: datastore1 networkName: VM Network templateName: npa-publisher-template cluster: Cluster outputs: publisherNames: ${publisher.publisherNames} publishers: ${publisher.publishers}
|
TypeScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import * as pulumi from "@pulumi/pulumi"; import { VspherePublisher } from "@johninnl/pulumi-netskope-publisher";
const netskope = new pulumi.Config("netskope"); const config = new pulumi.Config();
const publisher = new VspherePublisher("publisher", { namePrefix: "pub-vsphere", replicas: 2, tenantUrl: netskope.require("tenantUrl"), bearerToken: netskope.requireSecret("bearerToken"), datacenter: config.require("datacenter"), datastore: config.require("datastore"), networkName: config.require("networkName"), templateName: config.require("templateName"), cluster: config.require("cluster"), folder: config.get("folder"), numCpus: 2, memory: 4096, });
export const publisherNames = publisher.publisherNames; export const publishers = pulumi.secret(publisher.publishers);
|
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import pulumi from pulumi_netskope_publisher import VspherePublisher
netskope = pulumi.Config("netskope") config = pulumi.Config()
publisher = VspherePublisher( "publisher", name_prefix="pub-vsphere", replicas=2, tenant_url=netskope.require("tenantUrl"), bearer_token=netskope.require_secret("bearerToken"), datacenter=config.require("datacenter"), datastore=config.require("datastore"), network_name=config.require("networkName"), template_name=config.require("templateName"), cluster=config.require("cluster"), folder=config.get("folder"), num_cpus=2, memory=4096, )
pulumi.export("publisherNames", publisher.publisher_names) pulumi.export("publishers", pulumi.Output.secret(publisher.publishers))
|
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var publisher = new VspherePublisher("publisher", new VspherePublisherArgs { NamePrefix = "pub-vsphere", Replicas = 2, TenantUrl = netskope.Require("tenantUrl"), BearerToken = netskope.RequireSecret("bearerToken"), Datacenter = config.Require("datacenter"), Datastore = config.Require("datastore"), NetworkName = config.Require("networkName"), TemplateName = config.Require("templateName"), Cluster = config.Require("cluster"), Folder = config.Get("folder"), NumCpus = 2, Memory = 4096, });
|
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| publisher, err := netskopepublisher.NewVspherePublisher(ctx, "publisher", &netskopepublisher.VspherePublisherArgs{ NamePrefix: pulumi.String("pub-vsphere"), Replicas: pulumi.Int(2), TenantUrl: pulumi.String(netskope.Require("tenantUrl")), BearerToken: netskope.RequireSecret("bearerToken"), Datacenter: pulumi.String(cfg.Require("datacenter")), Datastore: pulumi.String(cfg.Require("datastore")), NetworkName: pulumi.String(cfg.Require("networkName")), TemplateName: pulumi.String(cfg.Require("templateName")), Cluster: pulumi.String(cfg.Require("cluster")), Folder: pulumi.StringPtr(cfg.Get("folder")), NumCpus: pulumi.Int(2), Memory: pulumi.Int(4096), }) if err != nil { return err } ctx.Export("publisherNames", publisher.PublisherNames) ctx.Export("publishers", pulumi.ToSecret(publisher.Publishers))
|
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| var publisher = new VspherePublisher("publisher", VspherePublisherArgs.builder() .namePrefix("pub-vsphere") .replicas(2) .tenantUrl(netskope.require("tenantUrl")) .bearerToken(netskope.requireSecret("bearerToken")) .datacenter(config.require("datacenter")) .datastore(config.require("datastore")) .networkName(config.require("networkName")) .templateName(config.require("templateName")) .cluster(config.require("cluster")) .folder(config.get("folder").orElse(null)) .numCpus(2) .memory(4096) .build());
ctx.export("publisherNames", publisher.publisherNames()); ctx.export("publishers", Output.secret(publisher.publishers()));
|
Rust
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| let publisher = netskope::vsphere_publisher::create( ctx, "publisher", netskope::vsphere_publisher::VspherePublisherArgs::builder() .name_prefix("pub-vsphere") .replicas(2) .tenant_url("https://tenant.goskope.com") .bearer_token("secret-token") .datacenter("Lab") .datastore("datastore1") .network_name("VM Network") .template_name("npa-publisher-template") .cluster("Cluster") .num_cpus(2) .memory(4096) .build_struct(), );
add_export("publisherNames", &publisher.publisher_names); add_export("publishers", &publisher.publishers);
|