def test_controller_rename(self): """test that objects get deleted and re-created with new names""" controller = ProxyKubernetesController(self.outpost, self.service_connection) self.assertIsNone(controller.up()) self.outpost.name = "foo" self.assertIsNone(controller.up()) apps = AppsV1Api(controller.client) with self.assertRaises(OpenApiException): apps.read_namespaced_deployment( "test", self.outpost.config.kubernetes_namespace) controller.down()
def test_controller_full_update(self): """Test an update that triggers all objects""" controller = ProxyKubernetesController(self.outpost, self.service_connection) self.assertIsNone(controller.up()) with patch("authentik.outposts.controllers.k8s.base.get_version", MagicMock(return_value="1234")): self.assertIsNone(controller.up()) deployment_reconciler = DeploymentReconciler(controller) deployment = deployment_reconciler.retrieve() self.assertEqual( deployment.metadata.labels["app.kubernetes.io/version"], "1234") controller.down()
def test_kubernetes_controller_deploy(self): """Test Kubernetes Controller""" provider: ProxyProvider = ProxyProvider.objects.create( name="test", internal_host="http://localhost", external_host="http://localhost", authorization_flow=Flow.objects.first(), ) service_connection = KubernetesServiceConnection.objects.first() outpost: Outpost = Outpost.objects.create( name="test", type=OutpostType.PROXY, service_connection=service_connection, ) outpost.providers.add(provider) outpost.save() controller = ProxyKubernetesController(outpost, service_connection) controller.up() controller.down()