aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/playbooks/gitea.yml13
-rw-r--r--ansible/roles/common/tasks/ufw.yml1
-rw-r--r--ansible/roles/docker/tasks/install_docker.yml4
-rw-r--r--ansible/roles/gitea/defaults/main.yml3
-rw-r--r--ansible/roles/gitea/tasks/deploy_gitea.yml38
-rw-r--r--ansible/roles/gitea/tasks/main.yml4
-rw-r--r--ansible/roles/k8s/tasks/install_helm.yml30
-rw-r--r--ansible/roles/k8s/tasks/main.yml4
-rw-r--r--ansible/roles/k8s/tasks/ufw.yml1
-rw-r--r--docker/compose/gitea/compose.yaml31
-rw-r--r--kubernetes/puter/compose.yaml19
-rw-r--r--kubernetes/puter/puter-claim0-persistentvolumeclaim.yaml12
-rw-r--r--kubernetes/puter/puter-claim1-persistentvolumeclaim.yaml12
-rw-r--r--kubernetes/puter/puter-deployment.yaml50
-rw-r--r--kubernetes/puter/puter-ingress.yml21
-rw-r--r--kubernetes/puter/puter-service.yaml16
-rw-r--r--opentofu/terraform.tfvars3
-rw-r--r--opentofu/versions.tf2
-rw-r--r--packer/ubuntu-server-noble/http/user-data2
19 files changed, 42 insertions, 224 deletions
diff --git a/ansible/playbooks/gitea.yml b/ansible/playbooks/gitea.yml
deleted file mode 100644
index 0f7a753..0000000
--- a/ansible/playbooks/gitea.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-- name: Deploy Gitea Service
- hosts: tag_docker
- become: true
-
- pre_tasks:
- - name: Ensure Docker is installed
- ansible.builtin.include_role:
- name: docker
-
- roles:
- - role: gitea
-...
diff --git a/ansible/roles/common/tasks/ufw.yml b/ansible/roles/common/tasks/ufw.yml
index aa8777b..d274f07 100644
--- a/ansible/roles/common/tasks/ufw.yml
+++ b/ansible/roles/common/tasks/ufw.yml
@@ -2,6 +2,7 @@
- name: Ensure UFW is installed
ansible.builtin.apt:
name: ufw
+ lock_timeout: 180 # 3m
state: present
- name: Allow SSH
diff --git a/ansible/roles/docker/tasks/install_docker.yml b/ansible/roles/docker/tasks/install_docker.yml
index 1f7be5d..3179618 100644
--- a/ansible/roles/docker/tasks/install_docker.yml
+++ b/ansible/roles/docker/tasks/install_docker.yml
@@ -9,7 +9,7 @@
name: "{{ docker_dependencies }}"
state: present
update_cache: true
- lock_timeout: 60
+ lock_timeout: 180 # 3m
- name: Ensure /etc/apt/keyrings directory exists
ansible.builtin.file:
@@ -36,7 +36,7 @@
name: "{{ docker_packages }}"
state: present
update_cache: true
- lock_timeout: 60
+ lock_timeout: 180 # 3m
- name: Ensure Docker service is started and enabled
ansible.builtin.systemd:
diff --git a/ansible/roles/gitea/defaults/main.yml b/ansible/roles/gitea/defaults/main.yml
deleted file mode 100644
index acb1cb5..0000000
--- a/ansible/roles/gitea/defaults/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-gitea_root_dir: /opt/gitea
-...
diff --git a/ansible/roles/gitea/tasks/deploy_gitea.yml b/ansible/roles/gitea/tasks/deploy_gitea.yml
deleted file mode 100644
index 4390689..0000000
--- a/ansible/roles/gitea/tasks/deploy_gitea.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-- name: Gather the package facts
- ansible.builtin.package_facts:
- manager: auto
-
-- name: Verify Docker and compose are available
- ansible.builtin.assert:
- that:
- - "'docker-ce' in ansible_facts.packages"
- - "'docker-compose-plugin' in ansible_facts.packages"
- fail_msg: "Docker and compose plugin are not installed"
-
-- name: Create Gitea directories
- ansible.builtin.file:
- path: "{{ gitea_root_dir }}"
- state: directory
- mode: '0755'
-
-- name: Deploy Gitea stack using compose v2
- community.docker.docker_compose_v2:
- project_src: "{{ playbook_dir }}/../../docker/compose/gitea"
- state: present
- pull: "policy"
- recreate: always
-
-- name: Verify that gitea and db services are running
- ansible.builtin.assert:
- that:
- - gitea_container.State == 'running'
- - db_container.State == 'running'
- vars:
- gitea_container: >-
- {{ output.containers | selectattr("Service", "equalto", "gitea") | first }}
- db_container: >-
- {{ output.containers | selectattr("Service", "equalto", "db") | first }}
-
-
-...
diff --git a/ansible/roles/gitea/tasks/main.yml b/ansible/roles/gitea/tasks/main.yml
deleted file mode 100644
index 25b2e71..0000000
--- a/ansible/roles/gitea/tasks/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-- name: Deploy Gitea container and it's db
- ansible.builtin.include_tasks: deploy_gitea.yml
-...
diff --git a/ansible/roles/k8s/tasks/install_helm.yml b/ansible/roles/k8s/tasks/install_helm.yml
new file mode 100644
index 0000000..244950a
--- /dev/null
+++ b/ansible/roles/k8s/tasks/install_helm.yml
@@ -0,0 +1,30 @@
+---
+- name: Check if Helm is already installed
+ command: helm version --short
+ register: helm_installed
+ ignore_errors: true
+ changed_when: false
+
+- name: Download Helm install script
+ get_url:
+ url: https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
+ dest: /tmp/get_helm.sh
+ mode: '0755'
+ when: helm_installed is failed or helm_installed.rc != 0
+
+- name: Install Helm
+ command: /tmp/get_helm.sh
+ become: true
+ when: helm_installed is failed or helm_installed.rc != 0
+ register: helm_install_result
+ changed_when: "'Helm' in helm_install_result.stdout"
+
+- name: Verify Helm installation
+ command: helm version --short
+ register: helm_version
+ changed_when: false
+
+- name: Display Helm version
+ debug:
+ msg: "Helm {{ helm_version.stdout }} is installed"
+...
diff --git a/ansible/roles/k8s/tasks/main.yml b/ansible/roles/k8s/tasks/main.yml
index fb58c1b..b6234fa 100644
--- a/ansible/roles/k8s/tasks/main.yml
+++ b/ansible/roles/k8s/tasks/main.yml
@@ -9,4 +9,8 @@
- name: Install k3s on worker nodes
ansible.builtin.include_tasks: install_k3s_worker.yml
when: inventory_hostname in groups['tag_k3s_worker']
+
+- name: Install helm on master nodes
+ ansible.builtin.include_tasks: install_helm.yml
+ when: inventory_hostname in groups['tag_k3s_master']
...
diff --git a/ansible/roles/k8s/tasks/ufw.yml b/ansible/roles/k8s/tasks/ufw.yml
index db4f27b..2d8dec5 100644
--- a/ansible/roles/k8s/tasks/ufw.yml
+++ b/ansible/roles/k8s/tasks/ufw.yml
@@ -2,6 +2,7 @@
- name: Ensure UFW is installed
ansible.builtin.apt:
name: ufw
+ lock_timeout: 180 # 3m
state: present
- name: Allow Kubernetes API server (6443)
diff --git a/docker/compose/gitea/compose.yaml b/docker/compose/gitea/compose.yaml
deleted file mode 100644
index 81a3546..0000000
--- a/docker/compose/gitea/compose.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-services:
- gitea:
- image: docker.gitea.com/gitea:1.23.6
- pull_policy: every_12h
- environment:
- - DB_TYPE=postgres
- - DB_HOST=db:5432
- - DB_NAME=gitea
- - DB_USER=gitea
- - DB_PASSWD=gitea
- restart: unless-stopped
- volumes:
- - git_data:/data
- ports:
- - '3000:3000'
- db:
- image: postgres:alpine
- environment:
- - POSTGRES_USER=gitea
- - POSTGRES_PASSWORD=gitea
- - POSTGRES_DB=gitea
- restart: unless-stopped
- volumes:
- - db_data:/var/lib/postgresql/data
- expose:
- - 5432
-volumes:
- db_data:
- git_data:
-...
diff --git a/kubernetes/puter/compose.yaml b/kubernetes/puter/compose.yaml
deleted file mode 100644
index f65da3e..0000000
--- a/kubernetes/puter/compose.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-services:
- puter:
- container_name: puter
- image: ghcr.io/heyputer/puter:latest
- pull_policy: always
- # build: ./
- restart: always
- ports:
- - '4100:4100'
- environment:
- TZ: Europe/Paris
- # CONFIG_PATH: /etc/puter
- PUID: 1000
- PGID: 1000
- volumes:
- - ${PWD}/config:/etc/puter
- - ${PWD}/data:/var/puter
-...
diff --git a/kubernetes/puter/puter-claim0-persistentvolumeclaim.yaml b/kubernetes/puter/puter-claim0-persistentvolumeclaim.yaml
deleted file mode 100644
index a1fbd92..0000000
--- a/kubernetes/puter/puter-claim0-persistentvolumeclaim.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- labels:
- io.kompose.service: puter-claim0
- name: puter-claim0
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 100Mi
diff --git a/kubernetes/puter/puter-claim1-persistentvolumeclaim.yaml b/kubernetes/puter/puter-claim1-persistentvolumeclaim.yaml
deleted file mode 100644
index b16f067..0000000
--- a/kubernetes/puter/puter-claim1-persistentvolumeclaim.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- labels:
- io.kompose.service: puter-claim1
- name: puter-claim1
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 100Mi
diff --git a/kubernetes/puter/puter-deployment.yaml b/kubernetes/puter/puter-deployment.yaml
deleted file mode 100644
index fb6a475..0000000
--- a/kubernetes/puter/puter-deployment.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- kompose.cmd: kompose convert
- kompose.version: 1.34.0 (cbf2835db)
- labels:
- io.kompose.service: puter
- name: puter
-spec:
- replicas: 1
- selector:
- matchLabels:
- io.kompose.service: puter
- strategy:
- type: Recreate
- template:
- metadata:
- annotations:
- kompose.cmd: kompose convert
- kompose.version: 1.34.0 (cbf2835db)
- labels:
- io.kompose.service: puter
- spec:
- containers:
- - env:
- - name: PGID
- value: "1000"
- - name: PUID
- value: "1000"
- - name: TZ
- value: Europe/Paris
- image: ghcr.io/heyputer/puter:latest
- name: puter
- ports:
- - containerPort: 4100
- protocol: TCP
- volumeMounts:
- - mountPath: /etc/puter
- name: puter-claim0
- - mountPath: /var/puter
- name: puter-claim1
- restartPolicy: Always
- volumes:
- - name: puter-claim0
- persistentVolumeClaim:
- claimName: puter-claim0
- - name: puter-claim1
- persistentVolumeClaim:
- claimName: puter-claim1
diff --git a/kubernetes/puter/puter-ingress.yml b/kubernetes/puter/puter-ingress.yml
deleted file mode 100644
index 09fa454..0000000
--- a/kubernetes/puter/puter-ingress.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: puter-ingress
- annotations:
- traefik.ingress.kubernetes.io/request-headers: |
- Host=puter.local
-spec:
- rules:
- - host: puter.local
- http:
- paths:
- - path: /
- pathType: Prefix
- backend:
- service:
- name: puter
- port:
- number: 4100
-...
diff --git a/kubernetes/puter/puter-service.yaml b/kubernetes/puter/puter-service.yaml
deleted file mode 100644
index 22c7983..0000000
--- a/kubernetes/puter/puter-service.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- annotations:
- kompose.cmd: kompose convert
- kompose.version: 1.34.0 (cbf2835db)
- labels:
- io.kompose.service: puter
- name: puter
-spec:
- ports:
- - name: "4100"
- port: 4100
- targetPort: 4100
- selector:
- io.kompose.service: puter
diff --git a/opentofu/terraform.tfvars b/opentofu/terraform.tfvars
index a4f8a13..0632a53 100644
--- a/opentofu/terraform.tfvars
+++ b/opentofu/terraform.tfvars
@@ -1,4 +1,5 @@
-proxmox_api_url = "https://10.0.0.5:8006/api2/json"
+proxmox_api_url = "https://10.0.0.5:8006/api2/json"
+#proxmox_api_url = "https://192.168.1.10:8006/api2/json"
proxmox_node = "pve"
debian_server_bookworm_packer_image_id = "999"
ubuntu_server_noble_packer_image_id = "998"
diff --git a/opentofu/versions.tf b/opentofu/versions.tf
index e453f27..f722ea0 100644
--- a/opentofu/versions.tf
+++ b/opentofu/versions.tf
@@ -4,7 +4,7 @@ terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
- version = "0.77.0"
+ version = "0.85.0"
}
local = {
source = "hashicorp/local"
diff --git a/packer/ubuntu-server-noble/http/user-data b/packer/ubuntu-server-noble/http/user-data
index 8254189..bc7e7f6 100644
--- a/packer/ubuntu-server-noble/http/user-data
+++ b/packer/ubuntu-server-noble/http/user-data
@@ -21,7 +21,7 @@ autoinstall:
swap:
size: 0
user-data:
- package_upgrade: true
+ package_upgrade: false
timezone: Europe/Paris
users:
- name: mas