aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/robloxenv/default.nix1
-rwxr-xr-xpackages/robloxenv/robloxenv.py51
2 files changed, 45 insertions, 7 deletions
diff --git a/packages/robloxenv/default.nix b/packages/robloxenv/default.nix
index ca675e8..2b691e4 100644
--- a/packages/robloxenv/default.nix
+++ b/packages/robloxenv/default.nix
@@ -18,6 +18,7 @@ python3.pkgs.buildPythonApplication rec {
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/${pname}
+ chmod +x $out/bin/${pname}
'';
meta = with lib; {
diff --git a/packages/robloxenv/robloxenv.py b/packages/robloxenv/robloxenv.py
index 222d946..79f9428 100755
--- a/packages/robloxenv/robloxenv.py
+++ b/packages/robloxenv/robloxenv.py
@@ -11,11 +11,15 @@ import requests
# the ID of the vault in 1password
op_vault = "v4mof5qwozyvob2utdk3crwxnu"
-vault_addr_chi1 = "https://chi1-vault.simulprod.com:8200"
+vault_addrs = {
+ "chi1": "https://chi1-vault.simulprod.com:8200",
+ "ash1": "https://ash1-vault.simulprod.com:8200",
+}
+
creds_cache = os.path.join(os.getenv("HOME") or "", ".local/state/rbxenv")
-valid_dcs = ["ash1", "chi11"]
+valid_dcs = ["ash1", "chi1"]
valid_edges = [
"ams1",
"atl1",
@@ -140,17 +144,27 @@ def vault_read(path: str, addr: str, token: str, dc: str) -> str:
def setpop(dc: str):
"""Print some information regarding hashi stack in a POP."""
if dc not in valid_edges:
- print("nop")
+ print(f"{dc} is not a valid edge location")
+ return
- token = get_vault_token(vault_addr_chi1)
+ token = get_vault_token(vault_addrs["chi1"])
consul_token = vault_read(
- "secret/teams/neteng/traffic/consul", addr=vault_addr_chi1, token=token, dc=dc
+ "secret/teams/neteng/traffic/consul",
+ addr=vault_addrs["chi1"],
+ token=token,
+ dc=dc,
)
nomad_token = vault_read(
- "secret/teams/neteng/traffic/nomad", addr=vault_addr_chi1, token=token, dc=dc
+ "secret/teams/neteng/traffic/nomad",
+ addr=vault_addrs["chi1"],
+ token=token,
+ dc=dc,
)
vault_token = vault_read(
- "secret/teams/neteng/traffic/vault", addr=vault_addr_chi1, token=token, dc=dc
+ "secret/teams/neteng/traffic/vault",
+ addr=vault_addrs["chi1"],
+ token=token,
+ dc=dc,
)
print(f"consul token: {consul_token}")
@@ -159,12 +173,35 @@ def setpop(dc: str):
print(f"https://{dc}-vault.simulprod.com/ui/vault/auth?with=token")
+@click.command()
+@click.argument("dc")
+def setenv(dc: str):
+ """Print environment variables for the URL and tokens to various components.
+ This command can be passed to `export` in order to export variables.
+ For example:
+ ```
+ export (robloxenv setenv chi1)
+ ```
+ """
+ if dc not in valid_dcs:
+ print(f"{dc} is not a valid data center")
+ return
+
+ if dc not in vault_addrs:
+ print(f"{dc} doesn't have an associated vault address")
+
+ token = get_vault_token(vault_addrs[dc])
+ print(f"VAULT_ADDR={vault_addrs[dc]}")
+ print(f"VAULT_TOKEN={token}")
+
+
@click.group(help="CLI tool to manage environment variables for hashi things at Roblox")
def cli():
pass
cli.add_command(setpop)
+cli.add_command(setenv)
if __name__ == "__main__":
cli()