Before Upgrading
See the CircleCI server 4.3 release notes and upgrade guide for this release.
There is a background database migration job that is run on install/upgrade to server 4.3. Customers upgrading to 4.3 must ensure this job completes. Full details can be found in the Upgrade guide.
When upgrading from server v3.x you will need to install v4.0 and then follow the recommended upgrade path before installing this version.
What’s New in Release 4.3.0
The v4.3 release introduces upgraded execution architecture. Previously, VM service was responsible for creating virtual machines for machine and remote Docker jobs. This has been replaced with machine provisioner. The new architecture has improved efficiency and stability. This upgrade also brings server inline with CircleCI cloud execution, meaning server will benefit from future updates faster. Some specific benefits include:
- A new UI for step output, which is better at handling larger output and colour.
- New systems for processing job output (step data, caches, artifacts etc.) is much more efficient.
- Machine and remote Docker jobs no longer run through Nomad so compute costs are cut down significantly.
- You do not need to run a Nomad cluster if you just want to run machine (and/or remote Docker jobs) on your server instance.
- DLC is now configured to run through S3, which is cheaper than running on SSD volumes, and there is no longer a limit on the amount of DLC jobs that can be run in parallel. DLC stays more consistent with better pruning and is shared between all jobs in a project instead of each cache being different.
- VM service could fall back to another region/zone, but machine provisioner can handle gaps in availability through:
- Distributing load across availability zones through round-robining
- Sending a percentage of traffic to a different zone
- Instance type fallbacks based on deficits and success
NEW FEATURES
- Server execution architecture has been upgraded from VM service to machine provisioner. For further information, see the Installation guide.
- Server now ships with a custom postgreSQL image which now supports
pg_crypto
,pg_partman
, andpg_cron
support extensions. - Added a REPL toggle to turn on a background which deletes workflow data older than 1 year. This is off by default.
- Config policies are now fully supported on server.
_compiled_
is now a reserved word in config policies, so that parameterized configuration is fully available to the config policies engine. For further information see the Config policies overview docs. - The
circleci env subst
command is now supported. See the Environment variables docs for more information. - Added support overriding non-CircleCI-managed images.
CHANGES
- Nomad Autoscaler has been updated to 0.3.7.
- Server no longer deploys the Prometheus chart.
NEW SERVICES
New services introduced with this release
- feature-flags
- runner-admin
- docker-provisioner
- execution-gateway
- machine-provisioner
- output
- step
Services removed with this release
- output-processing
- picard-dispatcher
- test-results
- vm-service
DATABASE MIGRATIONS
The following databases will run migrations when upgrading to this version
- distributor
- machineprovisioner - Newly Created
- permissions
- runneradmin - Newly Created
- conductor_production
FIXES
- Fixed a bug that caused the Insights page to crash if a user tried to view job resource usage, which is unsupported on server at this time.
- If a job is retried due to an infrastructure failure, it should no longer cause a workflow to get stuck
- Fixed a bug that would try and pull a project’s config with a suspended user’s token.
KNOWN ISSUES
- All pipelines must re-run from start due to architectural changes.
- The job concurrency limit per organization is hardcoded to 2500. This limit is configurable from version 4.3.2 onwards.
- Vault may not refresh its client token after a month of uptime.
- Retry with SSH for jobs using the machine executor advertises a private IP address. For this reason, retry with SSH for jobs using the machine executor works as standard for public installations, but for private installs you would need to ensure that you can access the private IP advertised. For example, by using a VPN into your VPC.
- CircleCI 1.0 builds are not supported. If an attempt is made to run a 1.0 build, no feedback will be available in the application to indicate the cause of the issue. If a build is run on your installation and does not show up in the CircleCI application, users should be directed to use the CircleCI CLI to validate the project configuration and get details of the possible cause of the issue.
To learn more about Server 4.x installation, migration, or operations please see our documentation.