Install in an offline environment

Sections

Use these instructions to install Continuous Delivery for PE in an air-gapped or offline environment where the Continuous Delivery for PE host server does not have direct access to the internet.

Before you begin
  1. Review the system requirements.
    While Continuous Delivery for PE can be installed on a single server, installing on three servers is recommended to provide redundancy. Each server must meet the following minimum requirements:
    Memory Storage CPUs Open ports
    8 GB
    • At least 60 GB for /opt/replicated

    • At least 32 GB for /var/lib/kubelet

    • At least 40 GB for /var/lib/docker
    4 (or equivalent)

    TCP: 443, 2379,2380, 6443, 6783, 8000, 8800, and 10250

    UDP: 6783 and 6784

    Note: If Continuous Delivery for PE is used by more than one team in your organization, allocate additional storage space to /opt/replicated to support the increased load on the system.
    Note: Swap, Firewalld, and SELinux are not supported for use with this version of Continuous Delivery for PE. The installation script will attempt to disable these services if they are present.
  2. Ensure that IP address ranges 10.96.0.0/22 and 10.32.0.0/22 are locally accessible. See Resolving IP address range conflicts for instructions.
  3. Ensure that the nodes can resolve their own hostnames, through either local host mapping or a reachable DNS server.
This installation process results in a basic Continuous Delivery for PE instance that is configured for optional high availability. Installation will take several (mostly hands-off) minutes to complete, so get yourself a snack to enjoy during the process.
  1. Create a DNS entry for the Continuous Delivery for PE service. This entry is separate from the DNS entry for the host Continuous Delivery for PE is installed on.
    If you decide to use a high availability architecture for your installation, this DNS entry will be pointed at a load balancer. Once installation is complete, we'll walk you through the optional process of setting up the load balancer and adding additional control plane nodes to enable high availability.
  2. From a workstation with internet access, download the cluster install bundle (note that this bundle is ~3GB):
    https://pup.pt/cd4pe-bundle
  3. Copy the install bundle to the host node and unpack it:
     tar xzf cd4pe-bundle
  4. Run the install command:
    cat install.sh | sudo bash -s airgap ha 
    1. When prompted for a load balancer address, enter the address of the DNS entry for the Continuous Delivery for PE service that you created in step 1.
    2. The installation script will print the address and password (only shown once, so make careful note of it) for the platform admin console:
      ---
      Kotsadm: http://<PLATFORM ADMIN CONSOLE ADDRESS>:8800
      Login with password (will not be shown again): <PASSWORD>
      ---
      Note: If you lose this password or wish to change it, see Resetting the platform admin console password for instructions.
  5. After installation is complete, navigate to the platform admin console using the address provided by the installation script and follow the prompts.
    The platform admin console is where you manage the Continuous Delivery for PE application. You’ll be guided through the process of setting up SSL certificates, uploading a license, and checking to make sure your infrastructure meets Continuous Delivery for PE system requirements.
  6. When prompted, upload an .airgap bundle for the most recent version of Continuous Delivery for PE. Available bundles are shown in the following chart:
  7. To configure your installation click Config.
    1. In the Hostname field, enter the name of the DNS entry for the Continuous Delivery for PE service that you created in step 1.
    2. Set up the Continuous Delivery for PE root user account: enter an email address and choose a password.
    3. Configure any other settings on the page relevant to your installation, such as external databases, customized endpoints, or TLS certificates.
    4. When you've finished making any necessary changes to the configuration, click Save config. Saving your new configuration settings prompts the creation of a new Continuous Delivery for PE version.
  8. Click Go to new version, which redirects you to the Version history tab. The newly created version is shown in the All versions section of the page.
  9. Monitor the new version's preflight checks. The Running Checks indicator is shown on the screen while Continuous Delivery for PE checks your system to make sure your cluster meets minimum system requirements. When the preflight check is complete:
    • If the status is Checks Failed, click View preflights. Correct the issues and click Re-run. Repeat this step as needed.
      Important: Do not move on until all preflight checks pass.
    • If the status is Ready to Deploy, move on to the next step.
  10. Once the version is ready to deploy, click Deploy. On the Application tab, monitor the application for readiness.
    The application's status is shown as Missing for several minutes while deployment is underway. To monitor the deployment's progress, run kubectl get pods --watch.

    When the deployment is complete, the application status changes to Ready.

  11. Installation is now complete! Navigate to https://<HOSTNAME> (using the name of the DNS entry you created in step 1 and entered on the Config screen in step 4a) and sign into Continuous Delivery for PE.
What to do next

Resolving IP address range conflicts

When installing in an offline environment, IP address ranges 10.96.0.0/22 and 10.32.0.0/22 must be locally accessible. To resolve IP address range conflicts, create a patch.yaml file and add the installer-spec-file=patch.yaml argument when running the installation script.

If you use IP addresses internally that overlap 10.32.0.0/22, add the following to your patch.yaml file (10.40.0.0/22 used here as an example range):
apiVersion: cluster.kurl.sh/v1beta1
kind: Installer
metadata:
  name: patch
spec:
  weave:
    podCIDR: 10.40.0.0/22
If you use IP addresses internally that overlap 10.96.0.0/22, add the following to your patch.yaml file (10.100.0.0/16 used here as an example range):
spec:
  ...
  kubernetes:
    serviceCIDR: 10.100.0.0/16
CAUTION: The podCIDR and serviceCIDR ranges must not overlap.
Once your patch.yaml file is set up, add the installer-spec-file=patch.yaml argument when you run the installation script:
cat install.sh | sudo bash -s airgap installer-spec-file=patch.yaml
Remember: Add the installer-spec-file=patch.yaml argument any time you re-run the installation script, such as when reinstalling to upgrade to a new version.
How helpful was this page?

If you leave us your email, we may contact you regarding your feedback. For more information on how Puppet uses your personal information, see our privacy policy.

Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.