Skip to content

Commit 118ca86

Browse files
committed
publish v8 blog post
Signed-off-by: Taylor Silva <dev@taydev.net>
1 parent 508b3ad commit 118ca86

5 files changed

Lines changed: 216 additions & 0 deletions

File tree

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
---
2+
title: v8 - New Year, New Concourse Release
3+
date: 2026-01-15
4+
authors:
5+
- tsilva
6+
---
7+
8+
[v8.0.0](https://github.com/concourse/concourse/releases/tag/v8.0.0) of
9+
Concourse is out! I'm going to explain why a new major was needed and flag
10+
anything that pipeline writers and Concourse operators should keep an eye out
11+
for.
12+
13+
<!-- more -->
14+
15+
## ✨ New Website
16+
17+
First, huge thanks to [kcbimonte](https://github.com/kcbimonte) for doing the
18+
tedious work of migrating the website off of [booklit](https://booklit.page/)
19+
and onto MkDocs. We will eventually move it all over to
20+
[Zensical](https://zensical.org/) once they have all the features we need.
21+
22+
My hope with the new site is that it's easier for users to contribute to the
23+
docs now. Booklit had its pros, particularly with how internal links were
24+
handled, but it was definitely a bit of a challenge to extend and change. It
25+
was also quite a hurdle for new users to understand.
26+
27+
Now, onto the new release!
28+
29+
## Why a New Major Version?
30+
31+
As a project, Concourse avoids making actually breaking changes. For example, a
32+
pipeline from v4 of Concourse should still continue to work on v8 of Concourse.
33+
That said, we have made major version bumps over the years, but they're usually
34+
not for "breaking changes" in the traditional sense.
35+
36+
With Concourse, major version bumps have been motivated by large/long-running
37+
database migrations. Those were the reasons behind the v5, v6, and v7 major
38+
bumps. That was also the initial reason for this new major, kicked off by [PR #9165](https://github.com/concourse/concourse/pull/9165).
39+
40+
[#9165](https://github.com/concourse/concourse/pull/9165) changes how Concourse
41+
stores resource versions, using SHA256 instead of MD5 to create and store
42+
digests. This helps operators running Concourse in secure environments, where
43+
algorithms like MD5 are not allowed.
44+
45+
The migration from this PR alone will take a few minutes to run. I recommend
46+
scaling down your web nodes to one node and then upgrading that single node.
47+
I've tested running this migration on
48+
[ci.concourse-ci.org](https://ci.concourse-ci.org) and it took ~5 minutes on a
49+
Postgresql instance with 4 vCPU and 5GB of RAM. We have `4,358,045` records in
50+
our `resource_config_versions` table, which is the main table modified in
51+
the migration. You can run the following query against your Concourse database
52+
to check how many records your table has:
53+
54+
```sql
55+
SELECT COUNT(*) FROM resource_config_versions;
56+
```
57+
58+
This is very much a "behind the scenes" change, as users shouldn't see anything
59+
different happening with regards to how their pipelines behave. This change
60+
future-proofs Concourse and enables Concourse to continue running in secure
61+
environments around the world.
62+
63+
Not wanting to let a good major go to waste, I decided to also tackle a lot of
64+
outstanding chore issues to improve and refresh Concourse a bit. Let's go over
65+
all the big changes that landed in v8. Full release notes can be found on
66+
Github:
67+
[https://github.com/concourse/concourse/releases/tag/v8.0.0](https://github.com/concourse/concourse/releases/tag/v8.0.0)
68+
69+
## πŸ› οΈ Changing Defaults
70+
71+
72+
### πŸ“¦ Container Runtime
73+
74+
We've changed the default container runtime to `containerd`! Guardian is still
75+
a supported runtime but is no longer the default. The main motivation for this
76+
change was the issues we'd see from users trying to run Guardian on newer
77+
kernel versions, specifically systems only using cgroups v2. `containerd` has
78+
proven very stable for us and many users in the community.
79+
80+
### πŸ”’ Secret Redaction
81+
82+
Secret redaction is now always enabled and its corresponding feature flag has
83+
no effect. This feature was initially feature flagged to monitor for any
84+
performance issues. We have seen none over the many years that this feature has
85+
been available. We consider this feature safe to use in all production environments.
86+
87+
### πŸ”€ Instance Pipelines and `across` Step
88+
89+
Instance pipelines and `across` steps are now always enabled, and their feature
90+
flags have no effect. Their "experimental" labels and warnings have also been
91+
removed. Both features have been available for years now and I see no reason to
92+
change their current behaviour. Users can consider these features stable.
93+
94+
### ➑️ Inputs for `put` Steps
95+
96+
The default value for `put.inputs` is changed from `all` to `detect`. Streaming
97+
all volumes into a `put` step has always been overkill and results in long
98+
initialization times for `put` steps. `detect` works by reviewing all values in
99+
`put.params` and only mounting volumes with matching names.
100+
101+
This is a breaking change if you have a custom resource type that has
102+
hard-coded the expected names of volumes into your scripts. I haven't seen any
103+
resources like this personally, but if they do exist, simply set
104+
[`put.inputs`](../../../../docs/steps/put.md) to `all` or an array of the
105+
volumes to mount in your put step.
106+
107+
## ✈️ New Features and Enhancements
108+
109+
It wouldn't be a major release without a couple new features and enhancements.
110+
111+
### πŸ“’ Broadcast Message System
112+
113+
Operators can now broadcast messages to their Concourse cluster and it will
114+
appear as a banner in the Concourse web UI. Thank you to
115+
[ceco556](https://github.com/ceco556) for finishing the implementation.
116+
117+
There are three `fly` commands used to manage this system:
118+
119+
* `fly set-wall`
120+
* Can only be used by users of the `main` team
121+
* `fly get-wall`
122+
* Can be used by all users
123+
* `fly clear-wall`
124+
* Can only be used by users of the `main` team
125+
126+
!!! tip "Fun Fact!"
127+
"Wall" is a reference to the [Unix `wall`](https://en.wikipedia.org/wiki/Wall_(Unix)) CLI.
128+
129+
When setting the message with `fly set-wall`, you can include emojis and links.
130+
Links will be parsed and turned into HTML links that users can click. We made
131+
sure that no XSS vulnerabilities were introduced.
132+
133+
![](assets/concourse-broadcast-web-ui.png)
134+
/// caption
135+
Concourse dashboard showing a broadcast message
136+
///
137+
138+
### 🏷️ Build URLs for Step Metadata
139+
140+
There are two new handy env vars made available to `get` and `put` steps:
141+
142+
* `BUILD_URL` - Same URL as what you see in the web UI that includes team, pipeline, and job name
143+
* `BUILD_URL_SHORT` - Shorter URL that uses the build's internal ID instead of the pipeline scoped ID
144+
145+
See [the docs](../../../../docs/resource-types/implementing.md#metadata) for more details.
146+
147+
### πŸ‘₯ Team Name in `set_pipeline` Steps
148+
149+
Users of the `main` team have been able to set pipelines for other teams for
150+
quite a while now. In the web UI though, it wasn't obvious that a pipeline was
151+
being set for another team. The team name is now displayed when setting a
152+
pipeline for another team.
153+
154+
155+
![](assets/concourse-set-pipeline-team-name.png)
156+
/// caption
157+
Concourse build logs show `set_pipeline` steps with the team name
158+
///
159+
160+
### πŸš₯ Highlighted Group Tabs
161+
162+
To make finding failed builds even easier, especially on large pipelines with
163+
lots of jobs and groups, group tabs will be highlighted red/orange.
164+
165+
![](assets/concourse-highlight-group-tabs.png)
166+
/// caption
167+
Concourse group tabs highlighted red
168+
///
169+
170+
Thank you to [analytically](https://github.com/analytically) for these last
171+
three enhancements! He's made many other useful contributions this
172+
release that you can find in the release notes.
173+
174+
### ▢️ Tasks Can Use `ENTRYPOINT`/`CMD`
175+
176+
If you don't define a `run.path` in your Task's config, Concourse will now
177+
fall back to running the `ENTRYPOINT`/`CMD` defined in the container image. If
178+
you define any `run.args` in your Task's config, those will be appended to the
179+
`ENTRYPOINT`/`CMD` from the container. This is the same behaviour you get with
180+
`[docker/podman] run` today.
181+
182+
To be clear, Concourse still uses its custom rootfs format behind-the-scenes.
183+
I assume the majority of users use the
184+
[registry-image](https://github.com/concourse/registry-image-resource) to pull
185+
in their images in rootfs format and can therefore leverage this feature. If
186+
you have some tooling that creates its own rootfs formatted images, you can
187+
review [this PR](https://github.com/concourse/registry-image-resource/pull/394)
188+
for how to pass that info along to Concourse.
189+
190+
## 2026 and Support
191+
192+
Thank you to everyone who contributed to this new release. There are already
193+
more PRs open that will land in v8.1.0 in a few months. Moving forward, I'm
194+
planning to make new minor releases approximately every quarter. Patches will
195+
be released for any critical bugs and security fixes as needed. My main focus
196+
will be on continuing to make Concourse more robust and stable.
197+
198+
I am still looking for more commercial users of Concourse that are interested
199+
in supporting the project. If your company uses Concourse and is interested in
200+
seeing the continued development and maintenance of the project, please [reach
201+
out to me](https://pixelair.io/contact/). You get direct access to me to
202+
address any Concourse issues you have, as well as training on Concourse
203+
best practices.
204+
205+
Thank you to all the individuals and the organization
206+
([SAPπŸ’™](https://github.com/SAP)) that support me over on
207+
[GitHub](https://github.com/sponsors/taylorsilva) as well. They, along with my
208+
commercial customers, have made this first year of Concourse development
209+
possible! ✈️
42 KB
Loading
23.8 KB
Loading
30.1 KB
Loading

β€Žoverrides/main.htmlβ€Ž

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% extends "base.html" %}
2+
3+
{% block announce %}
4+
<center>
5+
πŸŽ‰ <a href="/blog/2026-01-15-v8---new-year-new-concourse-release/">v8 is released! Read the announcement blog post</a>
6+
</center>
7+
{% endblock %}

0 commit comments

Comments
Β (0)