55
66import click
77
8- from warnet .constants import KUBECONFIG
8+ from warnet .constants import KUBECONFIG , KUBECONFIG_UNDO
99from warnet .k8s import K8sError , open_kubeconfig , write_kubeconfig
1010
1111
1212@click .command ()
13- @click .argument ("auth_config" , type = str )
14- def auth (auth_config ):
13+ @click .option ("--revert" , is_flag = True , default = False , show_default = True )
14+ @click .argument ("auth_config" , type = str , required = False )
15+ def auth (revert , auth_config ):
1516 """Authenticate with a Warnet cluster using a kubernetes config file"""
17+ if revert :
18+ auth_config = KUBECONFIG_UNDO
19+ elif not auth_config :
20+ raise click .UsageError ("Missing argument: AUTH_CONFIG" )
21+
1622 try :
1723 auth_config = open_kubeconfig (auth_config )
1824 except K8sError as e :
@@ -38,6 +44,13 @@ def auth(auth_config):
3844 click .secho (f"Could not open KUBECONFIG: { KUBECONFIG } " , fg = "red" )
3945 sys .exit (1 )
4046
47+ try :
48+ write_kubeconfig (base_config , KUBECONFIG_UNDO )
49+ click .secho (f"Backed up current kubeconfig to: { KUBECONFIG_UNDO } " , fg = "green" )
50+ except K8sError as e :
51+ click .secho (e , fg = "yellow" )
52+ click .secho (f"Could not backup current kubeconfig to { KUBECONFIG_UNDO } " , fg = "red" )
53+
4154 if not is_first_config :
4255 for category in ["clusters" , "users" , "contexts" ]:
4356 if category in auth_config :
0 commit comments