Welcome, Flux friends! We're excited to see you in Amsterdam. Here's your guide to all things Flux and GitOps at KubeCon Europe 2025.
FluxCon is back for its second year as a CNCF-hosted co-located event - a dedicated half-day for the whole Flux community.
When: Monday, March 23, 2026 - 09:00 - 12:45 CET
Where: Elicium 1, RAI Amsterdam
View the Full FluxCon Schedule
A full morning of Flux talks featuring production stories from Air France–KLM, NatWest, Orange, and our maintainers.
FluxCon | Welcome + Opening Remarks
Tiffany Wang, Morgan Stanley & Francesco Beltramini, ControlPlane
Mon, Mar 23 • 09:00 - 09:05 CET
Elicium 1
View on Sched
Stefan Prodan, ControlPlane
Mon, Mar 23 • 09:10 - 09:35 CET
Elicium 1
View on Sched
Air France–KLM's GitOps Takeoff: Real Stories From the Flight Deck
Alaoui Echerif Amine & Ravi Ramrattan, Air France KLM
Mon, Mar 23 • 09:40 - 10:05 CET
Elicium 1
View on Sched
Agentic GitOps: Evolving Enterprise Delivery
Andy Martin, ControlPlane
Mon, Mar 23 • 10:10 - 10:15 CET
Elicium 1
View on Sched
May the Flux Be With You: Tales From the GitOps Trenches at NatWest
Joel King & Lee Coupe, NatWest Group
Mon, Mar 23 • 10:20 - 10:45 CET
Elicium 1
View on Sched
Towards Better Canary Releases With Flagger and Gateway API
Mon, Mar 23 • 11:00 - 11:25 CET
Elicium 1
View on Sched
Talking to Your Cluster: Conversational GitOps with Flux MCP
Mon, Mar 23 • 11:30 - 11:55 CET
Elicium 1
View on Sched
⚡ Lightning Talk: Flux-Powered Bootstrapping a Kubernetes With GitOps and CaC
Paris Nakita Kejser, Astrona
Mon, Mar 23 • 12:00 - 12:10 CET
Elicium 1
View on Sched
Sylva, Taming Complexity With FluxCD Dependency Management
Thomas Morin & Francois Eleouet, Orange
Mon, Mar 23 • 12:15 - 12:40 CET
Elicium 1
View on Sched
Flux and Kyverno together - attend this cross-project session in the afternoon:
Policy & GitOps Unite! Kyverno and Flux Save Cluster City
Cortney Nickerson, Nirmata & Leigh Capili, ControlPlane
Mon, Mar 23 • 13:35 - 14:00 CET
E106-108
View on Sched
Visit the Flux Project Booth
Have questions? Want to talk GitOps? Or just want to grab some stickers? Come say hi to the Flux maintainers! Stefan will also be be at the booth for extended Q&A after each session.
Booth 5B, Project Pavilion
We'll be using
Flux Operator MCP Server
to show off
AI Assisted GitOps .
The Project Pavilion is located in the Solutions Showcase. We're near the center :)
Catch these Flux sessions during the main conference:
⚡ Project Lightning Talk: FluxCD - Gitops For All Sizes
Tamao Nakahara, Community Maintainer
Mon, Mar 23 • 14:15 - 14:20 CET
Elicium 2
View on Sched
From "No Time for GitOps" to Enterprise Adoption: Selling Flux the Human Way
Lucas Hornung & Christian Matthaei, Tchibo GmbH
Wed, Mar 25 • 11:45 - 12:15 CET
Hall 7 | Room B
View on Sched
Pull Request Wars: The Flux Awakens - Ephemeral Kubernetes Environments Strike Back
Matteo Bianchi, GitHub & Stefan Prodan, ControlPlane
Wed, Mar 25 • 15:00 - 15:30 CET
Hall 8 | Room G
View on Sched
From Chaos to Control: A Prescription for Managing Apps on Private Cellular Networks
Thurs, Mar 26 • 11:00 - 11:30 CET
Hall 7 | Room C
View on Sched
Visualizing GitOps: A Tour of Flux UIs in the Open Source Ecosystem
Stefan Prodan, ControlPlane
Thurs, Mar 26 • 13:45 - 14:15 CET
Elicium 2
View on Sched
We're thrilled to announce the Flux 2.8 General Availability release. This is a major milestone, bringing Helm v4 support natively to Flux.
Key highlights include:
Helm v4 support with server-side apply and kstatus-based health checking
Helm v3 backward compatibility for existing releases + opt-ins
Reduced mean time to recovery - new revisions can immediately cancel stale health checks
CEL expressions for readiness evaluation of Helm-managed objects
ArtifactGenerator support for extracting and modifying Helm charts
PR/MR comment providers for preview environment feedback loops
Cosign v3 support for verifying OCI artifacts and container images
Custom SSA apply stages for ordering resource application in kustomize-controller
Read the full 2.8 Release Announcement
Flux 2.8.x Upgrade Instructions Releases of Flux 2.7+ and up remove old API versions. To ensure a smooth upgrade, please follow the detailed instructions before updating your clusters.
Upgrade instructions & Support here
Flux (and Flagger) is a set of continuous and progressive delivery solutions for Kubernetes that are open and extensible. It is the GitOps engine for Microsoft's Arc Kubernetes, AWS's EKS-Anywhere, GitLab, and many more.
Flux is a CNCF graduated project and is General Availability.
Flux has a rich ecosystem of extensions and compatible, open software.
Here are a few things to look at:
<style>
/* --- Flux KubeCon Page Styles --- */
/* --- Variables & Globals --- */
:root { --flux-dark-blue: #264185; --flux-light-blue: rgb(193, 210, 247); --flux-blue: rgb(50, 108, 229); --text-primary: #333; --text-secondary: #555; --bg-light: #f8f9fa; --bg-white: #ffffff; --border-color: #dee2e6; --psa-bg: #fff3cd; --psa-border: #ffeeba; --psa-text: #856404; }
.kubecon-page { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.6; color: var(--text-primary); background-color: var(--bg-white); max-width: 900px; margin: 0 auto; padding: 1rem; }
/* --- Logo & Headers --- */
.kubecon-page .page-logo { display: block; width: 250px; max-width: 60%; margin: 0 auto 1rem auto; }
.kubecon-page h1, .kubecon-page h2, .kubecon-page h3 { font-weight: 600; line-height: 1.3; color: var(--flux-dark-blue); }
.kubecon-page h1 { font-size: 2.5rem; text-align: center; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem; margin-bottom: 1rem; }
.kubecon-page h2 { font-size: 2rem; color: var(--flux-blue); border-bottom: 1px solid var(--border-color); padding-bottom: 0.25rem; margin-top: 2.5rem; margin-bottom: 1.5rem; }
.kubecon-page h3 { font-size: 1.5rem; color: var(--flux-dark-blue); margin-bottom: 0.5rem; }
.kubecon-page p { margin-bottom: 1rem; font-size: 1.1rem; }
.kubecon-page a { color: var(--flux-blue); text-decoration: none; font-weight: 600; }
.kubecon-page a:hover { text-decoration: underline; }
/* --- PSA Banner --- */
.psa-banner { background-color: var(--psa-bg); border: 1px solid var(--psa-border); color: var(--psa-text); padding: 1rem 1.5rem; border-radius: 8px; margin: 1.5rem 0; font-size: 1.1rem; }
.psa-banner p { margin: 0; }
.psa-banner strong { font-size: 1.2rem; display: block; margin-bottom: 0.25rem; }
.psa-banner a { color: var(--psa-text); font-weight: 700; text-decoration: underline; }
/* --- Info Box (for Blog, Booth, etc.) --- */
.info-box { background-color: var(--bg-light); border: 1px solid var(--border-color); padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem; }
.info-box h3 { margin-top: 0; }
.info-box ul { margin-top: 0.5rem; padding-left: 1.5rem; }
.info-box li { margin-bottom: 0.5rem; }
/* --- Banner Image (with object-fit) --- */
.banner-image {
margin: 2.5rem 0;
}
.banner-image img {
width: 100%;
height: 300px;
object-fit: cover;
object-position: left center;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
display: block;
}
@media (max-width: 768px) {
.banner-image img {
height: 200px;
}
}
/* --- FluxCon Card --- */
.fluxcon-card { background-color: var(--bg-white); border: 2px solid var(--flux-light-blue); border-radius: 8px; padding: 1.5rem; margin: 2rem 0; text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.fluxcon-card img { width: 150px; margin-bottom: 1rem; }
.fluxcon-card h3 { font-size: 1.75rem; color: var(--flux-blue); margin: 0; }
.fluxcon-card .fluxcon-details { font-size: 1.15rem; color: var(--text-secondary); margin: 0.5rem 0 1.5rem 0; }
.fluxcon-card .sched-link { display: inline-block; font-size: 1.1rem; font-weight: 600; padding: 0.75rem 1.5rem; background-color: var(--flux-blue); color: white; border-radius: 5px; text-decoration: none; transition: background-color 0.2s; }
.fluxcon-card .sched-link:hover { background-color: var(--flux-dark-blue); color: white; text-decoration: none; }
/* --- FluxCon Schedule Details/Summary --- */
.fluxcon-schedule-details { margin: 2rem 0; }
.fluxcon-schedule-details > .fluxcon-toggle { display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 600; padding: 0.75rem 1.5rem; background-color: var(--flux-blue); color: white; border-radius: 5px; text-decoration: none; transition: background-color 0.2s; cursor: pointer; list-style: none; text-align: center; width: 100%; box-sizing: border-box; }
.fluxcon-schedule-details > .fluxcon-toggle::-webkit-details-marker { display: none; }
.fluxcon-schedule-details > .fluxcon-toggle::marker { display: none; content: ""; }
.fluxcon-schedule-details > .fluxcon-toggle:hover { background-color: var(--flux-dark-blue); color: white; }
.fluxcon-schedule-details[open] > .fluxcon-toggle { margin-bottom: 1.5rem; }
.fluxcon-toggle .toggle-icon { display: inline-flex; align-items: center; justify-content: center; margin-left: 0.5rem; width: 1.2em; height: 1.2em; font-size: 1.4em; font-weight: 700; line-height: 1; vertical-align: middle; transition: transform 0.3s ease; }
.fluxcon-toggle .toggle-icon::before { content: "▾"; position: relative; top: -0.05em; }
.fluxcon-schedule-details[open] > .fluxcon-toggle .toggle-icon::before { content: "+"; }
.fluxcon-schedule-details[open] > .fluxcon-toggle .toggle-icon { transform: rotate(45deg); }
/* --- Talk List & Cards --- */
.talk-list { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.talk-card { display: flex; flex-direction: row; align-items: flex-start; background: var(--bg-white); border: 1px solid var(--border-color); border-radius: 8px; padding: 1.5rem; transition: box-shadow 0.2s ease-in-out; }
.talk-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.talk-avatars { flex-shrink: 0; width: 90px; height: 60px; margin-right: 1rem; margin-top: 0.25rem; position: relative; display: flex; align-items: center; }
.talk-avatars img { width: 60px; height: 60px; border-radius: 50%; border: 2px solid var(--bg-white); box-shadow: 0 2px 4px rgba(0,0,0,0.1); position: absolute; left: 0; top: 0; }
.talk-avatars img:nth-child(2) { left: 30px; }
.talk-details { flex-grow: 1; }
.talk-card h3 { font-size: 1.4rem; color: var(--flux-dark-blue); margin: 0 0 0.25rem 0; }
.talk-card h4 { font-size: 1.1rem; color: var(--text-primary); margin: 0 0 0.5rem 0; font-weight: 600; }
.talk-time { font-size: 1rem; color: var(--text-secondary); margin-bottom: 1rem; display: block; font-weight: 500; }
.talk-time strong { color: var(--text-primary); }
.sched-link { display: inline-block; font-size: 1rem; font-weight: 600; padding: 0.5rem 1rem; background-color: var(--flux-light-blue); color: white; border-radius: 5px; text-decoration: none; transition: background-color 0.2s; }
.sched-link:hover { background-color: var(--flux-blue); color: white; text-decoration: none; }
/* --- Resources Section --- */ .resources-list { list-style-type: none; padding-left: 0; }
.resources-list li { font-size: 1.1rem; margin-bottom: 0.75rem; }
.resources-list strong { color: var(--text-primary); margin-right: 0.5rem; }
/* --- Mobile Responsiveness --- */
@media (max-width: 768px) {
.avatar-zoom { position: relative !important; left: auto !important; top: auto !important; }
.kubecon-page { padding: 0.5rem; }
.kubecon-page h1 { font-size: 2rem; }
.kubecon-page h2 { font-size: 1.75rem; }
.info-box, .psa-banner, .fluxcon-card, .talk-card { padding: 1.25rem; }
.talk-card { flex-direction: column; align-items: stretch; }
.talk-avatars { width: auto; height: 60px; margin-right: 0; margin-bottom: 1rem; display: flex; justify-content: center; }
.talk-avatars img { position: relative; left: 0; top: 0; }
.talk-avatars img:nth-child(2) { left: -15px; }
.talk-details { text-align: center; } }
</style>