| #!/usr/bin/env python3 |
| """ generate ssh keys for shells SFTP container """ |
| from pathlib import Path |
| from subprocess import run |
| import json |
| import tempfile |
| |
| with tempfile.TemporaryDirectory() as tmp: |
| tmp = Path(tmp).absolute() |
| keyfile = tmp.joinpath("ssh_host_ed25519_key") |
| run(["ssh-keygen", "-f", keyfile, "-N", "", "-t", "ed25519"], check=True) |
| |
| # https://kubernetes.io/docs/concepts/configuration/secret/#generating-a-secret-from-files |
| generator = { |
| "secretGenerator": [ |
| { |
| "name": "shells-ssh-host-key", |
| "files": [ |
| str(f.relative_to(tmp)) |
| for f in [keyfile, keyfile.with_suffix(".pub")] |
| ], |
| } |
| ] |
| } |
| tmp.joinpath("kustomization.yaml").write_text(json.dumps(generator)) |
| run(["kubectl", "-n", "personal-vuko", "apply", "-k", tmp], check=True) |