From cfa215498711fd46d8d6a873a124fa06e4c0d1de Mon Sep 17 00:00:00 2001 From: Dany Sluijk Date: Sun, 11 Dec 2022 21:22:49 +0100 Subject: [PATCH] chore: remove OOBE removal --- src/resources/authentik/controller.rs | 5 +- src/resources/authentik/mod.rs | 1 - src/resources/authentik/remove_oobe.rs | 110 ------------------------- 3 files changed, 1 insertion(+), 115 deletions(-) delete mode 100644 src/resources/authentik/remove_oobe.rs diff --git a/src/resources/authentik/controller.rs b/src/resources/authentik/controller.rs index 3238ea6..7d91639 100644 --- a/src/resources/authentik/controller.rs +++ b/src/resources/authentik/controller.rs @@ -11,8 +11,7 @@ use serde_json::{json, Map}; use tokio::time::Duration; use super::{ - clusteraccount, crd, deployment, ingress, remove_oobe, secret, service, serviceaccount, - servicegroup, + clusteraccount, crd, deployment, ingress, secret, service, serviceaccount, servicegroup, }; pub struct Controller { @@ -49,7 +48,6 @@ impl Controller { serviceaccount::reconcile(&obj, self.client.clone()).await?; servicegroup::reconcile(&obj, self.client.clone()).await?; secret::reconcile(&obj, self.client.clone()).await?; - remove_oobe::reconcile(&obj, self.client.clone()).await?; info!("Reconcilidation of Authentik finished successfully, re-queued for 30 minutes."); Ok(Action::requeue(Duration::from_secs(30 * 60))) @@ -57,7 +55,6 @@ impl Controller { pub async fn cleanup(&self, obj: Arc) -> Result { // Cleanup all parts. - remove_oobe::cleanup(obj.as_ref(), self.client.clone()).await?; secret::cleanup(obj.as_ref(), self.client.clone()).await?; servicegroup::cleanup(obj.as_ref(), self.client.clone()).await?; serviceaccount::cleanup(obj.as_ref(), self.client.clone()).await?; diff --git a/src/resources/authentik/mod.rs b/src/resources/authentik/mod.rs index 61c3a70..557a0e5 100644 --- a/src/resources/authentik/mod.rs +++ b/src/resources/authentik/mod.rs @@ -22,7 +22,6 @@ pub mod labels; mod clusteraccount; mod deployment; mod ingress; -mod remove_oobe; mod secret; mod service; mod serviceaccount; diff --git a/src/resources/authentik/remove_oobe.rs b/src/resources/authentik/remove_oobe.rs deleted file mode 100644 index d69bfbf..0000000 --- a/src/resources/authentik/remove_oobe.rs +++ /dev/null @@ -1,110 +0,0 @@ -use anyhow::{anyhow, Result}; -use kube::{Client, ResourceExt}; - -use crate::akapi::{ - auth::get_valid_token, - flow::{DeleteFlow, DeleteFlowError}, - group::{DeleteGroup, DeleteGroupError, FindGroup, FindGroupBody}, - stages::{DeleteStage, DeleteStageError, FindStage, FindStageBody}, - user::{DeleteAccount, DeleteAccountError, Find, FindBody}, - AkApiRoute, AkClient, -}; - -use super::crd; - -pub async fn reconcile(obj: &crd::Authentik, client: Client) -> Result<()> { - let instance = obj - .metadata - .name - .clone() - .ok_or(anyhow!("Missing instance name.".to_string()))?; - let ns = obj - .namespace() - .ok_or(anyhow!("Missing namespace `{}`.", instance.clone()))?; - - // Create the api and get the key. - let api_key = get_valid_token(client.clone(), &ns, &instance).await?; - let ak = AkClient::new(&api_key, &instance, &ns)?; - - // Delete the flow if it exists. - match DeleteFlow::send(&ak, "initial-setup".to_string()).await { - Ok(_) => { - info!("Initial flow was deleted."); - } - Err(DeleteFlowError::NotFound) => {} - Err(e) => return Err(e.into()), - } - - // Find and delete the OOBE stages. - match FindStage::send( - &ak, - FindStageBody { - name: Some("default-oobe-password".to_string()), - }, - ) - .await - { - Ok(stages) => { - if let Some(stage) = stages.first() { - match DeleteStage::send(&ak, stage.pk.clone()).await { - Ok(_) => { - info!("OOBE password stage was deleted."); - } - Err(DeleteStageError::NotFound) => {} - Err(e) => return Err(e.into()), - } - } - } - Err(e) => return Err(e.into()), - } - - // Try to delete the `akadmin` user. - let users = Find::send( - &ak, - FindBody { - username: Some("akadmin".to_string()), - ..Default::default() - }, - ) - .await?; - - if let Some(user) = users.iter().find(|&user| user.username == "akadmin") { - match DeleteAccount::send(&ak, user.pk).await { - Ok(_) => { - info!("Deleted `akadmin` user."); - } - Err(DeleteAccountError::NotFound) => {} - Err(e) => return Err(e.into()), - } - } - - // Try to delete the `authentik Admins` group. - let groups = FindGroup::send( - &ak, - FindGroupBody { - name: Some("authentik Admins".to_string()), - ..Default::default() - }, - ) - .await?; - - if let Some(group) = groups - .iter() - .find(|&group| group.name == "authentik Admins") - { - match DeleteGroup::send(&ak, group.pk.clone()).await { - Ok(_) => { - info!("Deleted `authentik Admins` group."); - } - Err(DeleteGroupError::NotFound) => {} - Err(e) => return Err(e.into()), - } - } - - Ok(()) -} - -pub async fn cleanup(_obj: &crd::Authentik, _client: Client) -> Result<()> { - // Note: currently the OOBE is not restored. - Ok(()) -}