Skip to main content

Jama Connect Help

Capture KOTS Installer (KOTS)

When you restore a snapshot in a new cluster, the version of KOTS and its add-ons must match those of the original cluster. Capture each KOTS Installer that was used to create or update your clusters.

Why capture the kurl URL?

A hashed kurl URL (for example, https://kurl.sh/c601b1e) points to a website where you can get the installation script or Kubernetes airgap bundle. Both require you to install the same version of KOTS and add-ons. You must capture this kurl URL because the Replicated Channel URL that was used to install KOTS always pulls the latest KOTS installer that has been promoted. If you rerun the installer from the channel to enable an advanced option or you create a cluster to restore a snapshot, you might accidentally update the KOTS version and it's add-ons.

Note

Replicated Vendor maintains a history of every installer that has been promoted to a channel. If for any reason the kurl URL captured in this procedure doesn't work, it can be provided to Jama Software and we might be able to find a similar installer in our KOTS Installer History.

To capture the KOTS Installer:

  1. Use the following installer resource information to create a .yaml file named installer.yaml:

    cat <<EOT >> installer.yaml
    apiVersion: cluster.kurl.sh/v1beta1
    kind: Installer
    metadata:
      name: latest
    EOT
  2. Get all installer resources in your cluster, and copy down the name of the installer that you used to download it:

    kubectl get installers
  3. Gather the installer details, replacing the <installer-name> parameter:

    kubectl get installers <installer-name> -o yaml
  4. From the results, copy the spec section and paste it at the end of the installer.yaml file that you created.

    The file looks similar to this example of a KOTS Installer:

    apiVersion: cluster.kurl.sh/v1beta1
    kind: Installer
    metadata:
      name: latest
    spec:
      certManager:
        version: 1.9.1
      containerd:
        version: 1.6.24
      contour:
        version: 1.25.2
      ekco:
        version: 0.28.3
      flannel:
        version: 0.22.3
      kotsadm:
        applicationSlug: jama-k8s/standardkots
        version: 1.103.3
      kubernetes:
        version: 1.27.6
      metricsServer:
        version: 0.6.4
      minio:
        version: 2023-09-30T07-02-29Z
      openebs:
        isLocalPVEnabled: true
        localPVStorageClassName: local
        version: 3.9.0
      prometheus:
        version: 0.68.0-51.0.0
      registry:
        version: 2.8.3
      velero:
        version: 1.11.1
  5. Send the installer.yaml file to the create installer API from Replicated to receive a hashed URL:

    curl -X POST -H "Content-Type: text/yaml" --data-binary "@installer.yaml" \
    https://kurl.sh/installer && echo ""
  6. Save the kurl URL that is displayed. It looks similar to https://kurl.sh/c601b1e.