chore: initialize git repository and add ArgoCD application manifests

This commit is contained in:
2026-11-02 17:13:58 -05:00
parent 7b791cebbc
commit dff2279a8f
5 changed files with 229 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import paramiko
import json
import sys
def main():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('140.44.4.41', username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
# Check if repo already exists
stdin, stdout, stderr = ssh.exec_command('kubectl exec -n infrastructure deployment/gitea -c gitea -- ls -la /data/git/gitea-repositories/snarf')
snarf_repos = stdout.read().decode()
if 'homelab-gitops.git' in snarf_repos:
print("homelab-gitops.git already exists on Gitea!")
else:
print("Generating Gitea API token for Snarf...")
stdin, stdout, stderr = ssh.exec_command("kubectl exec -n infrastructure deployment/gitea -c gitea -- gitea admin user generate-access-token -u Snarf -t gitops-token --scopes all --raw")
token = stdout.read().decode().strip()
print(f"Token obtained (len: {len(token)})")
create_payload = json.dumps({
"name": "homelab-gitops",
"description": "Snarfnet Homelab GitOps, Terraform, and ArgoCD Declarations",
"private": False,
"auto_init": True
})
# Call Gitea API inside gitea container
curl_cmd = f"kubectl exec -i -n infrastructure deployment/gitea -c gitea -- curl -s -X POST http://localhost:3000/api/v1/user/repos -H \"Authorization: token {token}\" -H \"Content-Type: application/json\" -d @-"
stdin, stdout, stderr = ssh.exec_command(curl_cmd)
stdin.write(create_payload)
stdin.channel.shutdown_write()
resp = stdout.read().decode()
print("API Response:", resp)
stdin, stdout, stderr = ssh.exec_command('kubectl exec -n infrastructure deployment/gitea -c gitea -- ls -la /data/git/gitea-repositories/snarf')
print("Repos under snarf:\n", stdout.read().decode())
ssh.close()
if __name__ == '__main__':
main()