Skip to content

Commit 89afa97

Browse files
authored
website/docs: clean up Kubernetes outpost integration page (#21587)
1 parent 1b5e623 commit 89afa97

1 file changed

Lines changed: 61 additions & 41 deletions

File tree

website/docs/add-secure-apps/outposts/integrations/kubernetes.md

Lines changed: 61 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,71 @@
22
title: Kubernetes
33
---
44

5-
The kubernetes integration will automatically deploy outposts on any Kubernetes Cluster.
6-
7-
This integration has the advantage over manual deployments of automatic updates (whenever authentik is updated, it updates the outposts), and authentik can (in a future version) automatically rotate the token that the outpost uses to communicate with the core authentik server.
8-
9-
This integration creates the following objects:
10-
11-
- Deployment for the outpost container
12-
- Service for protocol access
13-
- Service for metrics access
14-
- Secret to store the token
15-
- Prometheus ServiceMonitor (if the Prometheus Operator is installed in the target cluster)
16-
- Ingress (only Proxy outposts)
17-
- HTTPRoute (only Proxy outposts, when the Gateway API resources are installed in the target cluster, and the `kubernetes_httproute_parent_refs` setting is set, see below)
18-
- Traefik Middleware (only Proxy outposts with forward auth enabled)
19-
20-
The following outpost settings are used:
21-
22-
- `object_naming_template`: Configures how the container is called
23-
- `container_image`: Optionally overwrites the standard container image (see [Configuration](../../../install-config/configuration/configuration.mdx) to configure the global default)
24-
- `kubernetes_replicas`: Replica count for the deployment of the outpost
25-
- `kubernetes_namespace`: Namespace to deploy in, defaults to the same namespace authentik is deployed in (if available)
26-
- `kubernetes_ingress_annotations`: Any additional annotations to add to the ingress object, for example cert-manager
27-
- `kubernetes_ingress_secret_name`: Name of the secret that is used for TLS connections, can be empty to disable TLS config
28-
- `kubernetes_ingress_class_name`: Optionally set the ingress class used for the generated ingress, requires authentik 2022.11.0
29-
- `kubernetes_httproute_parent_refs`: Define which Gateways the HTTPRoute wants to be attached to.
30-
- `kubernetes_httproute_annotations`: Any additional annotations to add to the HTTPRoute object
31-
- `kubernetes_service_type`: Service kind created, can be set to LoadBalancer for LDAP outposts for example
32-
- `kubernetes_disabled_components`: Disable any components of the kubernetes integration, can be any of
33-
- 'secret'
34-
- 'deployment'
35-
- 'service'
36-
- 'service-metrics'
37-
- 'prometheus servicemonitor'
38-
- 'ingress'
39-
- 'traefik middleware'
40-
- 'httproute'
41-
- `kubernetes_image_pull_secrets`: If the above docker image is in a private repository, use these secrets to pull. (NOTE: The secret must be created manually in the namespace first.)
42-
- `kubernetes_json_patches`: Applies an RFC 6902 compliant JSON patch to the Kubernetes objects.
5+
The Kubernetes integration automatically deploys and manages outposts in a Kubernetes cluster.
6+
7+
Compared with a [manual Kubernetes deployment](../manual-deploy-kubernetes.md), this integration keeps managed outposts aligned with authentik updates and reduces the amount of cluster-side configuration that you need to maintain.
8+
9+
## Created resources
10+
11+
This integration creates the following Kubernetes resources:
12+
13+
- A `Deployment` for the outpost container.
14+
- A `Service` for protocol traffic.
15+
- A `Service` for metrics traffic.
16+
- A `Secret` that stores the outpost token.
17+
- A `ServiceMonitor` if the Prometheus Operator is installed in the target cluster.
18+
- An `Ingress` for proxy outposts.
19+
- An `HTTPRoute` for proxy outposts if Gateway API resources are installed in the target cluster and `kubernetes_httproute_parent_refs` is configured.
20+
- A Traefik `Middleware` resource for proxy outposts that use forward auth.
21+
22+
## Supported settings
23+
24+
These settings control how authentik creates and manages Kubernetes resources. For the full shared outpost configuration reference, see [Outposts configuration](../index.mdx#configuration).
25+
26+
### General settings
27+
28+
- `object_naming_template`: Configures the names of created Kubernetes resources.
29+
- `container_image`: Overrides the default outpost image. You can also configure the global default in [Configuration](../../../install-config/configuration/configuration.mdx#authentik_outposts).
30+
- `kubernetes_replicas`: Sets the number of replicas in the generated deployment.
31+
- `kubernetes_namespace`: Sets the namespace where authentik deploys the outpost. By default, this uses the namespace where authentik is installed, if available.
32+
- `kubernetes_service_type`: Sets the generated Service type, for example `ClusterIP` or `LoadBalancer`.
33+
- `kubernetes_image_pull_secrets`: Uses existing image pull secrets for private registries. Create these secrets in the target namespace before you use this setting.
34+
- `kubernetes_json_patches`: Applies [RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902) JSON patches to generated Kubernetes objects.
35+
36+
### Ingress settings
37+
38+
- `kubernetes_ingress_annotations`: Adds annotations to the generated Ingress, for example for cert-manager.
39+
- `kubernetes_ingress_secret_name`: Sets the TLS secret name for the generated Ingress. Leave this empty to disable TLS configuration on the Ingress.
40+
- `kubernetes_ingress_class_name`: Sets the ingress class for the generated Ingress.
41+
- `kubernetes_ingress_path_type`: Sets the Ingress `pathType`. If unset, authentik uses the controller default.
42+
43+
### Gateway API settings
44+
45+
- `kubernetes_httproute_parent_refs`: Defines which Gateway resources the generated `HTTPRoute` attaches to.
46+
- `kubernetes_httproute_annotations`: Adds annotations to the generated `HTTPRoute`.
47+
48+
### Disabled components
49+
50+
Use `kubernetes_disabled_components` to prevent authentik from creating specific resources. Supported values are:
51+
52+
- `secret`
53+
- `deployment`
54+
- `service`
55+
- `service-metrics`
56+
- `prometheus servicemonitor`
57+
- `ingress`
58+
- `traefik middleware`
59+
- `httproute`
4360

4461
## Permissions
4562

46-
The permissions required for this integration are documented in the helm chart. See [Cluster-level](https://github.com/goauthentik/helm/blob/main/charts/authentik-remote-cluster/templates/clusterrolebinding.yaml) and [Namespace-level](https://github.com/goauthentik/helm/blob/main/charts/authentik-remote-cluster/templates/rolebinding.yaml).
63+
The required permissions for this integration are documented in the Helm chart:
64+
65+
- [Cluster-level permissions](https://github.com/goauthentik/helm/blob/main/charts/authentik-remote-cluster/templates/clusterrolebinding.yaml)
66+
- [Namespace-level permissions](https://github.com/goauthentik/helm/blob/main/charts/authentik-remote-cluster/templates/rolebinding.yaml)
4767

4868
## Remote clusters
4969

50-
To add a remote cluster, you can simply install this helm chart in the target cluster and namespace: https://artifacthub.io/packages/helm/goauthentik/authentik-remote-cluster
70+
To connect a remote cluster, install the [`authentik-remote-cluster` Helm chart](https://artifacthub.io/packages/helm/goauthentik/authentik-remote-cluster) in the target cluster and namespace.
5171

52-
After installation, the helm chart outputs an example kubeconfig file, that you can enter in authentik to connect to the cluster.
72+
After installation, the chart outputs an example kubeconfig file. Add that kubeconfig to authentik to connect to the cluster.

0 commit comments

Comments
 (0)