Compare commits
7 Commits
15e6471e7e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5bfc135350 | |||
| 63213a4bc3 | |||
| e4243c7667 | |||
| 33bb0ffb17 | |||
| 7434a65590 | |||
| cd8e538c51 | |||
| 808c290c71 |
@@ -27,7 +27,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: https://gitea.com/actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create SSH key
|
- name: Create SSH key
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: https://gitea.com/actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create SSH key
|
- name: Create SSH key
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: https://gitea.com/actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create secrets.tfvars
|
- name: Create secrets.tfvars
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: https://gitea.com/actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create Terraform secret files
|
- name: Create Terraform secret files
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: https://gitea.com/actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create secrets.tfvars
|
- name: Create secrets.tfvars
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
|
|||||||
@@ -110,7 +110,9 @@ class Controller:
|
|||||||
"-o",
|
"-o",
|
||||||
"IdentitiesOnly=yes",
|
"IdentitiesOnly=yes",
|
||||||
"-o",
|
"-o",
|
||||||
"StrictHostKeyChecking=accept-new",
|
"StrictHostKeyChecking=no",
|
||||||
|
"-o",
|
||||||
|
"UserKnownHostsFile=/dev/null",
|
||||||
"-i",
|
"-i",
|
||||||
self.ssh_key,
|
self.ssh_key,
|
||||||
]
|
]
|
||||||
@@ -145,7 +147,13 @@ class Controller:
|
|||||||
f"({attempt}/{self.ssh_ready_retries})"
|
f"({attempt}/{self.ssh_ready_retries})"
|
||||||
)
|
)
|
||||||
time.sleep(self.ssh_ready_delay)
|
time.sleep(self.ssh_ready_delay)
|
||||||
raise RuntimeError(f"Unable to authenticate to {ip} with users: {', '.join(self.ssh_candidates)}")
|
raise RuntimeError(
|
||||||
|
"Unable to authenticate to "
|
||||||
|
f"{ip} with users: {', '.join(self.ssh_candidates)}. "
|
||||||
|
"If this is a freshly cloned VM, the Proxmox source template likely does not yet include the "
|
||||||
|
"current cloud-init-capable NixOS template configuration from nixos/template-base. "
|
||||||
|
"Terraform can only clone what exists in Proxmox; it cannot retrofit cloud-init support into an old template."
|
||||||
|
)
|
||||||
|
|
||||||
def remote(self, ip, cmd, check=True):
|
def remote(self, ip, cmd, check=True):
|
||||||
ordered = [self.active_ssh_user] + [u for u in self.ssh_candidates if u != self.active_ssh_user]
|
ordered = [self.active_ssh_user] + [u for u in self.ssh_candidates if u != self.active_ssh_user]
|
||||||
@@ -166,14 +174,7 @@ class Controller:
|
|||||||
return last
|
return last
|
||||||
|
|
||||||
def prepare_known_hosts(self):
|
def prepare_known_hosts(self):
|
||||||
ssh_dir = Path.home() / ".ssh"
|
pass
|
||||||
ssh_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
(ssh_dir / "known_hosts").touch()
|
|
||||||
run_local(["chmod", "700", str(ssh_dir)])
|
|
||||||
run_local(["chmod", "600", str(ssh_dir / "known_hosts")])
|
|
||||||
for ip in self.node_ips.values():
|
|
||||||
run_local(["ssh-keygen", "-R", ip], check=False)
|
|
||||||
run_local(f"ssh-keyscan -H {shlex.quote(ip)} >> {shlex.quote(str(ssh_dir / 'known_hosts'))}", check=False)
|
|
||||||
|
|
||||||
def prepare_remote_nix(self, ip):
|
def prepare_remote_nix(self, ip):
|
||||||
self.remote(ip, "sudo mkdir -p /etc/nix")
|
self.remote(ip, "sudo mkdir -p /etc/nix")
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ in
|
|||||||
./hardware-configuration.nix;
|
./hardware-configuration.nix;
|
||||||
|
|
||||||
networking.hostName = "k8s-base-template";
|
networking.hostName = "k8s-base-template";
|
||||||
networking.useDHCP = false;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
networking.useNetworkd = true;
|
networking.useNetworkd = true;
|
||||||
networking.nameservers = [ "1.1.1.1" "8.8.8.8" ];
|
networking.nameservers = [ "1.1.1.1" "8.8.8.8" ];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user