Start Building for Free
CircleCI.comAcademyBlogCommunitySupport

Phase 1 - Prerequisites

3 weeks ago1 min read
Server v4.3
Server Admin
On This Page

The guides in this section walk you through the steps required to install CircleCI server in an air-gapped environment.

Required components for air-gapped installation

The following table shows an overview of the prerequisites required to run an air-gapped CircleCI server installation. These items must be present in your air-gapped environment in order to move forward with the installation.

ComponentUsed for

Container registry

Hosting CircleCI server images for Kubernetes

A Kubernetes cluster

Running CircleCI server

An object storage system (MinIO)

Object and artifact storage

GitHub Enterprise

Source of code for CircleCI server to build

Nomad Virtual Machines

Machines for running Nomad

1. Copy images

CircleCI server is deployed into a Kubernetes cluster using a Helm chart. You will need to copy the latest images and charts from CircleCI into your virtual environment. All images referenced in the CircleCI Helm chart must be accessible within your air-gapped environment.

a. Log in to CircleCI server container registry

Access to the images you need for your installation requires you to use a username and token, which will be provided by CircleCI. Access the CircleCI support portal for more information.

docker login cciserver.azurecr.io --username <your-circleci-provided-username> --password <your-circleci-provided-token>

b. Download all images required for this release

Download all images required for the release of CircleCI server to your local machine. This list contains all required images for the Helm installation, the CircleCI Agent, and the Reality Check testing tool.

SERVER_4_2_IMAGE_LIST=`cat <<EOF
bitnami/postgresql:12.6.0
cciserver.azurecr.io/api-gateway:0.1.31061-3f64088
cciserver.azurecr.io/api-service:0.1.14854-4511416d
cciserver.azurecr.io/audit-log-service:0.1.998-89eb4f7
cciserver.azurecr.io/branch-service-migrator:0.1.4402-22a3075
cciserver.azurecr.io/branch-service:0.1.4401-22a3075
cciserver.azurecr.io/builds-service-migrator:1.0.3936-0a6e946
cciserver.azurecr.io/builds-service:1.0.3936-0a6e946
cciserver.azurecr.io/circle-migrator:0.1.608150-61594abcce
cciserver.azurecr.io/contexts-service-migrator:0.1.18751-df77431
cciserver.azurecr.io/contexts-service:0.1.18752-df77431
cciserver.azurecr.io/cron-service-migrator:0.1.3996-a877941
cciserver.azurecr.io/cron-service:0.1.3997-a877941
cciserver.azurecr.io/distributor-migrator:1.0.93790-1c54ce3f
cciserver.azurecr.io/distributor:1.0.118147-82612764
cciserver.azurecr.io/domain-service-migrator:0.1.16299-0ae3a97
cciserver.azurecr.io/domain-service:0.1.16298-0ae3a97
cciserver.azurecr.io/frontend:0.2.32025-61594ab
cciserver.azurecr.io/init-known-hosts:0.1.43-c73c028
cciserver.azurecr.io/insights-service-migrator:0.1.78685-a5529e4e
cciserver.azurecr.io/insights-service:0.1.78686-a5529e4e
cciserver.azurecr.io/nomad:1.1.2-74-7552671
cciserver.azurecr.io/orb-service-analytics-migrator:0.1.64074-785435a1
cciserver.azurecr.io/orb-service-migrator:0.1.64070-785435a1
cciserver.azurecr.io/orb-service:0.1.64072-785435a1
cciserver.azurecr.io/permissions-service-migrator:0.1.13413-18c6091
cciserver.azurecr.io/permissions-service:0.1.13412-18c6091
cciserver.azurecr.io/policy-service:0.1.5903-bf94009
cciserver.azurecr.io/server-license:0.1.113-be11908
cciserver.azurecr.io/test-results:0.1.3402-e561bf7
cciserver.azurecr.io/vault-cci:0.4.196-1af3417
cciserver.azurecr.io/web-ui-404:0.1.9529-970af08
cciserver.azurecr.io/web-ui-insights:0.1.112357-ef9cd7a2
cciserver.azurecr.io/web-ui-onboarding:0.1.122920-771e5aa3
cciserver.azurecr.io/web-ui-org-settings:0.1.20726-659414c
cciserver.azurecr.io/web-ui-project-settings:0.1.38325-1f12a5dc
cciserver.azurecr.io/web-ui-server-admin:0.1.3424-9c4b737
cciserver.azurecr.io/web-ui-user-settings:0.1.33337-96cebbc
cciserver.azurecr.io/web-ui:0.1.243845-214e7f96a
cciserver.azurecr.io/webhook-service-migrator:0.1.8515-28c3b65
cciserver.azurecr.io/webhook-service:0.1.8516-28c3b65
cciserver.azurecr.io/workflows-conductor-migrator:1.0.17596-e89bfdb
cciserver.azurecr.io/workflows-conductor:1.0.17596-e89bfdb
circleci/picard:1.0.151412-85da0b64
docker.io/bitnami/mongodb:3.6.22-debian-9-r38
docker.io/bitnami/postgresql:12.6.0
docker.io/bitnami/rabbitmq:3.11.16-debian-11-r0
docker.io/bitnami/redis:6.2.1-debian-10-r13
hashicorp/nomad-autoscaler:0.3.6
kong:2.7.0
mongo:3.6
nginx:1.21.6
quay.io/soketi/soketi:0.19-16-distroless
telegraf:1.24-alpine
cimg/base:2021.02-20.04
docker:17.06-git
alpine:latest
circleci/node:latest
circleci/python
python:3.6.0
EOF
`
echo $SERVER_4_2_IMAGE_LIST | while read -r image; do docker pull $image; done

c. Copy all images to your air-gapped environment

Copy all downloaded images to the container registry in your air-gapped environment.

2. Copy charts

Copy the CircleCI server Helm chart to your air-gapped environment.

a. Download the latest CircleCI server Helm chart

Download the latest CircleCI server Helm chart to the current directory.

helm registry login cciserver.azurecr.io
helm pull oci://cciserver.azurecr.io/circleci-server -d ./

b. Copy the Helm chart to your air-gapped environment

Copy the downloaded .tgz Helm chart to your air-gapped environment.

Next steps

Once the steps on this page are complete, go to the Phase 2 - Configure object storage guide.


Suggest an edit to this page

Make a contribution
Learn how to contribute