> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pangolin.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Kubernetes

> How to deploy a Newt Site on Kubernetes

<div id="pangolin-toc-cta" className="pangolin-toc-cta-source">
  <Card title="Try free on Pangolin Cloud" icon="cloud" href="https://app.pangolin.net/auth/signup" arrow="true" cta="Sign up free">
    Fastest way to get started with Pangolin using the hosted control plane. No credit card required.
  </Card>
</div>

This guide walks you through setting up Newt on Kubernetes using Helm.

This guide assumes you already are familiar with Kubernetes concepts and you fulfill the following Global prerequisites:

## Global Prerequisites

* Kubernetes Cluster (v1.28.15+)
* Access to the Kubernetes Cluster
* Helm (v3.0+) installed, see <Link href="https://helm.sh/docs/intro/install/">Helm install docs</Link>

## Helm Installation

All Fossorial Helm charts are available on Artifact Hub. See <Link href="https://artifacthub.io/packages/search?org=fosrl">Fossorial Charts</Link>.

<Steps>
  <Step title="Add Fossorial Helm repo">
    ```bash theme={"dark"}
    helm repo add fossorial https://charts.fossorial.io
    helm repo update fossorial
    helm search repo fossorial
    ```
  </Step>

  <Step title="Prepare Installation files">
    Prepare your Newt credentials:

    ```env title="newt-cred.env" theme={"dark"}
    PANGOLIN_ENDPOINT=<your-endpoint>
    NEWT_ID=<your-id>
    NEWT_SECRET=<your-secret>
    ```

    Prepare a values file with your desired configuration.

    <Tip>See <Link href="https://github.com/fosrl/helm-charts/tree/main/charts/newt">Newt chart values configuration options</Link>.</Tip>

    ```yaml title="values-newt.yaml" theme={"dark"}
    newtInstances:
      - name: main
        enabled: true
        auth:
          existingSecretName: newt-cred
          keys:
            endpointKey: PANGOLIN_ENDPOINT
            idKey: NEWT_ID
            secretKey: NEWT_SECRET
    ```
  </Step>

  <Step title="Newt Installation">
    Create a Kubernetes Secret from the env file created earlier:

    ```bash theme={"dark"}
    kubectl create secret generic newt-cred -n newt --from-env-file=newt-cred.env
    ```

    Install Newt with Helm:

    ```bash theme={"dark"}
    helm install my-newt fossorial/newt \
      -n newt --create-namespace \
      -f values-newt.yaml
    ```

    Change the release name (`my-newt`), namespace (`newt`), and values filename as needed.
  </Step>

  <Step title="Upgrade or rollback">
    ```bash theme={"dark"}
    # Update repo to get latest charts
    helm repo update fossorial
    # Upgrade Newt (after editing values)
    helm upgrade my-newt fossorial/newt -n newt -f values-newt.yaml
    ```

    ```bash theme={"dark"}
    # Roll back to a previous revision
    helm rollback my-newt 1 -n newt
    ```
  </Step>
</Steps>

## Customizing Your Values

All configuration options are documented in the respective repositories:

* <Link href="https://github.com/fosrl/helm-charts/tree/main/charts/newt">Newt Helm chart values</Link>

## References

* <Link href="https://github.com/fosrl/helm-charts">All Fossorial Helm Charts repo</Link>
* <Link href="https://github.com/fosrl/kubernetes">All Fossorial Kubernetes resources</Link>
* <Link href="https://github.com/fosrl/pangolin-kube-controller">Pangolin Kubernetes Controller</Link>
* <Link href="https://helm.sh/docs/">Helm documentation</Link>
