Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c80753b
set up server 4.9 docs
rosieyohannan Nov 4, 2025
202cec7
remove 4.8 from content that gets indexed for search
rosieyohannan Nov 4, 2025
3494b66
no index 4.8
rosieyohannan Nov 4, 2025
3bff13a
fix lint errors in 4.8
rosieyohannan Nov 4, 2025
80a7aaa
Merge branch 'main' into server-release-4.9-DOCSS-1958
rosieyohannan Nov 4, 2025
e907b62
fix lint errors
rosieyohannan Nov 4, 2025
143def2
bring over change from 4.8 change PR 9717
rosieyohannan Nov 11, 2025
300e848
adding note about the supported version of docker
soulchips Nov 19, 2025
bda2cc5
adding supported docker version to 4.9 docs
soulchips Nov 19, 2025
51cfed7
Point server 4.9 upgrade steps to newest server-terraform patch (#9772)
christian-stephen Nov 21, 2025
829a597
[ONPREM-2564] - Add docs on how to go from 4.4 to 7.0 (#9776)
imlogang Nov 21, 2025
c040de2
Merge branch 'main' into server-release-4.9-DOCSS-1958
rosieyohannan Dec 4, 2025
a469350
adding client block to values.yaml (#9798)
soulchips Dec 4, 2025
e79abc5
[ONPREM-2694] Replace hardcoded server image list with extraction scr…
christian-stephen Dec 4, 2025
9cfd794
[ONPREM-2695] Update server values table for 4.9 (#9811)
christian-stephen Dec 5, 2025
1d396fe
Merge branch 'main' into server-release-4.9-DOCSS-1958
rosieyohannan Dec 8, 2025
7148210
update upgrade guide and release notes
rosieyohannan Dec 8, 2025
2692405
fix xref
rosieyohannan Dec 8, 2025
abfb385
Update docs/server-admin-4.8/modules/operator/pages/configuring-exter…
rosieyohannan Dec 10, 2025
c184779
Update docs/server-admin-4.8/modules/operator/pages/configuring-exter…
rosieyohannan Dec 10, 2025
e339f0a
Update docs/server-admin-4.8/modules/ROOT/partials/installation/phase…
rosieyohannan Dec 11, 2025
df3875e
Merge branch 'main' into server-release-4.9-DOCSS-1958
rosieyohannan Dec 11, 2025
0b8399d
make updates to nomad guide for DOCSS-1982
rosieyohannan Dec 11, 2025
3c95dff
fix image path
rosieyohannan Dec 11, 2025
12978e3
add nomad clients mTLS config that was missing
rosieyohannan Dec 11, 2025
c0229d4
style formatting
rosieyohannan Dec 11, 2025
0b1cea6
style and formatting fixes
rosieyohannan Dec 11, 2025
f2ef32e
add what minio is used for
rosieyohannan Dec 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion antora-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ content:
start_path: docs/reference
- url: .
start_path: docs/orbs
- url: .
start_path: docs/server-admin-4.9
- url: .
start_path: docs/server-admin-4.8
- url: .
Expand Down Expand Up @@ -49,7 +51,7 @@ asciidoc:
serverversion46: 4.6.6
serverversion47: 4.7.11
serverversion48: 4.8.5
serverversion: 3.4.8
serverversion49: 4.9.0
terraformversion: 0.15.4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are here...

@atulsingh0, does this version still make sense? This is supposed to be the minimal version supported.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This version gets updated when patch releases go out which updates the version quoted in various places across the docs

dockerversion: v28
kubectlversion: 1.19
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ NOTE: During the installation process, you may use the following command to gene
[#api-token]
=== a. API token

The application requires a Kubernetes Secret containing an API token. This API token is used to facilitate internal API communication to the API service. Use a random string and store it securely. CircleCI will not be able to recover this value if lost. You have two options depending on whether you want to create the Kubernetes Secret, or if you want CircleCI to create it for you.
The application requires a Kubernetes Secret containing an API token. This API token is used to facilitate internal API communication to `api-service`. Use a random string and store it securely. CircleCI will not be able to recover this value if lost. You have two options depending on whether you want to create the Kubernetes Secret, or if you want CircleCI to create it for you.

[tabs]
====
Expand Down Expand Up @@ -188,7 +188,8 @@ keyset:

[#postgres-credentials]
==== i. Credentials
The application requires a Kubernetes Secret containing PostgreSQL credentials. This requirement applies when using either the internal (default) or an externally hosted instance of PostgreSQL. CircleCI will not be able to recover the values if lost. Based on how you prefer to manage Kubernetes Secrets you have two options.

The application requires a Kubernetes Secret containing PostgreSQL credentials. This Secret is required when using either the internal (default) or an externally hosted instance of PostgreSQL. CircleCI will not be able to recover the values if lost. Based on how you prefer to manage Kubernetes Secrets there are two options.

[tabs]
====
Expand Down Expand Up @@ -264,7 +265,7 @@ postgresql:

=== e. MongoDB credentials

The application requires a Kubernetes Secret containing MongoDB credentials. This requirement applies when using either the internal (default) or an externally hosted instance of MongoDB. CircleCI will not be able to recover the values if lost. Based on how you prefer to manage Kubernetes Secrets you have two options.
The application requires a Kubernetes Secret containing MongoDB credentials. This Secret is required when using either the internal (default) or an externally hosted MongoDB instance. CircleCI will not be able to recover the values if lost. Based on how you prefer to manage Kubernetes Secrets, there are two options:

[tabs]
====
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Additional considerations
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This page presents some items that should be considered when starting an air-gapped installation of CircleCI server v4.8.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Example `values.yaml`
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This page presents an example values.yaml file to help with setting up an air-gapped installation of CircleCI server v4.8.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 1 - Prerequisites
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:experimental:
:page-description: A guide to installing CircleCI server v4.8 in an air-gapped environment. Requirements, images and Helm charts.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 2 - Configure object storage
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: How to configure object storage through MinIO to run CircleCI server v4.8 in an air-gapped environment.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 3 - install CircleCI server
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: How to install the CircleCI server v4.8 Helm deployment to an air-gapped environment.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 4 - Configure Nomad clients
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: How to configure Nomad clients to run with CircleCI server v4.8 in an air-gapped environment.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 5 - Test your installation
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: How to test your CircleCI server v4.8 installation in an air-gapped environment.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Hardening your cluster
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This section provides supplemental information on hardening your Kubernetes cluster for CircleCI server v4.8.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Installation reference
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Reference documentation for installing CircleCI server v4.8.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Installing server behind a proxy
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Learn how to install CircleCI server v4.8 behind a proxy.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 1 AWS - Prerequisites
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Find the general and infrastructure-specific requirements that are needed in order to configure the CircleCI server v4.8 application.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 1 GCP - Prerequisites
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Find the general and infrastructure-specific requirements that are needed in order to configure the CircleCI server v4.8 application.
:env-gcp:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 2 AWS - core services
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Installation guide for CircleCI server v4.8 core services.
:env-aws:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 2 GCP - core services
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Installation guide for CircleCI server v4.8 core services.
:env-gcp:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 3 AWS - execution environments
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Installation guide for CircleCI server v4.8 execution environments.
:env-aws:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 3 GCP - execution environments
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Installation guide for CircleCI server v4.8 execution environments.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 4 AWS - post installation
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: CircleCI server v4.8 post installation steps.
:env-aws:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Phase 4 GCP - post installation
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: CircleCI server v4.8 post installation steps.
:env-gcp:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Upgrade server
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: "This document lists the steps required to upgrade a CircleCI server v4.8 installation."
:experimental:
Expand Down Expand Up @@ -53,4 +54,4 @@ helm upgrade circleci-server oci://cciserver.azurecr.io/circleci-server -n $name

. Deploy and run link:https://github.com/circleci/realitycheck[`reality check`] in your test environment to ensure your installation is fully operational.

. Migrate any existing machine runner instances from the launch agent to the machine runner 3.0 agent, see the xref:guides:execution-runner:migrate-from-launch-agent-to-machine-runner-3-on-linux.adoc#[migration guide]. The launch agent is not supported.
. Migrate any existing machine runner instances from the launch agent to the machine runner 3.0 agent, see the xref:guides:execution-runner:migrate-from-launch-agent-to-machine-runner-3-on-linux.adoc#[Migration Guide]. The launch agent is not supported.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Application lifecycle
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Learn about CircleCI server v4.8 semantic versioning and release schedules.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
= Backup and restore
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This document outlines recommendations for how to back up and restore your CircleCI server v4.8 instance data and state.
:experimental:

[#overview-backup]
== Overview

When operating and administering CircleCI server, you will need to consider how to maintain backups and recover your installation, should there be a need to migrate it to another cluster or recover from a critical event.
When operating and administering CircleCI server, you will need to maintain backups and recover your installation if you need to migrate to another cluster or recover from a critical event.

CircleCI recommends link:https://velero.io/[Velero] for backup and restore. The benefit of this approach is that it not only restores your application's data,
but it also restores the state of the Kubernetes cluster and its resources at the time of the backup. CirleCI server supports backup and restore with Velero `1.12`. This document outlines recommendations for how to back up and restore your CircleCI server instance data and state using link:https://velero.io/[Velero].
CircleCI recommends link:https://velero.io/[Velero] for backup and restore. The benefit of this approach is in restoring your application's data along with the state of the Kubernetes cluster and its resources at the time of the backup. CirleCI server supports backup and restore with Velero `1.12`. This document outlines recommendations for how to back up and restore your CircleCI server instance data and state using link:https://velero.io/[Velero].

NOTE: Backup and restore of the CircleCI services is dependent on Velero. If your cluster is lost, you will not be able to restore CircleCI until you have successfully started Velero in the cluster. From there you can recover the CircleCI services.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= CircleCI server security features
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This document outlines security features built into CircleCI server v4.8 and related integrations.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
= Configuring external services
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: This document describes how to configure the following external services for use with a CircleCI server v4.8 installation
:experimental:

This page describes how to configure external services for use with either a new CircleCI server v4.8 installation or migrating internal PostgreSQL and MongoDB data from existing CircleCI server v4.8 installation to your externalized datastores.
This page describes how to configure external services for use with a new CircleCI server v4.8 installation. Migration to externalized PostgreSQL and MongoDB is also supported and described in this guide.

[#postgresql]
== PostgreSQL
Expand Down Expand Up @@ -68,7 +69,7 @@ Consider running at least two PostgreSQL replicas to allow recovery from primary

NOTE: If you are doing a fresh install of CircleCI server, then you can skip this section and head to <<connecting-your-external-postgres>>

When a CircleCI server instance is deployed, Postgres is deployed internally by default via its helm chart. However, as an operator, you may wish to externalize this database to have better control over scalability and availability. Once you have configured your external Postgres, you may use the guide below to migrate your Postgres data to your external database.
When a CircleCI server instance is deployed, PostgreSQL is deployed internally by default via its Helm chart. However, as an operator, you may wish to externalize this database to have better control over scalability and availability. Once you have configured your external PostgreSQL, you may use the guide below to migrate your PostgreSQL data to your external database.

CAUTION: This process requires downtime.

Expand Down Expand Up @@ -103,31 +104,31 @@ kubectl exec -it -n "$namespace" "$PG_POD" -- bash
psql -h <your-external-postgres-host> -U postgres -p <your-external-postgres-port>
----

You should be able to connect to your external Postgres at this point. If not, resolve any issues before proceeding.
You should be able to connect to your external PostgreSQL at this point. If not, resolve any issues before proceeding.

TIP: You may use `helm upgrade ...` to restore your CircleCI server instance to a running state.

==== 3. Generate export of your internal PostgreSQL

. Retrieve your internal Postgres credentials:
. Retrieve your internal PostgreSQL credentials:
+
[source,shell]
----
PG_PASSWORD=$(kubectl -n "$namespace" get secrets postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
----
+
NOTE: The username for your internal Postgres is `postgres`. The password is randomly generated unless directly set at installation.
NOTE: The username for your internal PostgreSQL is `postgres`. The password is randomly generated unless directly set at installation.

. Connect to your Postgres pod and perform a Postgres dump:
. Connect to your PostgreSQL pod and perform a PostgreSQL dump:
+
[source,shell]
----
kubectl -n "$namespace" exec -it "$PG_POD" -- bash -c "export PGPASSWORD='$PG_PASSWORD' && pg_dumpall -U postgres -c" > circle.sql
----
+
NOTE: This backup is created in the filesystem used by the Postgres pod. If you wish to store it locally, you may use `kubectl cp -n "$namespace" "$PG_POD":circle.sql /local/dir/circle.sql`
NOTE: This backup is created in the filesystem used by the PostgreSQL pod. If you wish to store it locally, you may use `kubectl cp -n "$namespace" "$PG_POD":circle.sql /local/dir/circle.sql`

. Clean up the Postgres Dump. Your internally deployed Postgres uses the username `postgres`. However, during the restore, the Postgres dump will drop all resources before trying to create new ones, including the `postgres` user. Access the Postgres pod where the dump is stored and run the following commands on the Postgres dump file to remove the lines that would delete the Postgres user.
. Clean up the PostgreSQL Dump. Your internally deployed PostgreSQL uses the username `postgres`. However, during the restore, the PostgreSQL dump will drop all resources before trying to create new ones, including the `postgres` user. Access the PostgreSQL pod where the dump is stored and run the following commands on the PostgreSQL dump file to remove the lines that would delete the PostgreSQL user.
+
[source,shell]
----
Expand All @@ -141,14 +142,14 @@ sed -i".bak" '/ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LO

==== 4. Restore your data in your external PostgreSQL

While still connected to your the internally deployed Postgres, restore the dumped data to your external Postgres:
While still connected to your the internally deployed PostgreSQL, restore the dumped data to your external PostgreSQL:

[source,shell]
----
psql -h <your-external-postgres-host> -U postgres -p <your-external-postgres-port> < circle.sql
----

Now your external Postgres will have your CircleCI server data. In the next section you will update CircleCI server to point to your external Postgres.
Now your external PostgreSQL will have your CircleCI server data. In the next section you will update CircleCI server to point to your external PostgreSQL.

[#connecting-your-external-postgres]
=== Connecting your external PostgreSQL instance to CircleCI server
Expand Down Expand Up @@ -200,7 +201,7 @@ postgresql:
----
--

The changes will take effect upon running `helm install/upgrade`. If you are completing a migration to an externalized PostgreSQL instance then when you perform `helm upgrade`, the scaled down pods will be scaled back to their replica numbers as defined by your `values.yaml`.
The changes will take effect upon running `helm install/upgrade`. If you are completing a migration to an externalized PostgreSQL instance, when you perform `helm upgrade` the scaled down application pods will be scaled back to their replica numbers as defined by your `values.yaml`.


[#backing-up-postgresql]
Expand All @@ -224,7 +225,7 @@ NOTE: If using your own MongoDB instance, it needs to be version 3.6 or higher.

NOTE: If you are doing a fresh install of CircleCI server, then you can skip this section and head to <<connecting-your-external-mongodb>>

When a CircleCI server instance deployed, MongoDB is deployed internally by default via its helm chart. However, as an operator, you may wish to externalize this database to have better control over scalability and availability. Once you have configured your external MongoDB, you may use the guide below to migrate your Mongo data to your external database.
When a CircleCI server instance deployed, MongoDB is deployed internally by default via its Helm chart. However, as an operator, you may wish to externalize this database to have better control over scalability and availability. Once you have configured your external MongoDB, you may use the guide below to migrate your Mongo data to your external database.

CAUTION: This process requires downtime.

Expand Down Expand Up @@ -361,4 +362,4 @@ mongodb:
----
--

The changes will take effect upon running `helm install/upgrade`. If you are completing a migration to an externalized MongoDB instance then when you perform `helm upgrade`, the scaled down pods will be scaled back to their replica numbers as defined by your `values.yaml`.
The changes will take effect upon running `helm install/upgrade`. If you are completing a migration to an externalized MongoDB instance, when you perform `helm upgrade` the scaled down application pods will be scaled back to their replica numbers as defined by your `values.yaml`.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
= Data retention in server
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Learn how to configure data retention policies for MongoDB, PostgreSQL, and object storage buckets in your CircleCI server installation.
:experimental:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
= Expanding internal database volumes
:page-noindex: true
:page-platform: Server v4.8, Server Admin
:page-description: Expanding internal database volumes for CircleCI server v4.8.
:experimental:

[#overview]
== Overview

If you have chosen to deploy either of the CircleCI databases (MongoDB or PostgreSQL) within the cluster, rather than externally provisioning these databases, there may come a point at which the storage space initially made available to these databases is no longer sufficient. Internal databases in your Kubernetes cluster make use of link:https://kubernetes.io/docs/concepts/storage/persistent-volumes/[persistent volumes] for persistent storage. The size of these volumes is determined by persistence volume claims (PVCs). These PVCs request storage space based on what has been made available to the nodes in your cluster.
If you deployed CircleCI databases (MongoDB or PostgreSQL) internally within the cluster, their storage may eventually become insufficient. Internal databases in your Kubernetes cluster make use of link:https://kubernetes.io/docs/concepts/storage/persistent-volumes/[persistent volumes] for persistent storage. The size of these volumes is determined by persistence volume claims (PVCs). These PVCs request storage space based on what has been made available to the nodes in your cluster.

This document runs through the steps required to increase PVCs to expand the space available to your internally deployed databases. This operation should not require any downtime, unless you need to restart your database pods.

Expand Down
Loading