Phase 1 - Prerequisites
On This Page
- Required components for air-gapped installation
- 1. Copy images
- a. Log in to CircleCI server container registry
- b. Download all images required for this release
- c. Copy all images to your air-gapped environment
- 2. Copy charts
- a. Download the latest CircleCI server Helm chart
- b. Copy the Helm chart to your air-gapped environment
- Next steps
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 forwards with the installation.
Component | Used 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. Visit support.circleci.com 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_1_IMAGE_LIST=`cat <<EOF
bitnami/postgresql:12
cciserver.azurecr.io/api-gateway:0.1.27056-791021f
cciserver.azurecr.io/api-service:0.1.13307-ac5e1215
cciserver.azurecr.io/audit-log-service:0.1.994-cc7f017
cciserver.azurecr.io/branch-service-migrator:0.1.4205-f54b104
cciserver.azurecr.io/branch-service:0.1.4206-f54b104
cciserver.azurecr.io/builds-service-migrator:1.0.2954-dbc4487
cciserver.azurecr.io/builds-service:1.0.2954-dbc4487
cciserver.azurecr.io/circle-migrator:0.1.580305-e9d88a9834
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.3889-3c348df
cciserver.azurecr.io/cron-service:0.1.3890-3c348df
cciserver.azurecr.io/distributor-migrator:1.0.93790-1c54ce3f
cciserver.azurecr.io/distributor:1.0.93790-1c54ce3f
cciserver.azurecr.io/domain-service-migrator:0.1.15701-ddd2312
cciserver.azurecr.io/domain-service:0.1.15700-ddd2312
cciserver.azurecr.io/frontend:0.2.30085-e9d88a9
cciserver.azurecr.io/init-known-hosts:0.1.26-9f89d4e
cciserver.azurecr.io/insights-service-migrator:0.1.73818-7d0fb8dc
cciserver.azurecr.io/insights-service:0.1.73817-7d0fb8dc
cciserver.azurecr.io/nomad:1.1.2-74-7552671
cciserver.azurecr.io/orb-service-analytics-migrator:0.1.57046-2560e791
cciserver.azurecr.io/orb-service-migrator:0.1.57047-2560e791
cciserver.azurecr.io/orb-service:0.1.57044-2560e791
cciserver.azurecr.io/output-processing:0.1.66391-202888aa
cciserver.azurecr.io/permissions-service-migrator:0.1.12572-4b05edc
cciserver.azurecr.io/permissions-service:0.1.12571-4b05edc
cciserver.azurecr.io/picard-dispatcher:0.1.65675-630fe5d4
cciserver.azurecr.io/schedulerer:0.1.65674-630fe5d4
cciserver.azurecr.io/server-license:0.1.95-157a965
cciserver.azurecr.io/test-results:0.1.3402-e561bf7
cciserver.azurecr.io/vault-cci:0.4.196-1af3417
cciserver.azurecr.io/vm-gc:0.1.114020-e01a8b25
cciserver.azurecr.io/vm-scaler:0.1.114020-e01a8b25
cciserver.azurecr.io/vm-service-db-migrator:0.1.114020-e01a8b25
cciserver.azurecr.io/vm-service:0.1.114020-e01a8b25
cciserver.azurecr.io/web-ui-404:0.1.9529-970af08
cciserver.azurecr.io/web-ui-insights:0.1.108760-b138c234
cciserver.azurecr.io/web-ui-onboarding:0.1.117606-4a3d0ba8
cciserver.azurecr.io/web-ui-org-settings:0.1.19935-d372381
cciserver.azurecr.io/web-ui-project-settings:0.1.37243-f36511fa
cciserver.azurecr.io/web-ui-server-admin:0.1.2823-6a139c7
cciserver.azurecr.io/web-ui-user-settings:0.1.32852-6335f1b
cciserver.azurecr.io/web-ui:0.1.243845-214e7f96a
cciserver.azurecr.io/webhook-service-migrator:0.1.8118-61d0143
cciserver.azurecr.io/webhook-service:0.1.8119-61d0143
cciserver.azurecr.io/workflows-conductor-migrator:1.0.16104-a0e7a1f
cciserver.azurecr.io/workflows-conductor:1.0.16104-a0e7a1f
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.8.14-debian-10-r10
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_1_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.