Skip to content

Commit 0845a0e

Browse files
authored
Merge pull request #752 from pinheadmz/undo-auth
warnet auth --revert
2 parents 0828ecd + 068b97f commit 0845a0e

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

src/warnet/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class AnnexMember(Enum):
8383

8484
# Kubeconfig related stuffs
8585
KUBECONFIG = os.environ.get("KUBECONFIG", os.path.expanduser("~/.kube/config"))
86+
KUBECONFIG_UNDO = KUBECONFIG + "_warnet_undo"
8687

8788
# TODO: all of this logging stuff should be a helm chart
8889
LOGGING_CONFIG = {

src/warnet/users.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@
55

66
import click
77

8-
from warnet.constants import KUBECONFIG
8+
from warnet.constants import KUBECONFIG, KUBECONFIG_UNDO
99
from 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:

test/namespace_admin_test.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ def two_namespaces_are_validated(self) -> bool:
147147
return self.red_namespace in maybe_namespaces
148148

149149
def return_to_initial_context(self):
150-
cmd = f"kubectl config use-context {self.initial_context}"
151-
self.log.info(run_command(cmd))
150+
self.log.info(self.warnet("auth --revert"))
152151
self.wait_for_predicate(self.this_is_the_current_context(self.initial_context))
153152

154153
def this_is_the_current_context(self, context: str) -> Callable[[], bool]:

0 commit comments

Comments
 (0)