1. Packages
  2. Packages
  3. Netskope Publisher
Viewing docs for Netskope Publisher v0.1.11
published on Wednesday, May 20, 2026 by johnneerdael

Netskope Publisher

netskope-publisher logo
Viewing docs for Netskope Publisher v0.1.11
published on Wednesday, May 20, 2026 by johnneerdael

    The Netskope Publisher package provides Pulumi component resources for provisioning Netskope Private Access Publishers on AWS, Azure, Google Cloud, Kubernetes, vSphere, ESXi, Hcloud, Nutanix, OpenStack, OVH, Scaleway, OCI, and Alicloud. The package mirrors the Terraform module pattern: register or reuse Netskope publisher records, generate per-publisher cloud-init, and create the virtual machines that run the publisher appliance. On Kubernetes, it installs the kubernetes-netskope-publisher Helm chart.

    Components

    • AwsPublisher creates EC2-backed publishers.
    • AzurePublisher creates Azure virtual machine backed publishers.
    • GcpPublisher creates Google Compute Engine backed publishers.
    • KubernetesPublisher installs Helm chart backed publishers.
    • VspherePublisher creates vSphere virtual machine backed publishers.
    • EsxiPublisher creates direct-host ESXi backed publishers.
    • HcloudPublisher, NutanixPublisher, OpenstackPublisher, OvhPublisher, ScalewayPublisher, OciPublisher, and AlicloudPublisher create Ubuntu 22.04 bootstrap-mode publishers.
    • HypervPublisher is experimental and remains opt-in.

    Each component accepts either Netskope tenant credentials for automatic publisher registration or pre-created registration tokens keyed by publisher name.

    Java and Rust SDKs are also generated. Java uses Pulumi’s standard package SDK generator. Rust uses Pulumi Gestalt and requires the Gestalt Rust language plugin in Rust Pulumi programs.

    TypeScript example

    import { AwsPublisher } from "@johninnl/pulumi-netskope-publisher";
    
    const publisher = new AwsPublisher("publisher", {
      namePrefix: "pub-eu",
      replicas: 2,
      tenantUrl: "https://example.goskope.com",
      apiToken: "ns-api-token",
      subnetId: "subnet-0123456789abcdef0",
      securityGroupIds: ["sg-0123456789abcdef0"],
    });
    

    Python example

    from pulumi_netskope_publisher import AwsPublisher
    
    publisher = AwsPublisher(
        "publisher",
        name_prefix="pub-eu",
        replicas=2,
        tenant_url="https://example.goskope.com",
        api_token="ns-api-token",
        subnet_id="subnet-0123456789abcdef0",
        security_group_ids=["sg-0123456789abcdef0"],
    )
    

    C# example

    using Pulumi;
    using Pulumi.NetskopePublisher;
    
    return await Deployment.RunAsync(() =>
    {
        var publisher = new AwsPublisher("publisher", new AwsPublisherArgs
        {
            NamePrefix = "pub-eu",
            Replicas = 2,
            TenantUrl = "https://example.goskope.com",
            ApiToken = "ns-api-token",
            SubnetId = "subnet-0123456789abcdef0",
            SecurityGroupIds = new[] { "sg-0123456789abcdef0" },
        });
    });
    

    Go example

    package main
    
    import (
    	"github.com/johnneerdael/pulumi-netskope-publisher/sdk/go/netskopepublisher"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := netskopepublisher.NewAwsPublisher(ctx, "publisher", &netskopepublisher.AwsPublisherArgs{
    			NamePrefix: pulumi.StringPtr("pub-eu"),
    			Replicas: pulumi.IntPtr(2),
    			TenantUrl: pulumi.StringPtr("https://example.goskope.com"),
    			ApiToken: pulumi.StringPtr("ns-api-token"),
    			SubnetId: pulumi.String("subnet-0123456789abcdef0"),
    			SecurityGroupIds: pulumi.StringArray{
    				pulumi.String("sg-0123456789abcdef0"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Java example

    package myproject;
    
    import com.pulumi.Pulumi;
    import com.pulumi.netskopepublisher.AwsPublisher;
    import com.pulumi.netskopepublisher.AwsPublisherArgs;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(ctx -> {
                new AwsPublisher("publisher", AwsPublisherArgs.builder()
                    .namePrefix("pub-eu")
                    .replicas(2)
                    .tenantUrl("https://example.goskope.com")
                    .apiToken("ns-api-token")
                    .subnetId("subnet-0123456789abcdef0")
                    .securityGroupIds("sg-0123456789abcdef0")
                    .build());
            });
        }
    }
    

    Rust example

    mod netskope {
        pulumi_gestalt_rust::include_provider!("netskope-publisher");
    }
    
    use anyhow::Result;
    use pulumi_gestalt_rust::*;
    
    fn main() {
        run(pulumi_main).unwrap();
    }
    
    fn pulumi_main(ctx: &Context) -> Result<()> {
        let publisher = netskope::aws_publisher::create(
            ctx,
            "publisher",
            netskope::aws_publisher::AwsPublisherArgs::builder()
                .name_prefix("pub-eu")
                .replicas(2)
                .tenant_url("https://example.goskope.com")
                .api_token("ns-api-token")
                .subnet_id("subnet-0123456789abcdef0")
                .security_group_ids(vec!["sg-0123456789abcdef0".to_string()])
                .build_struct(),
        );
    
        add_export("publisherNames", &publisher.publisher_names);
        Ok(())
    }
    

    Provider-specific examples are available in the repository under examples/.

    netskope-publisher logo
    Viewing docs for Netskope Publisher v0.1.11
    published on Wednesday, May 20, 2026 by johnneerdael

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial