Skip to content

outposts/events: use managed service credentials - #26097

Open
dominic-r wants to merge 28 commits into
dominic/rotation-email-captchafrom
dominic/rotation-connectors
Open

dominic-r wants to merge 28 commits into
dominic/rotation-email-captchafrom
dominic/rotation-connectors

Conversation

@dominic-r

@dominic-r dominic-r commented Sep 14, 2026 •

Copy link
Copy Markdown
Member

Details

Part of the managed secrets stack, see #25415.

What does this PR change?

Notification transports store their webhook URL and Kubernetes service connections their kubeconfig as secrets.

  • Kubeconfigs are JSON secrets. A connection checks that the kubeconfig is usable only when its credentials change.
  • Replacing a kubeconfig refreshes the connection's state, like saving the connection did.
  • A webhook transport without a URL fails with a transport error.

Why is this change needed?

Each credential becomes a secret with its own permissions, rotation and audit trail. See #25415.

How was this tested?

Added tests for kubeconfig validation, reading it into the Kubernetes client, local connections, state refresh after a replacement, and webhook URL validation.

Linked issues


Checklist

  • The project has been linted, built, and tested (make all)
  • The documentation has been updated and formatted (make docs)
  • I have read the AI usage policy.

@dominic-r
dominic-r requested review from a team as code owners September 14, 2026 00:04
@dominic-r
dominic-r added this pull request to stack #26099 September 14, 2026 00:04
@netlify

netlify Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 03a6189
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/6acaaaf11787e000083c6522
😎 Deploy Preview https://deploy-preview-26097--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dominic-r dominic-r added area:backend area:frontend Features or issues related to the browser, TypeScript, Node.js, etc labels Sep 14, 2026
@dominic-r dominic-r self-assigned this Sep 14, 2026
@dominic-r dominic-r added this to the Release 2026.11.0: Required milestone Sep 14, 2026
@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch from 65b5c3a to c6c5e11 Compare September 14, 2026 00:44
@dominic-r dominic-r removed the area:frontend Features or issues related to the browser, TypeScript, Node.js, etc label Sep 14, 2026
@dominic-r dominic-r changed the title connectors: use managed secrets for service credentials outposts/events: use managed service credentials Sep 14, 2026
@dominic-r
dominic-r removed this pull request from stack #26099 September 14, 2026 00:48
@dominic-r
dominic-r changed the base branch from dominic/rotation-sources-stages to dominic/rotation-email-captcha September 14, 2026 00:49
@dominic-r
dominic-r added this pull request to stack #26110 September 14, 2026 00:49
@codecov

codecov Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
4741 1 4740 14
View the top 1 failed test(s) by shortest run time
600-providers.test.ts::Provider Wizard › Complete OAuth2 Provider
Stack Traces | 95.1s run time
Client Secret should be visible when Client Type is Confidential

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

authentik PR Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-cd2bf83bd69e5b7df258e18ba106b5ff78c618b0
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
    image:
        repository: ghcr.io/goauthentik/dev-server
        tag: gh-cd2bf83bd69e5b7df258e18ba106b5ff78c618b0

Afterwards, run the upgrade commands from the latest release notes.

@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch from c6c5e11 to 43dc0b5 Compare September 14, 2026 02:00
@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch 2 times, most recently from 47d15ae to 75b7dce Compare September 14, 2026 02:28
@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch from 75b7dce to 22edda8 Compare September 14, 2026 02:48
@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch from 22edda8 to 17c692c Compare September 14, 2026 03:32
@netlify

netlify Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for authentik-storybook ready!

Name Link
🔨 Latest commit 03a6189
🔍 Latest deploy log https://app.netlify.com/projects/authentik-storybook/deploys/6acaaaf10a75ee0008fd5afa
😎 Deploy Preview https://deploy-preview-26097--authentik-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for authentik-integrations ready!

Name Link
🔨 Latest commit 03a6189
🔍 Latest deploy log https://app.netlify.com/projects/authentik-integrations/deploys/6acaaaf1e0c1ac0008e9047d
😎 Deploy Preview https://deploy-preview-26097--authentik-integrations.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

Playwright e2e

Download this run's HTML report and traces, then open the report:

gh run download 38088919769 -D playwright-artifacts
npx playwright show-report playwright-artifacts/playwright-report

Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ce7a93fe4ef326c38b374a998129e6f2238a6dd9
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
    image:
        repository: ghcr.io/goauthentik/dev-server
        tag: gh-ce7a93fe4ef326c38b374a998129e6f2238a6dd9

Afterwards, run the upgrade commands from the latest release notes.

@dominic-r
dominic-r force-pushed the dominic/rotation-connectors branch from 21b98f9 to 2971942 Compare October 5, 2026 17:57
…onnectors

# Conflicts:
#	authentik/crypto/secrets/tests/test_api.py
#	authentik/crypto/secrets/tests/utils.py
#	authentik/rbac/tests/test_secret_fields.py
… state

Kubeconfigs are JSON secrets now, so the Secret validates their syntax
and the connection only checks that it is a usable kubeconfig, and only
when the connection's credentials change. Replacing a kubeconfig
refreshes the connection's cached state like saving it used to, and a
connection without one fails with a clear error.

Discovered kubeconfigs get a readable secret name, a transport saved
without a webhook URL fails with a transport error, and the consumer
tests live with their consumers.
@dominic-r
dominic-r removed this pull request from stack #26110 October 10, 2026 21:17
@dominic-r
dominic-r added this pull request to stack #26820 October 10, 2026 21:17

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant