OCI Component

OciPublisher creates one Oracle Cloud Infrastructure compute instance
per publisher name.

Inputs

Required: compartmentId, availabilityDomain, subnetId, imageId,
and tenantUrl plus apiToken unless registrations is provided.

Optional platform inputs: shape, sshPublicKey, and assignPublicIp.

Image and bootstrap behavior

OCI requires an Ubuntu 22.04 image OCID through imageId. The component
uses bootstrap mode and passes base64 cloud-init through instance
metadata.

Outputs

publisherNames and secret publishers, keyed by publisher name.

Pulumi CLI

1
2
3
4
pulumi config set oci:region eu-frankfurt-1
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
const publisher = new OciPublisher("publisher", {
names: ["pub-fra-1", "pub-fra-2"],
tenantUrl: netskope.require("tenantUrl"),
apiToken: netskope.requireSecret("apiToken"),
compartmentId: config.require("compartmentId"),
availabilityDomain: config.require("availabilityDomain"),
subnetId: config.require("subnetId"),
imageId: config.require("imageId"),
shape: "VM.Standard.E4.Flex",
});

Python

1
2
3
4
5
6
7
8
9
10
11
publisher = OciPublisher(
"publisher",
names=["pub-fra-1", "pub-fra-2"],
tenant_url=netskope.require("tenantUrl"),
api_token=netskope.require_secret("apiToken"),
compartment_id=config.require("compartmentId"),
availability_domain=config.require("availabilityDomain"),
subnet_id=config.require("subnetId"),
image_id=config.require("imageId"),
shape="VM.Standard.E4.Flex",
)

C#

1
2
3
4
5
6
7
8
9
10
11
var publisher = new OciPublisher("publisher", new OciPublisherArgs
{
Names = { "pub-fra-1", "pub-fra-2" },
TenantUrl = netskope.Require("tenantUrl"),
ApiToken = netskope.RequireSecret("apiToken"),
CompartmentId = config.Require("compartmentId"),
AvailabilityDomain = config.Require("availabilityDomain"),
SubnetId = config.Require("subnetId"),
ImageId = config.Require("imageId"),
Shape = "VM.Standard.E4.Flex",
});

Go

1
2
3
4
5
6
7
8
9
10
publisher, err := netskopepublisher.NewOciPublisher(ctx, "publisher", &netskopepublisher.OciPublisherArgs{
Names: pulumi.StringArray{pulumi.String("pub-fra-1"), pulumi.String("pub-fra-2")},
TenantUrl: pulumi.String(netskope.Require("tenantUrl")),
ApiToken: netskope.RequireSecret("apiToken"),
CompartmentId: pulumi.String(cfg.Require("compartmentId")),
AvailabilityDomain: pulumi.String(cfg.Require("availabilityDomain")),
SubnetId: pulumi.String(cfg.Require("subnetId")),
ImageId: pulumi.String(cfg.Require("imageId")),
Shape: pulumi.String("VM.Standard.E4.Flex"),
})

Java

1
2
3
4
5
6
7
8
9
10
var publisher = new OciPublisher("publisher", OciPublisherArgs.builder()
.names("pub-fra-1", "pub-fra-2")
.tenantUrl(netskope.require("tenantUrl"))
.apiToken(netskope.requireSecret("apiToken"))
.compartmentId(config.require("compartmentId"))
.availabilityDomain(config.require("availabilityDomain"))
.subnetId(config.require("subnetId"))
.imageId(config.require("imageId"))
.shape("VM.Standard.E4.Flex")
.build());

Rust

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let publisher = netskope::oci_publisher::create(
ctx,
"publisher",
netskope::oci_publisher::OciPublisherArgs::builder()
.names(vec!["pub-fra-1".to_string(), "pub-fra-2".to_string()])
.tenant_url("https://tenant.goskope.com")
.api_token("secret-token")
.compartment_id("ocid1.compartment.oc1..example")
.availability_domain("AD-1")
.subnet_id("ocid1.subnet.oc1..example")
.image_id("ocid1.image.oc1..ubuntu")
.shape("VM.Standard.E4.Flex")
.build_struct(),
);