outposts: default to currently running namespace if possible
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -48,10 +48,13 @@ class KubernetesObjectReconciler(Generic[T]): | |||||||
|     @property |     @property | ||||||
|     def name(self) -> str: |     def name(self) -> str: | ||||||
|         """Get the name of the object this reconciler manages""" |         """Get the name of the object this reconciler manages""" | ||||||
|         return (self.controller.outpost.config.object_naming_template % { |         return ( | ||||||
|             "name": slugify(self.controller.outpost.name), |             self.controller.outpost.config.object_naming_template | ||||||
|             "uuid": self.controller.outpost.uuid.hex, |             % { | ||||||
|         }).lower() |                 "name": slugify(self.controller.outpost.name), | ||||||
|  |                 "uuid": self.controller.outpost.uuid.hex, | ||||||
|  |             } | ||||||
|  |         ).lower() | ||||||
|  |  | ||||||
|     def up(self): |     def up(self): | ||||||
|         """Create object if it doesn't exist, update if needed or recreate if needed.""" |         """Create object if it doesn't exist, update if needed or recreate if needed.""" | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								authentik/outposts/controllers/k8s/utils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								authentik/outposts/controllers/k8s/utils.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | """k8s utils""" | ||||||
|  | from pathlib import Path | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def get_namespace() -> str: | ||||||
|  |     """Get the namespace if we're running in a pod, otherwise default to default""" | ||||||
|  |     path = Path("/var/run/secrets/kubernetes.io/serviceaccount/namespace") | ||||||
|  |     if path.exists(): | ||||||
|  |         with open(path, "r") as _namespace_file: | ||||||
|  |             return _namespace_file.read() | ||||||
|  |     return "default" | ||||||
| @ -33,6 +33,7 @@ from authentik.lib.config import CONFIG | |||||||
| from authentik.lib.models import InheritanceForeignKey | from authentik.lib.models import InheritanceForeignKey | ||||||
| from authentik.lib.sentry import SentryIgnoredException | from authentik.lib.sentry import SentryIgnoredException | ||||||
| from authentik.lib.utils.http import USER_ATTRIBUTE_CAN_OVERRIDE_IP | from authentik.lib.utils.http import USER_ATTRIBUTE_CAN_OVERRIDE_IP | ||||||
|  | from authentik.outposts.controllers.k8s.utils import get_namespace | ||||||
| from authentik.outposts.docker_tls import DockerInlineTLS | from authentik.outposts.docker_tls import DockerInlineTLS | ||||||
|  |  | ||||||
| OUR_VERSION = parse(__version__) | OUR_VERSION = parse(__version__) | ||||||
| @ -59,7 +60,7 @@ class OutpostConfig: | |||||||
|  |  | ||||||
|     object_naming_template: str = field(default="ak-outpost-%(name)s") |     object_naming_template: str = field(default="ak-outpost-%(name)s") | ||||||
|     kubernetes_replicas: int = field(default=1) |     kubernetes_replicas: int = field(default=1) | ||||||
|     kubernetes_namespace: str = field(default="default") |     kubernetes_namespace: str = field(default_factory=get_namespace) | ||||||
|     kubernetes_ingress_annotations: dict[str, str] = field(default_factory=dict) |     kubernetes_ingress_annotations: dict[str, str] = field(default_factory=dict) | ||||||
|     kubernetes_ingress_secret_name: str = field(default="authentik-outpost-tls") |     kubernetes_ingress_secret_name: str = field(default="authentik-outpost-tls") | ||||||
|     kubernetes_service_type: str = field(default="ClusterIP") |     kubernetes_service_type: str = field(default="ClusterIP") | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer