Compare commits

..

2 Commits

Author SHA1 Message Date
34ac53ab01 Merge pull request 'chore: Configure Renovate' (#1) from renovate/configure into master
Reviewed-on: #1
2025-10-02 21:02:40 +10:00
d64000c577 Add renovate.json 2025-10-02 11:01:07 +00:00
8 changed files with 50 additions and 59 deletions

View File

@ -2,7 +2,7 @@
## 📖 Overview ## 📖 Overview
This repository provisions and manages the Gitea Self-Hosted Runner for the Comprofix Homelab Infrastructure. This repo is designed to be run manually to build and setup the runner when requuired. This repository provisions and manages the GitHub Self-Hosted Runner for the Comprofix Homelab Infrastructure. This repo is designed to be run manually to build and setup the runner when requuired.
Built using Infrastructure as Code (IaC) with [OpenTofu](https://opentofu.org/) and [Ansible](https://ansible.com) Built using Infrastructure as Code (IaC) with [OpenTofu](https://opentofu.org/) and [Ansible](https://ansible.com)
--- ---
@ -16,23 +16,11 @@ Built using Infrastructure as Code (IaC) with [OpenTofu](https://opentofu.org/)
## 🔄 Usage ## 🔄 Usage
### 🛠️ Opentofu
1. Checkout repo 1. Checkout repo
2. From the opentofu folder, generate `terraform.auto.tfvars` using the supplied `prepareEnv.sh` 2. From the opentofu folder, generate `terraform.auto.tfvars` using the supplied ```prepareEnv.sh```
3. Run `tofu init`, `tofu fmt`, `tofu validate` 3. Run `tofu init`, `tofu fmt`, `tofu validate`
4. Execute `tofu plan` 4. Execute `tofu plan`
5. If successful, run `tofu apply` 5. If successful, run `tofu apply`
6. From the ansible folder, run `ansible-playbook main.yml` 6. From the ansible folder, run `ansible-playbook main.yml`
### 🧩 Ansible
1. Checkout repo
2. From the ansible folder, run `export GITEA_RUNNER_TOKEN="{{ YOUR_GITEA_RUNNER_TOKEN }}"`
3. Run `ansible-playbook main.yml -e "GITEA_RUNNER_TOKEN=$GITEA_RUNNER_TOKEN"`

View File

@ -1,6 +1,10 @@
--- ---
install_packages: install_packages:
- apt-transport-https
- ca-certificates
- curl - curl
- gnupg
- lsb-release
- vim - vim
- git - git
- htop - htop
@ -8,3 +12,8 @@ install_packages:
- mc - mc
- net-tools - net-tools
- unattended-upgrades - unattended-upgrades
data_folder: /data
alpine_latest_image: "alpine:latest"
ubuntu_latest_image: "node:22-trixie"
debian_latest_image: "git.comprofix.com/mmckinnon/debian-latest:2025.08.31-093853"

View File

@ -20,5 +20,8 @@
- administrator - administrator
tasks: tasks:
- name: Deploy docker apps - name: Deploy docker apps
import_tasks: "tasks/gitea-runner.yml" include_tasks: "tasks/{{ container }}.yml"
loop:
- gitea-runner
loop_control:
loop_var: container

View File

@ -0,0 +1,6 @@
---
- name: Create directories for {{ container }}
file:
path: "{{ data_folder }}/{{ container }}/{{ item }}"
state: directory
loop: "{{ subfolders | default(['config', 'data', 'logs']) }}"

View File

@ -1,20 +1,17 @@
- name: Create Folders
- name: Create folders include_tasks: create_folders.yml
file: vars:
path: "{{ item }}" subfolders:
state: directory - config
with_items:
- "/data/gitea-runner"
- "/data/gitea-runner/config"
- name: Check that config.yaml exists - name: Check that config.yaml exists
stat: stat:
path: "/data/gitea-runner/config/config.yaml" path: "{{ data_folder }}/gitea-runner/config/config.yaml"
register: configyaml register: configyaml
- name: Create config.yaml file - name: Create config.yaml file
file: file:
path: "/data/gitea-runner/config/config.yaml" path: "{{ data_folder }}/gitea-runner/config/config.yaml"
state: touch state: touch
mode: "0600" mode: "0600"
access_time: preserve access_time: preserve
@ -32,13 +29,12 @@
# - 127.0.0.11 # - 127.0.0.11
volumes: volumes:
- "/etc/resolv.conf:/etc/resolv.conf:ro" - "/etc/resolv.conf:/etc/resolv.conf:ro"
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
- "/data/gitea-runner/config/config.yaml:/config.yaml" - "{{ data_folder }}/gitea-runner/config/config.yaml:/config.yaml"
- "/etc/hosts:/etc/hosts:ro" - "/etc/hosts:/etc/hosts:ro"
env: env:
CONFIG_FILE: "/config.yaml" CONFIG_FILE: "/config.yaml"
GITEA_INSTANCE_URL: "https://git.comprofix.com" GITEA_INSTANCE_URL: "https://git.comprofix.com"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}" GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}"
GITEA_RUNNER_NAME: "gtar-runner" GITEA_RUNNER_NAME: "gtar-runner"
GITEA_RUNNER_LABELS: "alpine-latest:docker://alpine:latest,ubuntu-latest:docker://node:22-trixie,gtar-latest:docker://git.comprofix.com/mmckinnon/debian-latest:latest" GITEA_RUNNER_LABELS: "alpine-latest:docker://{{ alpine_latest_image }},ubuntu-latest:docker://{{ ubuntu_latest_image }},gtar-latest:docker://{{ debian_latest_image }}"

17
ansible/tasks/pull_image.yml Executable file
View File

@ -0,0 +1,17 @@
---
# Reusable snippet for pulling Docker images
- name: Set {{ image_name }} image reference
set_fact:
"{{ image_var }}_image_ref": "{{ image_ref }}"
- name: Ensure {{ image_name }} image is pulled
community.docker.docker_image:
name: "{{ image_ref }}"
source: pull
register: pulled_image
- name: Save image result under dynamic key
set_fact:
container_images: >-
{{ container_images | default({}) | combine({ image_var: pulled_image }) }}

View File

@ -22,7 +22,7 @@ resource "proxmox_lxc" "gtar" {
swap = "512" swap = "512"
rootfs { rootfs {
storage = "local" storage = "local-zfs"
size = "8G" size = "8G"
} }

View File

@ -1,31 +1,3 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json"
"extends": [
"local>RenovateBot/renovate-config",
":semanticCommitTypeAll(chore)"
],
"ignoreDeps": ["postgres"],
"regexManagers": [
{
"fileMatch": ["group_vars/all.yml"],
"matchStrings": ["^(\\s*(?<depName>\\w+_latest_image):\\s*\"?(?<currentValue>[^\"]+)\"?)"],
"datasourceTemplate": "docker",
"depNameTemplate": "{{ currentValue }}",
"versioningTemplate": "docker",
"pinDigests": true
}
],
"packageRules": [
{
"managers": ["docker"],
"matchPackageNames": ["alpine", "node"],
"pinDigests": true
},
{
"managers": ["docker"],
"matchPackageNames": ["git.comprofix.com/mmckinnon/debian-latest"],
"registryUrls": ["https://git.comprofix.com/v2/"],
"pinDigests": true
}
]
} }