Compare commits
85 commits
renovate/c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| dc2c619e19 | |||
| fa564e4d8c | |||
| dc09d0109e | |||
| ce51ae2f8d | |||
| e66526b176 | |||
| 2d1916de2b | |||
| b968cd024f | |||
| d7effa4eac | |||
| d50b776fef | |||
| 1ddfd948a5 | |||
| f457e7f1d9 | |||
| ecf16c0717 | |||
| 224450c70c | |||
| e47f51426a | |||
| c38262a51b | |||
| 57ea463e19 | |||
| ab36649642 | |||
| ea54a2601d | |||
| 8343867aee | |||
| 1c0c8bab82 | |||
| e6aafbcf81 | |||
| 6cdffc48f3 | |||
| 2afdded109 | |||
| 7f8883c2bc | |||
| f1b27dc366 | |||
| 5974e6450c | |||
| 160424525a | |||
|
|
059d35af3e | ||
| a1bf4cfff8 | |||
| fe23c8a706 | |||
| d23eb0f603 | |||
|
|
4cb432f2ce | ||
| 33efd5915f | |||
| 64ccf3bce1 | |||
|
|
746e7f4d86 | ||
| 357cca51f6 | |||
| 68d068300a | |||
| d6d965595c | |||
| 749974197e | |||
| 9d5ffd8a8a | |||
| f75d5d5be4 | |||
| ed66676f2e | |||
| 975dbd1c6d | |||
| 53acab0ece | |||
| b328e106df | |||
| f7029a6329 | |||
| 0e20657811 | |||
| 0af5e1f9c1 | |||
|
|
268e8b7af5 | ||
| 1b37247b52 | |||
| 8219bbc713 | |||
| 38475db228 | |||
|
|
3907301d13 | ||
| 2319a2eecd | |||
| 8173a53e53 | |||
| cc7ed8c81a | |||
| e3547898ec | |||
| 50138f25e6 | |||
| 3f40dcb38c | |||
| f35949a328 | |||
| bbd94d3f22 | |||
| 30b6c8ebc8 | |||
| 6912ca701a | |||
| 5e39fb1a1d | |||
| 6799a84f65 | |||
| 5a0664e1ef | |||
| 3e062cea4c | |||
| a6437bb109 | |||
| 04b638b8f9 | |||
| 6bd445af5b | |||
|
|
8b892fe6b1 | ||
|
|
db506ef032 | ||
|
|
121bd8a421 | ||
|
|
6b027f04b4 | ||
|
|
443c5b30bd | ||
|
|
f021aae87e | ||
|
|
c670446551 | ||
|
|
f90b412149 | ||
|
|
e427f19c29 | ||
|
|
e2348f012b | ||
|
|
63fe8a5a33 | ||
|
|
e401910bee | ||
|
|
2036374917 | ||
|
|
fa6036b05a | ||
|
|
cb37d0211e |
250 changed files with 1163 additions and 10839 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1,3 +1,3 @@
|
||||||
|
*/.terraform
|
||||||
|
*/.terraform.lock.hcl
|
||||||
.idea
|
.idea
|
||||||
infra/terraform/.terraform
|
|
||||||
infra/terraform/.terraform.lock.hcl
|
|
||||||
|
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
stages:
|
|
||||||
- triggers
|
|
||||||
|
|
||||||
build_dmz:
|
|
||||||
stage: triggers
|
|
||||||
trigger:
|
|
||||||
include: infra/.gitlab/.gitlab-ci.yml
|
|
||||||
rules:
|
|
||||||
- changes:
|
|
||||||
- "dmz/terraform/*.tf"
|
|
||||||
|
|
||||||
build_infra:
|
|
||||||
stage: triggers
|
|
||||||
trigger:
|
|
||||||
include: infra/.gitlab/.gitlab-ci.yml
|
|
||||||
rules:
|
|
||||||
- changes:
|
|
||||||
- "infra/terraform/*.tf"
|
|
||||||
|
|
||||||
build_dev:
|
|
||||||
stage: triggers
|
|
||||||
trigger:
|
|
||||||
include: dev/.gitlab/.gitlab-ci.yml
|
|
||||||
rules:
|
|
||||||
- changes:
|
|
||||||
- "dev/terraform/*.tf"
|
|
||||||
|
|
||||||
build_prd:
|
|
||||||
stage: triggers
|
|
||||||
trigger:
|
|
||||||
include: prd/.gitlab/.gitlab-ci.yml
|
|
||||||
rules:
|
|
||||||
- changes:
|
|
||||||
- "prd/terraform/*.tf"
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
- hosts: all
|
|
||||||
gather_facts: yes
|
|
||||||
become: yes
|
|
||||||
roles:
|
|
||||||
- base
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
argocd login --insecure
|
|
||||||
argocd cluster add default --name prd --yes --kubeconfig ~/Documents/config-prd
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Acquire::http::Proxy "http://192.168.21.200:3142";
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
APT::Periodic::Update-Package-Lists "1";
|
|
||||||
APT::Periodic::Download-Upgradeable-Packages "1";
|
|
||||||
APT::Periodic::AutocleanInterval "7";
|
|
||||||
APT::Periodic::Unattended-Upgrade "1";
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIGilcndatMrXg06VxtNKuIo3scoyyXbYX8Z7cOjeA102AAAABHNzaDo= desktop-arch-09-08-2025-yubikey
|
|
||||||
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAINsbNSZ5Wr+50Ahz+IeZxt6F7gZ6wm1J8uKXQLbdbKFaAAAABHNzaDo= desktop-arch-09-08-2025-yubikeyNano
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
Use of this system is restricted to authorized users only, and all use is subjected to an acceptable use policy.
|
|
||||||
|
|
||||||
IF YOU ARE NOT AUTHORIZED TO USE THIS SYSTEM, DISCONNECT NOW.
|
|
||||||
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
THIS SYSTEM IS FOR AUTHORIZED USE ONLY
|
|
||||||
|
|
||||||
All activities are logged and monitored.
|
|
||||||
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
# Package generated configuration file
|
|
||||||
# See the sshd_config(5) manpage for details
|
|
||||||
|
|
||||||
# What ports, IPs and protocols we listen for
|
|
||||||
Port 22
|
|
||||||
# Use these options to restrict which interfaces/protocols sshd will bind to
|
|
||||||
#ListenAddress ::
|
|
||||||
#ListenAddress 0.0.0.0
|
|
||||||
Protocol 2
|
|
||||||
# HostKeys for protocol version 2
|
|
||||||
HostKey /etc/ssh/ssh_host_rsa_key
|
|
||||||
HostKey /etc/ssh/ssh_host_dsa_key
|
|
||||||
HostKey /etc/ssh/ssh_host_ecdsa_key
|
|
||||||
HostKey /etc/ssh/ssh_host_ed25519_key
|
|
||||||
#Privilege Separation is turned on for security
|
|
||||||
UsePrivilegeSeparation yes
|
|
||||||
|
|
||||||
# Lifetime and size of ephemeral version 1 server key
|
|
||||||
KeyRegenerationInterval 3600
|
|
||||||
ServerKeyBits 1024
|
|
||||||
|
|
||||||
# Logging
|
|
||||||
SyslogFacility AUTH
|
|
||||||
LogLevel INFO
|
|
||||||
|
|
||||||
# Authentication:
|
|
||||||
LoginGraceTime 120
|
|
||||||
PermitRootLogin no
|
|
||||||
StrictModes yes
|
|
||||||
|
|
||||||
RSAAuthentication yes
|
|
||||||
PubkeyAuthentication yes
|
|
||||||
#AuthorizedKeysFile %h/.ssh/authorized_keys
|
|
||||||
|
|
||||||
# Don't read the user's ~/.rhosts and ~/.shosts files
|
|
||||||
IgnoreRhosts yes
|
|
||||||
# For this to work you will also need host keys in /etc/ssh_known_hosts
|
|
||||||
RhostsRSAAuthentication no
|
|
||||||
# similar for protocol version 2
|
|
||||||
HostbasedAuthentication no
|
|
||||||
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
|
|
||||||
#IgnoreUserKnownHosts yes
|
|
||||||
|
|
||||||
# To enable empty passwords, change to yes (NOT RECOMMENDED)
|
|
||||||
PermitEmptyPasswords no
|
|
||||||
|
|
||||||
# Change to yes to enable challenge-response passwords (beware issues with
|
|
||||||
# some PAM modules and threads)
|
|
||||||
ChallengeResponseAuthentication no
|
|
||||||
|
|
||||||
# Change to no to disable tunnelled clear text passwords
|
|
||||||
PasswordAuthentication no
|
|
||||||
|
|
||||||
# Kerberos options
|
|
||||||
#KerberosAuthentication no
|
|
||||||
#KerberosGetAFSToken no
|
|
||||||
#KerberosOrLocalPasswd yes
|
|
||||||
#KerberosTicketCleanup yes
|
|
||||||
|
|
||||||
# GSSAPI options
|
|
||||||
#GSSAPIAuthentication no
|
|
||||||
#GSSAPICleanupCredentials yes
|
|
||||||
|
|
||||||
X11Forwarding no
|
|
||||||
X11DisplayOffset 10
|
|
||||||
PrintMotd no
|
|
||||||
PrintLastLog yes
|
|
||||||
TCPKeepAlive yes
|
|
||||||
#UseLogin no
|
|
||||||
|
|
||||||
#MaxStartups 10:30:60
|
|
||||||
#Banner /etc/issue.net
|
|
||||||
|
|
||||||
# Allow client to pass locale environment variables
|
|
||||||
AcceptEnv LANG LC_*
|
|
||||||
|
|
||||||
Subsystem sftp /usr/lib/openssh/sftp-server
|
|
||||||
|
|
||||||
# Set this to 'yes' to enable PAM authentication, account processing,
|
|
||||||
# and session processing. If this is enabled, PAM authentication will
|
|
||||||
# be allowed through the ChallengeResponseAuthentication and
|
|
||||||
# PasswordAuthentication. Depending on your PAM configuration,
|
|
||||||
# PAM authentication via ChallengeResponseAuthentication may bypass
|
|
||||||
# the setting of "PermitRootLogin without-password".
|
|
||||||
# If you just want the PAM account and session checks to run without
|
|
||||||
# PAM authentication, then enable this but set PasswordAuthentication
|
|
||||||
# and ChallengeResponseAuthentication to 'no'.
|
|
||||||
UsePAM yes
|
|
||||||
|
|
||||||
ClientAliveInterval 300
|
|
||||||
|
|
||||||
#enable remote powershell
|
|
||||||
#Subsystem powershell /usr/bin/pwsh -sshs -NoLogo
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,155 +0,0 @@
|
||||||
- name: Copy apt proxy
|
|
||||||
copy:
|
|
||||||
src: files/01proxy
|
|
||||||
dest: /etc/apt/apt.conf.d/01proxy
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
force: yes
|
|
||||||
when:
|
|
||||||
- ansible_os_family == "Debian"
|
|
||||||
- inventory_hostname not in hosts_deny
|
|
||||||
|
|
||||||
- name: Update packages
|
|
||||||
apt:
|
|
||||||
name: '*'
|
|
||||||
state: latest
|
|
||||||
update_cache: yes
|
|
||||||
only_upgrade: yes
|
|
||||||
retries: 300
|
|
||||||
delay: 10
|
|
||||||
|
|
||||||
- name: Remove packages not needed anymore
|
|
||||||
apt:
|
|
||||||
autoremove: yes
|
|
||||||
retries: 300
|
|
||||||
delay: 10
|
|
||||||
|
|
||||||
- name: Install required packages Debian
|
|
||||||
apt:
|
|
||||||
state: latest
|
|
||||||
pkg: "{{ item }}"
|
|
||||||
with_items: "{{ required_packages }}"
|
|
||||||
retries: 300
|
|
||||||
delay: 10
|
|
||||||
|
|
||||||
- name: Create user account
|
|
||||||
user:
|
|
||||||
name: "user"
|
|
||||||
shell: /bin/bash
|
|
||||||
state: present
|
|
||||||
createhome: yes
|
|
||||||
|
|
||||||
- name: ensure ssh folder exists for user
|
|
||||||
file:
|
|
||||||
path: /home/user/.ssh
|
|
||||||
owner: user
|
|
||||||
group: user
|
|
||||||
mode: "0700"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Deploy SSH Key (user)
|
|
||||||
copy:
|
|
||||||
dest: /home/user/.ssh/authorized_keys
|
|
||||||
src: files/authorized_keys_user
|
|
||||||
owner: user
|
|
||||||
group: user
|
|
||||||
force: true
|
|
||||||
|
|
||||||
- name: Remove Root SSH Configuration
|
|
||||||
file:
|
|
||||||
path: /root/.ssh
|
|
||||||
state: absent
|
|
||||||
|
|
||||||
- name: Copy Secured SSHD Configuration
|
|
||||||
copy:
|
|
||||||
src: files/sshd_config_secured
|
|
||||||
dest: /etc/ssh/sshd_config
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
when: ansible_os_family == "Debian"
|
|
||||||
|
|
||||||
- name: Copy Secured SSHD Configuration
|
|
||||||
copy:
|
|
||||||
src: files/sshd_config_secured_redhat
|
|
||||||
dest: /etc/ssh/sshd_config
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
when: ansible_os_family == "RedHat"
|
|
||||||
|
|
||||||
- name: Restart SSHD
|
|
||||||
systemd:
|
|
||||||
name: sshd
|
|
||||||
daemon_reload: yes
|
|
||||||
state: restarted
|
|
||||||
enabled: yes
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
|
|
||||||
- name: Copy unattended-upgrades file
|
|
||||||
copy:
|
|
||||||
src: files/10periodic
|
|
||||||
dest: /etc/apt/apt.conf.d/10periodic
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
force: yes
|
|
||||||
when: ansible_os_family == "Debian"
|
|
||||||
|
|
||||||
- name: Remove undesirable packages
|
|
||||||
package:
|
|
||||||
name: "{{ unnecessary_software }}"
|
|
||||||
state: absent
|
|
||||||
when: ansible_os_family == "Debian"
|
|
||||||
|
|
||||||
- name: Stop and disable unnecessary services
|
|
||||||
service:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: stopped
|
|
||||||
enabled: no
|
|
||||||
with_items: "{{ unnecessary_services }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: Set a message of the day
|
|
||||||
copy:
|
|
||||||
dest: /etc/motd
|
|
||||||
src: files/motd
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- name: Set a login banner
|
|
||||||
copy:
|
|
||||||
dest: "{{ item }}"
|
|
||||||
src: files/issue
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
with_items:
|
|
||||||
- /etc/issue
|
|
||||||
- /etc/issue.net
|
|
||||||
|
|
||||||
- name: set timezone
|
|
||||||
shell: timedatectl set-timezone America/Chicago
|
|
||||||
|
|
||||||
- name: Enable cockpit
|
|
||||||
systemd:
|
|
||||||
name: cockpit
|
|
||||||
daemon_reload: yes
|
|
||||||
state: restarted
|
|
||||||
enabled: yes
|
|
||||||
|
|
||||||
- name: change password
|
|
||||||
ansible.builtin.user:
|
|
||||||
name: "user"
|
|
||||||
state: present
|
|
||||||
password: "{{ lookup('ansible.builtin.env', 'USER_PASSWORD') | password_hash('sha512') }}"
|
|
||||||
|
|
||||||
- name: add user to sudoers
|
|
||||||
community.general.sudoers:
|
|
||||||
name: user
|
|
||||||
state: present
|
|
||||||
user: user
|
|
||||||
commands: ALL
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
required_packages:
|
|
||||||
- ufw
|
|
||||||
- qemu-guest-agent
|
|
||||||
- fail2ban
|
|
||||||
- unattended-upgrades
|
|
||||||
- cockpit
|
|
||||||
- nfs-common
|
|
||||||
- open-iscsi
|
|
||||||
|
|
||||||
unnecessary_services:
|
|
||||||
- postfix
|
|
||||||
- telnet
|
|
||||||
|
|
||||||
unnecessary_software:
|
|
||||||
- tcpdump
|
|
||||||
- nmap-ncat
|
|
||||||
- wpa_supplicant
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
resource "proxmox_vm_qemu" "k3smaster" {
|
|
||||||
count = local.k3smaster.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
vmid = "${local.vlan}${local.k3smaster.ip[count.index]}"
|
|
||||||
name = local.k3smaster.name[count.index]
|
|
||||||
target_node = local.k3smaster.node[count.index]
|
|
||||||
clone = local.template
|
|
||||||
tags = local.k3smaster.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = true
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3smaster.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3smaster.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.k3smaster.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3smaster.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.k3smaster.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3smaster.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_vm_qemu" "k3sserver" {
|
|
||||||
count = local.k3sserver.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
vmid = "${local.vlan}${local.k3sserver.ip[count.index]}"
|
|
||||||
name = local.k3sserver.name[count.index]
|
|
||||||
target_node = local.k3sserver.node[count.index]
|
|
||||||
clone = local.template
|
|
||||||
tags = local.k3sserver.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = true
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3sserver.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3sserver.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.k3sserver.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3sserver.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.k3sserver.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3sserver.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
terraform {
|
|
||||||
backend "http" {}
|
|
||||||
required_providers {
|
|
||||||
proxmox = {
|
|
||||||
source = "Telmate/proxmox"
|
|
||||||
version = "3.0.1-rc9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "proxmox" {
|
|
||||||
pm_parallel = 1
|
|
||||||
pm_tls_insecure = true
|
|
||||||
pm_api_url = var.pm_api_url
|
|
||||||
pm_user = var.pm_user
|
|
||||||
pm_password = var.pm_password
|
|
||||||
pm_debug = false
|
|
||||||
}
|
|
||||||
|
|
||||||
locals {
|
|
||||||
sshkeys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEphzWgwUZnvL6E5luKLt3WO0HK7Kh63arSMoNl5gmjzXyhG1DDW0OKfoIl0T+JZw/ZjQ7iii6tmSLFRk6nuYCldqe5GVcFxvTzX4/xGEioAyG0IiUGKy6s+9xzO8QXF0EtSNPH0nfHNKcCjgwWAzM+Lt6gW0Vqs+aU5ICuDiEchmvYPz+rBaVldJVTG7m3ogKJ2aIF7HU/pCPp5l0E9gMOw7s0ABijuc3KXLEWCYgL39jIST6pFH9ceRLmu8Xy5zXHAkkEEauY/e6ld0hlzLadiUD7zYJMdDcm0oRvenYcUlaUl9gS0569IpfsJsjCejuqOxCKzTHPJDOT0f9TbIqPXkGq3s9oEJGpQW+Z8g41BqRpjBCdBk+yv39bzKxlwlumDwqgx1WP8xxKavAWYNqNRG7sBhoWwtxYEOhKXoLNjBaeDRnO5OY5AQJvONWpuByyz0R/gTh4bOFVD+Y8WWlKbT4zfhnN70XvapRsbZiaGhJBPwByAMGg6XxSbC6xtbyligVGCEjCXbTLkeKq1w0DuItY+FBGO3J2k90OiciTVSeyiVz9J/Y03UB0gHdsMCoVNrj+9QWfrTLDhM7D5YrXUt5nj2LQTcbtf49zoQXWxUhozlg42E/FJU/Yla7y55qWizAEVyP2/Ks/PHrF679k59HNd2IJ/aicA9QnmWtLQ== ansible"
|
|
||||||
template = "Debian12-Template"
|
|
||||||
format = "raw"
|
|
||||||
dnsserver = "192.168.10.1"
|
|
||||||
vlan = 10
|
|
||||||
k3smaster = {
|
|
||||||
tags = "k3s_dev"
|
|
||||||
count = 3
|
|
||||||
name = ["master01-dev", "master02-dev", "master03-dev"]
|
|
||||||
cores = 2
|
|
||||||
memory = "4096"
|
|
||||||
drive = 20
|
|
||||||
storage = "cache-domains"
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["11", "12", "13"]
|
|
||||||
}
|
|
||||||
k3sserver = {
|
|
||||||
tags = "k3s_dev"
|
|
||||||
count = 3
|
|
||||||
name = ["node01-dev", "node02-dev", "node03-dev"]
|
|
||||||
cores = 4
|
|
||||||
memory = "8192"
|
|
||||||
drive = 120
|
|
||||||
storage = "cache-domains"
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["21", "22", "23"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
variable "pm_api_url" {
|
|
||||||
description = "API URL to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_password" {
|
|
||||||
description = "Passowrd to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_user" {
|
|
||||||
description = "Username to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: Certificate
|
|
||||||
metadata:
|
|
||||||
name: authentik-tls
|
|
||||||
spec:
|
|
||||||
issuerRef:
|
|
||||||
name: letsencrypt-production
|
|
||||||
kind: ClusterIssuer
|
|
||||||
secretName: authentik-tls
|
|
||||||
commonName: "authentik.durp.info"
|
|
||||||
dnsNames:
|
|
||||||
- "authentik.durp.info"
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: authentik-ingress
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: infra-cluster
|
|
||||||
port: 443
|
|
||||||
tls:
|
|
||||||
secretName: authentik-tls
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: Service
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: authentik-external-dns
|
|
||||||
annotations:
|
|
||||||
external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
|
||||||
spec:
|
|
||||||
type: ExternalName
|
|
||||||
externalName: durp.info
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: infra-cluster
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.12.130
|
|
||||||
ports:
|
|
||||||
- port: 443
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: infra-cluster
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- protocol: TCP
|
|
||||||
port: 443
|
|
||||||
targetPort: 443
|
|
||||||
|
|
@ -6,9 +6,6 @@ version: 0.0.1
|
||||||
appVersion: 0.0.1
|
appVersion: 0.0.1
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: gitlab-runner
|
|
||||||
repository: https://charts.gitlab.io/
|
|
||||||
version: 0.77.2
|
|
||||||
- name: gitlab-runner
|
- name: gitlab-runner
|
||||||
repository: https://charts.gitlab.io/
|
repository: https://charts.gitlab.io/
|
||||||
version: 0.77.2
|
version: 0.77.2
|
||||||
|
|
|
||||||
|
|
@ -1,75 +1,3 @@
|
||||||
gitlab-runner:
|
|
||||||
|
|
||||||
image:
|
|
||||||
registry: registry.durp.info
|
|
||||||
image: gitlab-org/gitlab-runner
|
|
||||||
|
|
||||||
imagePullPolicy: Always
|
|
||||||
gitlabUrl: https://gitlab.com/
|
|
||||||
unregisterRunner: false
|
|
||||||
terminationGracePeriodSeconds: 3600
|
|
||||||
concurrent: 10
|
|
||||||
checkInterval: 30
|
|
||||||
|
|
||||||
rbac:
|
|
||||||
create: true
|
|
||||||
rules: []
|
|
||||||
clusterWideAccess: false
|
|
||||||
podSecurityPolicy:
|
|
||||||
enabled: false
|
|
||||||
resourceNames:
|
|
||||||
- gitlab-runner
|
|
||||||
|
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: true
|
|
||||||
service:
|
|
||||||
enabled: true
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
runners:
|
|
||||||
config: |
|
|
||||||
[[runners]]
|
|
||||||
[runners.kubernetes]
|
|
||||||
namespace = "{{.Release.Namespace}}"
|
|
||||||
image = "ubuntu:22.04"
|
|
||||||
privileged = true
|
|
||||||
|
|
||||||
executor: kubernetes
|
|
||||||
name: "k3s"
|
|
||||||
runUntagged: true
|
|
||||||
privileged: true
|
|
||||||
secret: gitlab-secret
|
|
||||||
#builds:
|
|
||||||
#cpuLimit: 200m
|
|
||||||
#cpuLimitOverwriteMaxAllowed: 400m
|
|
||||||
#memoryLimit: 256Mi
|
|
||||||
#memoryLimitOverwriteMaxAllowed: 512Mi
|
|
||||||
#cpuRequests: 100m
|
|
||||||
#cpuRequestsOverwriteMaxAllowed: 200m
|
|
||||||
#memoryRequests: 128Mi
|
|
||||||
#memoryRequestsOverwriteMaxAllowed: 256Mi
|
|
||||||
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
readOnlyRootFilesystem: false
|
|
||||||
runAsNonRoot: true
|
|
||||||
privileged: false
|
|
||||||
capabilities:
|
|
||||||
drop: ["ALL"]
|
|
||||||
|
|
||||||
podSecurityContext:
|
|
||||||
runAsUser: 100
|
|
||||||
fsGroup: 65533
|
|
||||||
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 2Gi
|
|
||||||
requests:
|
|
||||||
memory: 128Mi
|
|
||||||
cpu: 500m
|
|
||||||
|
|
||||||
personal:
|
personal:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
|
|
@ -77,7 +5,7 @@ personal:
|
||||||
image: gitlab-org/gitlab-runner
|
image: gitlab-org/gitlab-runner
|
||||||
|
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
gitlabUrl: https://gitlab.com/
|
gitlabUrl: https://gitlab.durp.info/
|
||||||
unregisterRunner: false
|
unregisterRunner: false
|
||||||
terminationGracePeriodSeconds: 3600
|
terminationGracePeriodSeconds: 3600
|
||||||
concurrent: 10
|
concurrent: 10
|
||||||
|
|
@ -113,15 +41,15 @@ personal:
|
||||||
runUntagged: true
|
runUntagged: true
|
||||||
privileged: true
|
privileged: true
|
||||||
secret: gitlab-secret-personal
|
secret: gitlab-secret-personal
|
||||||
#builds:
|
builds:
|
||||||
#cpuLimit: 200m
|
cpuLimit: 200m
|
||||||
#cpuLimitOverwriteMaxAllowed: 400m
|
cpuLimitOverwriteMaxAllowed: 400m
|
||||||
#memoryLimit: 256Mi
|
memoryLimit: 256Mi
|
||||||
#memoryLimitOverwriteMaxAllowed: 512Mi
|
memoryLimitOverwriteMaxAllowed: 512Mi
|
||||||
#cpuRequests: 100m
|
cpuRequests: 100m
|
||||||
#cpuRequestsOverwriteMaxAllowed: 200m
|
cpuRequestsOverwriteMaxAllowed: 200m
|
||||||
#memoryRequests: 128Mi
|
memoryRequests: 128Mi
|
||||||
#memoryRequestsOverwriteMaxAllowed: 256Mi
|
memoryRequestsOverwriteMaxAllowed: 256Mi
|
||||||
|
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
|
|
@ -140,4 +68,4 @@ personal:
|
||||||
memory: 2Gi
|
memory: 2Gi
|
||||||
requests:
|
requests:
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
cpu: 500m
|
cpu: 50m
|
||||||
|
|
|
||||||
34
dmz/internalproxy/templates/argocd.yaml
Normal file
34
dmz/internalproxy/templates/argocd.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: argocd-infra-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`argocd.infra.durp.info`)
|
||||||
|
middlewares:
|
||||||
|
- name: whitelist
|
||||||
|
namespace: traefik
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: infra-cluster
|
||||||
|
port: 443
|
||||||
|
scheme: https
|
||||||
|
tls:
|
||||||
|
secretName: argocd-infra-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: argocd-infra-tls
|
||||||
|
spec:
|
||||||
|
secretName: argocd-infra-tls
|
||||||
|
issuerRef:
|
||||||
|
name: vault-issuer
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "argocd.infra.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "argocd.infra.durp.info"
|
||||||
|
|
@ -1,40 +1,40 @@
|
||||||
#apiVersion: traefik.io/v1alpha1
|
apiVersion: cert-manager.io/v1
|
||||||
#kind: IngressRoute
|
kind: Certificate
|
||||||
#metadata:
|
metadata:
|
||||||
# name: authentik-ingress
|
name: authentik-tls
|
||||||
#spec:
|
spec:
|
||||||
# entryPoints:
|
issuerRef:
|
||||||
# - websecure
|
name: letsencrypt-production
|
||||||
# routes:
|
kind: ClusterIssuer
|
||||||
# - match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
secretName: authentik-tls
|
||||||
# kind: Rule
|
commonName: "authentik.durp.info"
|
||||||
# services:
|
dnsNames:
|
||||||
# - name: infra-cluster
|
- "authentik.durp.info"
|
||||||
# port: 443
|
|
||||||
# tls:
|
---
|
||||||
# secretName: authentik-tls
|
apiVersion: traefik.io/v1alpha1
|
||||||
#
|
kind: IngressRoute
|
||||||
#---
|
metadata:
|
||||||
#apiVersion: cert-manager.io/v1
|
name: authentik-ingress
|
||||||
#kind: Certificate
|
spec:
|
||||||
#metadata:
|
entryPoints:
|
||||||
# name: authentik-tls
|
- websecure
|
||||||
#spec:
|
routes:
|
||||||
# issuerRef:
|
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||||
# name: letsencrypt-production
|
kind: Rule
|
||||||
# kind: ClusterIssuer
|
services:
|
||||||
# secretName: authentik-tls
|
- name: infra-cluster
|
||||||
# commonName: "authentik.durp.info"
|
port: 443
|
||||||
# dnsNames:
|
tls:
|
||||||
# - "authentik.durp.info"
|
secretName: authentik-tls
|
||||||
#
|
|
||||||
#---
|
---
|
||||||
#kind: Service
|
kind: Service
|
||||||
#apiVersion: v1
|
apiVersion: v1
|
||||||
#metadata:
|
metadata:
|
||||||
# name: authentik-external-dns
|
name: authentik-external-dns
|
||||||
# annotations:
|
annotations:
|
||||||
# external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
||||||
#spec:
|
spec:
|
||||||
# type: ExternalName
|
type: ExternalName
|
||||||
# externalName: durp.info
|
externalName: durp.info
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: duplicati
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8200
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8200
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: duplicati
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8200
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -43,7 +14,7 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: duplicati
|
- name: unraid
|
||||||
port: 8200
|
port: 8200
|
||||||
tls:
|
tls:
|
||||||
secretName: duplicati-tls
|
secretName: duplicati-tls
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ subsets:
|
||||||
- port: 443
|
- port: 443
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -21,7 +20,6 @@ spec:
|
||||||
targetPort: 443
|
targetPort: 443
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Endpoints
|
kind: Endpoints
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -33,7 +31,6 @@ subsets:
|
||||||
- port: 443
|
- port: 443
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -43,3 +40,191 @@ spec:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 443
|
port: 443
|
||||||
targetPort: 443
|
targetPort: 443
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: unraid
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
protocol: TCP
|
||||||
|
port: 443
|
||||||
|
targetPort: 443
|
||||||
|
- name: tdarr
|
||||||
|
port: 8267
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8267
|
||||||
|
- name: duplicati
|
||||||
|
port: 8200
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8200
|
||||||
|
- name: forgejo
|
||||||
|
port: 3000
|
||||||
|
protocol: TCP
|
||||||
|
- name: kuma
|
||||||
|
port: 3001
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 3000
|
||||||
|
- name: freshrss
|
||||||
|
port: 8085
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8085
|
||||||
|
- name: gitlab-ssh
|
||||||
|
port: 9022
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 9022
|
||||||
|
- name: gitlab
|
||||||
|
port: 9443
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 9443
|
||||||
|
- name: minio
|
||||||
|
port: 9769
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 9769
|
||||||
|
- name: nextcloud
|
||||||
|
port: 11000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 11000
|
||||||
|
- name: nexus
|
||||||
|
port: 8081
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8081
|
||||||
|
- name: openweb-ui
|
||||||
|
port: 8089
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8089
|
||||||
|
- name: plex
|
||||||
|
port: 32400
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 32400
|
||||||
|
- name: registry
|
||||||
|
port: 5000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5000
|
||||||
|
- name: gitlab-registry
|
||||||
|
port: 5002
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 5002
|
||||||
|
- name: root-vault
|
||||||
|
port: 8201
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8201
|
||||||
|
- name: s3
|
||||||
|
port: 9768
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 9768
|
||||||
|
- name: smokeping
|
||||||
|
port: 81
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 81
|
||||||
|
- name: gotify
|
||||||
|
port: 8070
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: unraid
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.21.200
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
port: 443
|
||||||
|
protocol: TCP
|
||||||
|
- name: tdarr
|
||||||
|
port: 8267
|
||||||
|
protocol: TCP
|
||||||
|
- name: duplicati
|
||||||
|
port: 8200
|
||||||
|
protocol: TCP
|
||||||
|
- name: forgejo
|
||||||
|
port: 3000
|
||||||
|
protocol: TCP
|
||||||
|
- name: kuma
|
||||||
|
port: 3001
|
||||||
|
protocol: TCP
|
||||||
|
- name: freshrss
|
||||||
|
port: 8085
|
||||||
|
protocol: TCP
|
||||||
|
- name: gitlab-ssh
|
||||||
|
port: 9022
|
||||||
|
protocol: TCP
|
||||||
|
- name: gitlab
|
||||||
|
port: 9443
|
||||||
|
protocol: TCP
|
||||||
|
- name: minio
|
||||||
|
port: 9769
|
||||||
|
protocol: TCP
|
||||||
|
- name: nextcloud
|
||||||
|
port: 11000
|
||||||
|
protocol: TCP
|
||||||
|
- name: nexus
|
||||||
|
port: 8081
|
||||||
|
protocol: TCP
|
||||||
|
- name: openweb-ui
|
||||||
|
port: 8089
|
||||||
|
protocol: TCP
|
||||||
|
- name: plex
|
||||||
|
port: 32400
|
||||||
|
protocol: TCP
|
||||||
|
- name: registry
|
||||||
|
port: 5000
|
||||||
|
protocol: TCP
|
||||||
|
- name: gitlab-registry
|
||||||
|
port: 5002
|
||||||
|
protocol: TCP
|
||||||
|
- name: root-vault
|
||||||
|
port: 8201
|
||||||
|
protocol: TCP
|
||||||
|
- name: s3
|
||||||
|
port: 9768
|
||||||
|
protocol: TCP
|
||||||
|
- name: smokeping
|
||||||
|
port: 81
|
||||||
|
protocol: TCP
|
||||||
|
- name: gotify
|
||||||
|
port: 8070
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: ubuntu
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.104
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
port: 443
|
||||||
|
protocol: TCP
|
||||||
|
- name: litellm
|
||||||
|
port: 4000
|
||||||
|
protocol: TCP
|
||||||
|
- name: ollama
|
||||||
|
port: 11435
|
||||||
|
protocol: TCP
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: ubuntu
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
port: 443
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 443
|
||||||
|
- name: litellm
|
||||||
|
port: 4000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 4000
|
||||||
|
- name: ollama
|
||||||
|
port: 11435
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 11435
|
||||||
|
|
|
||||||
43
dmz/internalproxy/templates/forgejo.yaml
Normal file
43
dmz/internalproxy/templates/forgejo.yaml
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: forgejo-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`forgejo.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: unraid
|
||||||
|
port: 3000
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: forgejo-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: forgejo-tls
|
||||||
|
spec:
|
||||||
|
secretName: forgejo-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "forgejo.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "forgejo.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: forgejo-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: forgejo.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
30
dmz/internalproxy/templates/freshrss.yaml
Normal file
30
dmz/internalproxy/templates/freshrss.yaml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: freshrss-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`freshrss.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: unraid
|
||||||
|
port: 8085
|
||||||
|
tls:
|
||||||
|
secretName: freshrss-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: freshrss-tls
|
||||||
|
spec:
|
||||||
|
secretName: freshrss-tls
|
||||||
|
issuerRef:
|
||||||
|
name: vault-issuer
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "freshrss.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "freshrss.durp.info"
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: gitea
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 3000
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 3000
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: gitea
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 3000
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
|
||||||
kind: IngressRoute
|
|
||||||
metadata:
|
|
||||||
name: gitea-ingress
|
|
||||||
spec:
|
|
||||||
entryPoints:
|
|
||||||
- websecure
|
|
||||||
routes:
|
|
||||||
- match: Host(`gitea.durp.info`) && PathPrefix(`/`)
|
|
||||||
kind: Rule
|
|
||||||
services:
|
|
||||||
- name: gitea
|
|
||||||
port: 3000
|
|
||||||
scheme: http
|
|
||||||
tls:
|
|
||||||
secretName: gitea-tls
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: Certificate
|
|
||||||
metadata:
|
|
||||||
name: gitea-tls
|
|
||||||
spec:
|
|
||||||
secretName: gitea-tls
|
|
||||||
issuerRef:
|
|
||||||
name: letsencrypt-production
|
|
||||||
kind: ClusterIssuer
|
|
||||||
commonName: "gitea.durp.info"
|
|
||||||
dnsNames:
|
|
||||||
- "gitea.durp.info"
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
kind: Service
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: gitea-external-dns
|
|
||||||
annotations:
|
|
||||||
external-dns.alpha.kubernetes.io/hostname: gitea.durp.info
|
|
||||||
spec:
|
|
||||||
type: ExternalName
|
|
||||||
externalName: durp.info
|
|
||||||
|
|
@ -1,28 +1,42 @@
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Service
|
#kind: Service
|
||||||
|
#metadata:
|
||||||
|
# name: gitlab-ssh
|
||||||
|
#spec:
|
||||||
|
# ports:
|
||||||
|
# - name: app
|
||||||
|
# port: 9022
|
||||||
|
# protocol: TCP
|
||||||
|
# targetPort: 9022
|
||||||
|
# clusterIP: None
|
||||||
|
# type: ClusterIP
|
||||||
|
#
|
||||||
|
#---
|
||||||
|
#apiVersion: v1
|
||||||
|
#kind: Endpoints
|
||||||
|
#metadata:
|
||||||
|
# name: gitlab-ssh
|
||||||
|
#subsets:
|
||||||
|
# - addresses:
|
||||||
|
# - ip: 192.168.21.200
|
||||||
|
# ports:
|
||||||
|
# - name: app
|
||||||
|
# port: 9022
|
||||||
|
# protocol: TCP
|
||||||
|
#
|
||||||
|
#---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRouteTCP
|
||||||
metadata:
|
metadata:
|
||||||
name: gitlab
|
name: gitlab-ssh
|
||||||
spec:
|
spec:
|
||||||
ports:
|
entryPoints:
|
||||||
- name: app
|
- gitlab-ssh
|
||||||
port: 9080
|
routes:
|
||||||
protocol: TCP
|
- match: HostSNI(`*`)
|
||||||
targetPort: 9080
|
services:
|
||||||
clusterIP: None
|
- name: unraid
|
||||||
type: ClusterIP
|
port: 9022
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: gitlab
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 9080
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
|
@ -36,9 +50,9 @@ spec:
|
||||||
- match: Host(`gitlab.durp.info`) && PathPrefix(`/`)
|
- match: Host(`gitlab.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: gitlab
|
- name: unraid
|
||||||
port: 9080
|
port: 9443
|
||||||
scheme: http
|
scheme: https
|
||||||
tls:
|
tls:
|
||||||
secretName: gitlab-tls
|
secretName: gitlab-tls
|
||||||
|
|
||||||
|
|
@ -66,3 +80,46 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
type: ExternalName
|
type: ExternalName
|
||||||
externalName: durp.info
|
externalName: durp.info
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: gitlab-registry
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`images.durp.info`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: unraid
|
||||||
|
port: 5002
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: gitlab-images-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: gitlab-images-tls
|
||||||
|
spec:
|
||||||
|
secretName: gitlab-images-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "images.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "images.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: gitlab-images-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: images.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
|
|
|
||||||
41
dmz/internalproxy/templates/gotify.yaml
Normal file
41
dmz/internalproxy/templates/gotify.yaml
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: gotify-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`gotify.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: unraid
|
||||||
|
port: 8070
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: gotify-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: gotify-tls
|
||||||
|
spec:
|
||||||
|
secretName: gotify-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "gotify.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "gotify.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: gotify-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: gotify.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
|
|
@ -1,74 +1,75 @@
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Service
|
#kind: Service
|
||||||
metadata:
|
#metadata:
|
||||||
name: invidious
|
# name: invidious
|
||||||
spec:
|
#spec:
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 3000
|
# port: 3000
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
targetPort: 3000
|
# targetPort: 3000
|
||||||
clusterIP: None
|
# clusterIP: None
|
||||||
type: ClusterIP
|
# type: ClusterIP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Endpoints
|
#kind: Endpoints
|
||||||
metadata:
|
#metadata:
|
||||||
name: invidious
|
# name: invidious
|
||||||
subsets:
|
#subsets:
|
||||||
- addresses:
|
#- addresses:
|
||||||
- ip: 192.168.20.104
|
# - ip: 192.168.20.104
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 3000
|
# port: 3000
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: traefik.io/v1alpha1
|
#apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
#kind: IngressRoute
|
||||||
metadata:
|
#metadata:
|
||||||
name: invidious-ingress
|
# name: invidious-ingress
|
||||||
spec:
|
#spec:
|
||||||
entryPoints:
|
# entryPoints:
|
||||||
- websecure
|
# - websecure
|
||||||
routes:
|
# routes:
|
||||||
- match: Host(`invidious.durp.info`) && PathPrefix(`/`)
|
# - match: Host(`invidious.durp.info`) && PathPrefix(`/`)
|
||||||
middlewares:
|
# middlewares:
|
||||||
- name: authentik-proxy-provider
|
# - name: authentik-proxy-provider
|
||||||
namespace: traefik
|
# namespace: traefik
|
||||||
kind: Rule
|
# kind: Rule
|
||||||
services:
|
# services:
|
||||||
- name: invidious
|
# - name: invidious
|
||||||
port: 3000
|
# port: 3000
|
||||||
tls:
|
# tls:
|
||||||
secretName: invidious-tls
|
# secretName: invidious-tls
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: cert-manager.io/v1
|
#apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
#kind: Certificate
|
||||||
metadata:
|
#metadata:
|
||||||
name: invidious-tls
|
# name: invidious-tls
|
||||||
spec:
|
#spec:
|
||||||
secretName: invidious-tls
|
# secretName: invidious-tls
|
||||||
issuerRef:
|
# issuerRef:
|
||||||
name: letsencrypt-production
|
# name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
# kind: ClusterIssuer
|
||||||
commonName: "invidious.durp.info"
|
# commonName: "invidious.durp.info"
|
||||||
dnsNames:
|
# dnsNames:
|
||||||
- "invidious.durp.info"
|
# - "invidious.durp.info"
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
kind: Service
|
#kind: Service
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
metadata:
|
#metadata:
|
||||||
name: invidious-external-dns
|
# name: invidious-external-dns
|
||||||
annotations:
|
# annotations:
|
||||||
external-dns.alpha.kubernetes.io/hostname: invidious.durp.info
|
# external-dns.alpha.kubernetes.io/hostname: invidious.durp.info
|
||||||
spec:
|
#spec:
|
||||||
type: ExternalName
|
# type: ExternalName
|
||||||
externalName: durp.info
|
# externalName: durp.info
|
||||||
|
#
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: kasm
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 443
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 443
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: kasm
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.20.104
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 443
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -38,7 +9,7 @@ spec:
|
||||||
- match: Host(`kasm.durp.info`) && PathPrefix(`/`)
|
- match: Host(`kasm.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: kasm
|
- name: ubuntu
|
||||||
port: 443
|
port: 443
|
||||||
scheme: https
|
scheme: https
|
||||||
tls:
|
tls:
|
||||||
|
|
|
||||||
|
|
@ -8,32 +8,28 @@ spec:
|
||||||
routes:
|
routes:
|
||||||
- match: Host(`kuma.durp.info`) && PathPrefix(`/`)
|
- match: Host(`kuma.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
middlewares:
|
|
||||||
- name: authentik-proxy-provider
|
|
||||||
namespace: traefik
|
|
||||||
services:
|
services:
|
||||||
- name: master-cluster
|
- name: unraid
|
||||||
port: 443
|
port: 3001
|
||||||
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
secretName: kuma-tls
|
secretName: kuma-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
name: kuma-tls
|
name: kuma-tls
|
||||||
spec:
|
spec:
|
||||||
|
secretName: kuma-tls
|
||||||
issuerRef:
|
issuerRef:
|
||||||
name: letsencrypt-production
|
name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
secretName: kuma-tls
|
|
||||||
commonName: "kuma.durp.info"
|
commonName: "kuma.durp.info"
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- "kuma.durp.info"
|
- "kuma.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: litellm
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 4000
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 4000
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: litellm
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.20.104
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 4000
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -38,7 +9,7 @@ spec:
|
||||||
- match: Host(`litellm.durp.info`) && PathPrefix(`/`)
|
- match: Host(`litellm.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: litellm
|
- name: ubuntu
|
||||||
port: 4000
|
port: 4000
|
||||||
tls:
|
tls:
|
||||||
secretName: litellm-tls
|
secretName: litellm-tls
|
||||||
|
|
|
||||||
34
dmz/internalproxy/templates/longhorn.yaml
Normal file
34
dmz/internalproxy/templates/longhorn.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: longhorn-infra-ingress
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: vault-issuer
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`longhorn.infra.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name: authentik-proxy-provider
|
||||||
|
namespace: traefik
|
||||||
|
services:
|
||||||
|
- name: infra-cluster
|
||||||
|
port: 443
|
||||||
|
tls:
|
||||||
|
secretName: longhorn-infra-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: longhorn-infra-tls
|
||||||
|
spec:
|
||||||
|
secretName: longhorn-infra-tls
|
||||||
|
issuerRef:
|
||||||
|
name: vault-issuer
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "longhorn.infra.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "longhorn.infra.durp.info"
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: minio
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 9769
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 9769
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: minio
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 9769
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -41,7 +12,7 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: minio
|
- name: unraid
|
||||||
port: 9769
|
port: 9769
|
||||||
scheme: http
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
|
|
|
||||||
|
|
@ -1,68 +1,68 @@
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Service
|
#kind: Service
|
||||||
metadata:
|
#metadata:
|
||||||
name: n8n
|
# name: n8n
|
||||||
spec:
|
#spec:
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 5678
|
# port: 5678
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
targetPort: 5678
|
# targetPort: 5678
|
||||||
clusterIP: None
|
# clusterIP: None
|
||||||
type: ClusterIP
|
# type: ClusterIP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Endpoints
|
#kind: Endpoints
|
||||||
metadata:
|
#metadata:
|
||||||
name: n8n
|
# name: n8n
|
||||||
subsets:
|
#subsets:
|
||||||
- addresses:
|
# - addresses:
|
||||||
- ip: 192.168.21.200
|
# - ip: 192.168.21.200
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 5678
|
# port: 5678
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
apiVersion: traefik.io/v1alpha1
|
#apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
#kind: IngressRoute
|
||||||
metadata:
|
#metadata:
|
||||||
name: n8n-ingress
|
# name: n8n-ingress
|
||||||
spec:
|
#spec:
|
||||||
entryPoints:
|
# entryPoints:
|
||||||
- websecure
|
# - websecure
|
||||||
routes:
|
# routes:
|
||||||
- match: Host(`n8n.durp.info`) && PathPrefix(`/`)
|
# - match: Host(`n8n.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
# kind: Rule
|
||||||
services:
|
# services:
|
||||||
- name: n8n
|
# - name: n8n
|
||||||
port: 5678
|
# port: 5678
|
||||||
scheme: http
|
# scheme: http
|
||||||
tls:
|
# tls:
|
||||||
secretName: n8n-tls
|
# secretName: n8n-tls
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
apiVersion: cert-manager.io/v1
|
#apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
#kind: Certificate
|
||||||
metadata:
|
#metadata:
|
||||||
name: n8n-tls
|
# name: n8n-tls
|
||||||
spec:
|
#spec:
|
||||||
secretName: n8n-tls
|
# secretName: n8n-tls
|
||||||
issuerRef:
|
# issuerRef:
|
||||||
name: letsencrypt-production
|
# name: letsencrypt-production
|
||||||
kind: ClusterIssuer
|
# kind: ClusterIssuer
|
||||||
commonName: "n8n.durp.info"
|
# commonName: "n8n.durp.info"
|
||||||
dnsNames:
|
# dnsNames:
|
||||||
- "n8n.durp.info"
|
# - "n8n.durp.info"
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
kind: Service
|
#kind: Service
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
metadata:
|
#metadata:
|
||||||
name: n8n-dns
|
# name: n8n-dns
|
||||||
annotations:
|
# annotations:
|
||||||
dns.alpha.kubernetes.io/hostname: n8n.durp.info
|
# dns.alpha.kubernetes.io/hostname: n8n.durp.info
|
||||||
spec:
|
#spec:
|
||||||
type: ExternalName
|
# type: ExternalName
|
||||||
externalName: durp.info
|
# externalName: durp.info
|
||||||
|
|
|
||||||
74
dmz/internalproxy/templates/nextcloud.yaml
Normal file
74
dmz/internalproxy/templates/nextcloud.yaml
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: nextcloud-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`nextcloud.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name: nextcloud-chain
|
||||||
|
services:
|
||||||
|
- name: unraid
|
||||||
|
port: 11000
|
||||||
|
scheme: http
|
||||||
|
tls:
|
||||||
|
secretName: nextcloud-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: nextcloud-tls
|
||||||
|
spec:
|
||||||
|
secretName: nextcloud-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "nextcloud.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "nextcloud.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: nextcloud-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: nextcloud.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: nextcloud-secure-headers
|
||||||
|
spec:
|
||||||
|
headers:
|
||||||
|
hostsProxyHeaders:
|
||||||
|
- "X-Forwarded-Host"
|
||||||
|
referrerPolicy: "same-origin"
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: https-redirect
|
||||||
|
spec:
|
||||||
|
redirectScheme:
|
||||||
|
scheme: https
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: nextcloud-chain
|
||||||
|
spec:
|
||||||
|
chain:
|
||||||
|
middlewares:
|
||||||
|
- name: https-redirect
|
||||||
|
- name: nextcloud-secure-headers
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: nexus
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8081
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8081
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: nexus
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.20.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8081
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -38,7 +9,7 @@ spec:
|
||||||
- match: Host(`nexus.durp.info`) && PathPrefix(`/`)
|
- match: Host(`nexus.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: nexus
|
- name: unraid
|
||||||
port: 8081
|
port: 8081
|
||||||
tls:
|
tls:
|
||||||
secretName: nexus-tls
|
secretName: nexus-tls
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ spec:
|
||||||
property: users
|
property: users
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: Middleware
|
kind: Middleware
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -26,36 +25,6 @@ spec:
|
||||||
secret: ollama-secret
|
secret: ollama-secret
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: ollama
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 11435
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 11435
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: ollama
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.20.104
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 11435
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -69,13 +38,12 @@ spec:
|
||||||
- name: ollama-basic-auth
|
- name: ollama-basic-auth
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: ollama
|
- name: ubuntu
|
||||||
port: 11435
|
port: 11435
|
||||||
tls:
|
tls:
|
||||||
secretName: ollama-tls
|
secretName: ollama-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -90,7 +58,6 @@ spec:
|
||||||
- "ollama.durp.info"
|
- "ollama.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: open-webui
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8089
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8089
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: open-webui
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8089
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -38,14 +9,13 @@ spec:
|
||||||
- match: Host(`open-webui.durp.info`) && PathPrefix(`/`)
|
- match: Host(`open-webui.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: open-webui
|
- name: unraid
|
||||||
port: 8089
|
port: 8089
|
||||||
scheme: http
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
secretName: open-webui-tls
|
secretName: open-webui-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -60,7 +30,6 @@ spec:
|
||||||
- "open-webui.durp.info"
|
- "open-webui.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: plex
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 32400
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 32400
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: plex
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 32400
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -38,14 +9,13 @@ spec:
|
||||||
- match: Host(`plex.durp.info`) && PathPrefix(`/`)
|
- match: Host(`plex.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: plex
|
- name: unraid
|
||||||
port: 32400
|
port: 32400
|
||||||
scheme: https
|
scheme: https
|
||||||
tls:
|
tls:
|
||||||
secretName: plex-tls
|
secretName: plex-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -60,7 +30,6 @@ spec:
|
||||||
- "plex.durp.info"
|
- "plex.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@ spec:
|
||||||
- websecure
|
- websecure
|
||||||
routes:
|
routes:
|
||||||
- match: Host(`portainer.internal.durp.info`) && PathPrefix(`/`)
|
- match: Host(`portainer.internal.durp.info`) && PathPrefix(`/`)
|
||||||
#middlewares:
|
middlewares:
|
||||||
#- name: whitelist
|
- name: whitelist
|
||||||
# namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: infra-cluster
|
- name: infra-cluster
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: registry
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 5000
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 5000
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: registry
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 5000
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -39,7 +12,7 @@ spec:
|
||||||
- name: whitelist
|
- name: whitelist
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
services:
|
services:
|
||||||
- name: registry
|
- name: unraid
|
||||||
port: 5000
|
port: 5000
|
||||||
tls:
|
tls:
|
||||||
secretName: registry-tls
|
secretName: registry-tls
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: root-vault
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8201
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8201
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: root-vault
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8201
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -41,14 +12,13 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: root-vault
|
- name: unraid
|
||||||
port: 8201
|
port: 8201
|
||||||
scheme: https
|
scheme: https
|
||||||
tls:
|
tls:
|
||||||
secretName: root-vault-tls
|
secretName: root-vault-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: s3
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 9768
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 9768
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: s3
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 9768
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -41,7 +12,7 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: s3
|
- name: unraid
|
||||||
port: 9768
|
port: 9768
|
||||||
scheme: http
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
|
|
@ -75,7 +46,7 @@ spec:
|
||||||
- match: Host(`s3.durp.info`) && PathPrefix(`/`)
|
- match: Host(`s3.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: s3
|
- name: unraid
|
||||||
port: 9768
|
port: 9768
|
||||||
scheme: http
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
|
|
|
||||||
|
|
@ -1,64 +1,65 @@
|
||||||
|
#
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Service
|
#kind: Service
|
||||||
metadata:
|
#metadata:
|
||||||
name: semaphore
|
# name: semaphore
|
||||||
spec:
|
#spec:
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 3001
|
# port: 3001
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
targetPort: 3001
|
# targetPort: 3001
|
||||||
clusterIP: None
|
# clusterIP: None
|
||||||
type: ClusterIP
|
# type: ClusterIP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: v1
|
#apiVersion: v1
|
||||||
kind: Endpoints
|
#kind: Endpoints
|
||||||
metadata:
|
#metadata:
|
||||||
name: semaphore
|
# name: semaphore
|
||||||
subsets:
|
#subsets:
|
||||||
- addresses:
|
# - addresses:
|
||||||
- ip: 192.168.21.200
|
# - ip: 192.168.21.200
|
||||||
ports:
|
# ports:
|
||||||
- name: app
|
# - name: app
|
||||||
port: 3001
|
# port: 3001
|
||||||
protocol: TCP
|
# protocol: TCP
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: traefik.io/v1alpha1
|
#apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
#kind: IngressRoute
|
||||||
metadata:
|
#metadata:
|
||||||
name: semaphore-ingress
|
# name: semaphore-ingress
|
||||||
spec:
|
#spec:
|
||||||
entryPoints:
|
# entryPoints:
|
||||||
- websecure
|
# - websecure
|
||||||
routes:
|
# routes:
|
||||||
- match: Host(`semaphore.internal.durp.info`) && PathPrefix(`/`)
|
# - match: Host(`semaphore.internal.durp.info`) && PathPrefix(`/`)
|
||||||
middlewares:
|
# middlewares:
|
||||||
- name: whitelist
|
# - name: whitelist
|
||||||
namespace: traefik
|
# namespace: traefik
|
||||||
kind: Rule
|
# kind: Rule
|
||||||
services:
|
# services:
|
||||||
- name: semaphore
|
# - name: semaphore
|
||||||
port: 3001
|
# port: 3001
|
||||||
scheme: http
|
# scheme: http
|
||||||
tls:
|
# tls:
|
||||||
secretName: semaphore-tls
|
# secretName: semaphore-tls
|
||||||
|
#
|
||||||
---
|
#---
|
||||||
|
#
|
||||||
apiVersion: cert-manager.io/v1
|
#apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
#kind: Certificate
|
||||||
metadata:
|
#metadata:
|
||||||
name: semaphore-tls
|
# name: semaphore-tls
|
||||||
spec:
|
#spec:
|
||||||
secretName: semaphore-tls
|
# secretName: semaphore-tls
|
||||||
issuerRef:
|
# issuerRef:
|
||||||
name: vault-issuer
|
# name: vault-issuer
|
||||||
kind: ClusterIssuer
|
# kind: ClusterIssuer
|
||||||
commonName: "semaphore.internal.durp.info"
|
# commonName: "semaphore.internal.durp.info"
|
||||||
dnsNames:
|
# dnsNames:
|
||||||
- "semaphore.internal.durp.info"
|
# - "semaphore.internal.durp.info"
|
||||||
|
#
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: smokeping
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 81
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 81
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: smokeping
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 81
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -43,13 +14,12 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: smokeping
|
- name: unraid
|
||||||
port: 81
|
port: 81
|
||||||
tls:
|
tls:
|
||||||
secretName: smokeping-tls
|
secretName: smokeping-tls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -64,7 +34,6 @@ spec:
|
||||||
- "smokeping.durp.info"
|
- "smokeping.durp.info"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
kind: Service
|
kind: Service
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: tdarr
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8267
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8267
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: tdarr
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 8267
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
@ -45,7 +16,7 @@ spec:
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
kind: Rule
|
kind: Rule
|
||||||
services:
|
services:
|
||||||
- name: tdarr
|
- name: unraid
|
||||||
port: 8267
|
port: 8267
|
||||||
scheme: http
|
scheme: http
|
||||||
tls:
|
tls:
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,3 @@
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: unraid
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 443
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 443
|
|
||||||
clusterIP: None
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Endpoints
|
|
||||||
metadata:
|
|
||||||
name: unraid
|
|
||||||
subsets:
|
|
||||||
- addresses:
|
|
||||||
- ip: 192.168.21.200
|
|
||||||
ports:
|
|
||||||
- name: app
|
|
||||||
port: 443
|
|
||||||
protocol: TCP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: IngressRoute
|
kind: IngressRoute
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ appVersion: 0.0.1
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: base
|
- name: base
|
||||||
repository: https://istio-release.storage.googleapis.com/charts
|
repository: https://istio-release.storage.googleapis.com/charts
|
||||||
version: 1.26.2
|
version: 1.29.0
|
||||||
- name: istiod
|
- name: istiod
|
||||||
repository: https://istio-release.storage.googleapis.com/charts
|
repository: https://istio-release.storage.googleapis.com/charts
|
||||||
version: 1.26.2
|
version: 1.26.2
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ spec:
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: redlib
|
app: redlib
|
||||||
replicas: 3
|
replicas: 1
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
|
|
||||||
10
dmz/searxng/Chart.yaml
Normal file
10
dmz/searxng/Chart.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
apiVersion: v2
|
||||||
|
appVersion: latest
|
||||||
|
description: SearXNG is a free internet metasearch engine which aggregates results from various search services and databases.
|
||||||
|
name: searxng
|
||||||
|
version: 1.0.1
|
||||||
|
#dependencies:
|
||||||
|
# - name: common
|
||||||
|
# repository: https://library-charts.k8s-at-home.com
|
||||||
|
# version: 4.4.2
|
||||||
|
#
|
||||||
11
dmz/searxng/templates/confligmap.yaml
Normal file
11
dmz/searxng/templates/confligmap.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: searxng-config
|
||||||
|
data:
|
||||||
|
settings.yml: |-
|
||||||
|
use_default_settings: true
|
||||||
|
search:
|
||||||
|
formats:
|
||||||
|
- html
|
||||||
|
- json
|
||||||
40
dmz/searxng/templates/deployment.yaml
Normal file
40
dmz/searxng/templates/deployment.yaml
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
namespace: searxng
|
||||||
|
name: searxng
|
||||||
|
labels:
|
||||||
|
app: searxng
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: searxng
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: searxng
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: searxng
|
||||||
|
image: registry.durp.info/searxng/searxng:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
env:
|
||||||
|
- name: SEARXNG_BASE_URL
|
||||||
|
value: https://searxng.durp.info
|
||||||
|
- name: SEARXNG_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: searxng-secret
|
||||||
|
key: SEARXNG_SECRET
|
||||||
|
volumeMounts:
|
||||||
|
- name: searxng-config-volume
|
||||||
|
mountPath: /etc/searxng/settings.yml
|
||||||
|
subPath: settings.yml
|
||||||
|
volumes:
|
||||||
|
- name: searxng-config-volume
|
||||||
|
configMap:
|
||||||
|
name: searxng-config
|
||||||
76
dmz/searxng/templates/ingress.yaml
Normal file
76
dmz/searxng/templates/ingress.yaml
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: searxng-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`searxng.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name: authentik-proxy-provider
|
||||||
|
namespace: traefik
|
||||||
|
services:
|
||||||
|
- name: searxng-service
|
||||||
|
port: 8080
|
||||||
|
tls:
|
||||||
|
secretName: searxng-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: searxng-tls
|
||||||
|
spec:
|
||||||
|
secretName: searxng-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "searxng.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "searxng.durp.info"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: searxng-external-dns
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: searxng.durp.info
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: durp.info
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: searxng-internal-ingress
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`searxng.internal.durp.info`) && PathPrefix(`/`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: searxng-service
|
||||||
|
port: 8080
|
||||||
|
tls:
|
||||||
|
secretName: searxng-internal-tls
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: searxng-internal-tls
|
||||||
|
spec:
|
||||||
|
secretName: searxng-internal-tls
|
||||||
|
issuerRef:
|
||||||
|
name: letsencrypt-production
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: "searxng.internal.durp.info"
|
||||||
|
dnsNames:
|
||||||
|
- "searxng.internal.durp.info"
|
||||||
23
dmz/searxng/templates/secret.yaml
Normal file
23
dmz/searxng/templates/secret.yaml
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: searxng-secret
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
name: vault
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
target:
|
||||||
|
name: searxng-secret
|
||||||
|
data:
|
||||||
|
- secretKey: SEARXNG_SECRET
|
||||||
|
remoteRef:
|
||||||
|
key: kv/searxng
|
||||||
|
property: searxng-secret
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: vault
|
||||||
|
|
||||||
12
dmz/searxng/templates/service.yaml
Normal file
12
dmz/searxng/templates/service.yaml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: searxng-service
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: searxng
|
||||||
83
dmz/searxng/values.yaml
Normal file
83
dmz/searxng/values.yaml
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
#
|
||||||
|
# IMPORTANT NOTE
|
||||||
|
#
|
||||||
|
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||||
|
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
||||||
|
#
|
||||||
|
|
||||||
|
image:
|
||||||
|
# -- image repository
|
||||||
|
repository: registry.durp.info/searxng/searxng
|
||||||
|
# -- image tag
|
||||||
|
tag: latest
|
||||||
|
# -- image pull policy
|
||||||
|
pullPolicy: Always
|
||||||
|
|
||||||
|
# Explanation about each environment variables here:
|
||||||
|
# https://docs.searxng.org/admin/installation-docker.html#command-line
|
||||||
|
env:
|
||||||
|
INSTANCE_NAME: "durp.info"
|
||||||
|
BASE_URL: "https://searx.durp.info"
|
||||||
|
AUTOCOMPLETE: "false"
|
||||||
|
# MORTY_URL: "http://morty:8080"
|
||||||
|
# MORTY_KEY: "mysecretkey"
|
||||||
|
# BIND_ADDRESS: "0.0.0.0:8080"
|
||||||
|
|
||||||
|
controller:
|
||||||
|
strategy: "RollingUpdate"
|
||||||
|
|
||||||
|
# -- Configures service settings for the chart.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
# -- Configure persistence settings for the chart under this key.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
persistence:
|
||||||
|
config:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
# -- Enable and configure ingress settings for the chart under this key.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
main:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
searxng:
|
||||||
|
config:
|
||||||
|
use_default_settings: true
|
||||||
|
#server:
|
||||||
|
# secret_key: pleasechangeme
|
||||||
|
# Uncomment when using the builtin rate limiter
|
||||||
|
# See https://docs.searxng.org/src/searx.plugins.limiter.html#limiter-plugin
|
||||||
|
# server.limiter: true
|
||||||
|
# redis.url: redis://@searxng-redis:6379/0
|
||||||
|
|
||||||
|
probes:
|
||||||
|
readiness:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
liveness:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
startup:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
# Enable when using searxng builtin rate limiter
|
||||||
|
# Values: https://github.com/pascaliske/helm-charts/tree/master/charts/redis
|
||||||
|
redis:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
resource "proxmox_vm_qemu" "k3smaster" {
|
|
||||||
count = local.k3smaster.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
vmid = "${local.vlan}${local.k3smaster.ip[count.index]}"
|
|
||||||
name = local.k3smaster.name[count.index]
|
|
||||||
target_node = local.k3smaster.node[count.index]
|
|
||||||
clone = local.template
|
|
||||||
tags = local.k3smaster.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = true
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3smaster.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3smaster.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3smaster.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3smaster.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_vm_qemu" "k3sserver" {
|
|
||||||
count = local.k3sserver.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
vmid = "${local.vlan}${local.k3sserver.ip[count.index]}"
|
|
||||||
name = local.k3sserver.name[count.index]
|
|
||||||
target_node = local.k3sserver.node[count.index]
|
|
||||||
clone = local.template
|
|
||||||
tags = local.k3sserver.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = true
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3sserver.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3sserver.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3sserver.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3sserver.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
terraform {
|
|
||||||
backend "http" {}
|
|
||||||
required_providers {
|
|
||||||
proxmox = {
|
|
||||||
source = "Telmate/proxmox"
|
|
||||||
version = "3.0.1-rc9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "proxmox" {
|
|
||||||
pm_parallel = 1
|
|
||||||
pm_tls_insecure = true
|
|
||||||
pm_api_url = var.pm_api_url
|
|
||||||
pm_user = var.pm_user
|
|
||||||
pm_password = var.pm_password
|
|
||||||
pm_debug = false
|
|
||||||
}
|
|
||||||
|
|
||||||
locals {
|
|
||||||
sshkeys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEphzWgwUZnvL6E5luKLt3WO0HK7Kh63arSMoNl5gmjzXyhG1DDW0OKfoIl0T+JZw/ZjQ7iii6tmSLFRk6nuYCldqe5GVcFxvTzX4/xGEioAyG0IiUGKy6s+9xzO8QXF0EtSNPH0nfHNKcCjgwWAzM+Lt6gW0Vqs+aU5ICuDiEchmvYPz+rBaVldJVTG7m3ogKJ2aIF7HU/pCPp5l0E9gMOw7s0ABijuc3KXLEWCYgL39jIST6pFH9ceRLmu8Xy5zXHAkkEEauY/e6ld0hlzLadiUD7zYJMdDcm0oRvenYcUlaUl9gS0569IpfsJsjCejuqOxCKzTHPJDOT0f9TbIqPXkGq3s9oEJGpQW+Z8g41BqRpjBCdBk+yv39bzKxlwlumDwqgx1WP8xxKavAWYNqNRG7sBhoWwtxYEOhKXoLNjBaeDRnO5OY5AQJvONWpuByyz0R/gTh4bOFVD+Y8WWlKbT4zfhnN70XvapRsbZiaGhJBPwByAMGg6XxSbC6xtbyligVGCEjCXbTLkeKq1w0DuItY+FBGO3J2k90OiciTVSeyiVz9J/Y03UB0gHdsMCoVNrj+9QWfrTLDhM7D5YrXUt5nj2LQTcbtf49zoQXWxUhozlg42E/FJU/Yla7y55qWizAEVyP2/Ks/PHrF679k59HNd2IJ/aicA9QnmWtLQ== ansible"
|
|
||||||
template = "Debian12-Template"
|
|
||||||
storage = "cache-domains"
|
|
||||||
emulatessd = true
|
|
||||||
format = "raw"
|
|
||||||
dnsserver = "192.168.98.1"
|
|
||||||
vlan = 98
|
|
||||||
k3smaster = {
|
|
||||||
tags = "k3s_dmz"
|
|
||||||
count = 3
|
|
||||||
name = ["master01-dmz", "master02-dmz", "master03-dmz"]
|
|
||||||
cores = 2
|
|
||||||
memory = "4096"
|
|
||||||
drive = 20
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["11", "12", "13"]
|
|
||||||
}
|
|
||||||
k3sserver = {
|
|
||||||
tags = "k3s_dmz"
|
|
||||||
count = 3
|
|
||||||
name = ["node01-dmz", "node02-dmz", "node03-dmz"]
|
|
||||||
cores = 4
|
|
||||||
memory = "8192"
|
|
||||||
drive = 240
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["21", "22", "23"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
variable "pm_api_url" {
|
|
||||||
description = "API URL to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_password" {
|
|
||||||
description = "Passowrd to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_user" {
|
|
||||||
description = "UIsername to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
@ -23,6 +23,13 @@ traefik:
|
||||||
dashboard:
|
dashboard:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
|
ports:
|
||||||
|
gitlab-ssh:
|
||||||
|
port: 9022
|
||||||
|
expose:
|
||||||
|
default: true
|
||||||
|
exposedPort: 9022
|
||||||
|
|
||||||
additionalArguments:
|
additionalArguments:
|
||||||
# - "--providers.file.filename=/config/config.yml"
|
# - "--providers.file.filename=/config/config.yml"
|
||||||
- "--serversTransport.insecureSkipVerify=true"
|
- "--serversTransport.insecureSkipVerify=true"
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: argo-cd
|
- name: argo-cd
|
||||||
repository: https://argoproj.github.io/argo-helm
|
repository: https://argoproj.github.io/argo-helm
|
||||||
version: 8.1.3
|
version: 8.6.4
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/argocd
|
path: infra/argocd
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/authentik
|
path: infra/authentik
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -31,7 +31,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/authentik
|
path: dmz/authentik
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/bitwarden
|
path: infra/bitwarden
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/cert-manager
|
path: infra/cert-manager
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -29,7 +29,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/cert-manager
|
path: dmz/cert-manager
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/external-dns
|
path: dmz/external-dns
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/external-secrets
|
path: infra/external-secrets
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -29,7 +29,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/external-secrets
|
path: dmz/external-secrets
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/gitlab-runner
|
path: dmz/gitlab-runner
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/internalproxy
|
path: dmz/internalproxy
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/istio-system
|
path: infra/istio-system
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -36,7 +36,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/istio-system
|
path: dmz/istio-system
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/kube-prometheus-stack
|
path: infra/kube-prometheus-stack
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
#spec:
|
#spec:
|
||||||
# project: default
|
# project: default
|
||||||
# source:
|
# source:
|
||||||
# repoURL: https://gitlab.com/developerdurp/homelab.git
|
# repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
# targetRevision: main
|
# targetRevision: main
|
||||||
# path: infra/litellm
|
# path: infra/litellm
|
||||||
# destination:
|
# destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/littlelink
|
path: dmz/littlelink
|
||||||
directory:
|
directory:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/longhorn
|
path: infra/longhorn
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -33,7 +33,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/longhorn
|
path: dmz/longhorn
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/metallb-system
|
path: infra/metallb-system
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -29,7 +29,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/metallb-system
|
path: dmz/metallb-system
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -52,7 +52,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dev/metallb-system
|
path: dev/metallb-system
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/nebula-sync
|
path: infra/nebula-sync
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/nfs
|
path: infra/nfs
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/openclarity
|
path: infra/openclarity
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/openspeedtest
|
path: dmz/openspeedtest
|
||||||
directory:
|
directory:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/portainer
|
path: infra/portainer
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/redlib
|
path: dmz/redlib
|
||||||
directory:
|
directory:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/renovate
|
path: infra/renovate
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,22 @@
|
||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: uptimekuma
|
name: searxng
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: master/uptimekuma
|
path: dmz/searxng
|
||||||
directory:
|
directory:
|
||||||
recurse: true
|
recurse: true
|
||||||
destination:
|
destination:
|
||||||
server: https://kubernetes.default.svc
|
name: dmz
|
||||||
namespace: uptimekuma
|
namespace: searxng
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
selfHeal: true
|
selfHeal: true
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/traefik
|
path: infra/traefik
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -32,7 +32,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/traefik
|
path: dmz/traefik
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -58,7 +58,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dev/traefik
|
path: dev/traefik
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/vault
|
path: infra/vault
|
||||||
destination:
|
destination:
|
||||||
|
|
@ -34,7 +34,7 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
repoURL: https://gitlab.durp.info/durfy/homelab/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: dmz/vault
|
path: dmz/vault
|
||||||
destination:
|
destination:
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ authentik:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
registry: registry.durp.info
|
registry: registry.durp.info
|
||||||
repository: bitnami/postgresql
|
repository: bitnamilegacy/postgresql
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
postgresqlUsername: "authentik"
|
postgresqlUsername: "authentik"
|
||||||
postgresqlDatabase: "authentik"
|
postgresqlDatabase: "authentik"
|
||||||
|
|
@ -52,7 +52,7 @@ authentik:
|
||||||
enabled: false
|
enabled: false
|
||||||
image:
|
image:
|
||||||
registry: registry.durp.info
|
registry: registry.durp.info
|
||||||
repository: bitnami/redis
|
repository: bitnamilegacy/redis
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
architecture: standalone
|
architecture: standalone
|
||||||
auth:
|
auth:
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: bitwarden
|
- name: bitwarden
|
||||||
image: registry.durp.info/vaultwarden/server:1.34.3
|
image: registry.durp.info/vaultwarden/server:1.35.4
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: bitwarden-pvc
|
- name: bitwarden-pvc
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ appVersion: 0.0.1
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: base
|
- name: base
|
||||||
repository: https://istio-release.storage.googleapis.com/charts
|
repository: https://istio-release.storage.googleapis.com/charts
|
||||||
version: 1.26.2
|
version: 1.29.0
|
||||||
- name: istiod
|
- name: istiod
|
||||||
repository: https://istio-release.storage.googleapis.com/charts
|
repository: https://istio-release.storage.googleapis.com/charts
|
||||||
version: 1.26.2
|
version: 1.26.2
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ spec:
|
||||||
- match: Host(`longhorn.infra.durp.info`) && PathPrefix(`/`)
|
- match: Host(`longhorn.infra.durp.info`) && PathPrefix(`/`)
|
||||||
kind: Rule
|
kind: Rule
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: authentik-proxy-provider
|
#- name: authentik-proxy-provider
|
||||||
namespace: traefik
|
# namespace: traefik
|
||||||
services:
|
services:
|
||||||
- name: longhorn-frontend
|
- name: longhorn-frontend
|
||||||
port: 80
|
port: 80
|
||||||
|
|
|
||||||
|
|
@ -542,7 +542,7 @@ openclarity:
|
||||||
# -- Trivy Server container repository
|
# -- Trivy Server container repository
|
||||||
repository: aquasec/trivy
|
repository: aquasec/trivy
|
||||||
# -- Trivy Server container tag
|
# -- Trivy Server container tag
|
||||||
tag: 0.64.1
|
tag: 0.69.3
|
||||||
# -- Trivy Server image digest. If set will override the tag.
|
# -- Trivy Server image digest. If set will override the tag.
|
||||||
digest: ""
|
digest: ""
|
||||||
# -- Trivy Server image pull policy
|
# -- Trivy Server image pull policy
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: portainer
|
- name: portainer
|
||||||
repository: https://portainer.github.io/k8s/
|
repository: https://portainer.github.io/k8s/
|
||||||
version: 2.33.5
|
version: 2.33.6
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ portainer:
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
image:
|
image:
|
||||||
repository: registry.durp.info/portainer/portainer-ce
|
repository: registry.durp.info/portainer/portainer-ce
|
||||||
tag: 2.33.5
|
tag: 2.39.1
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,4 @@ dependencies:
|
||||||
- name: renovate
|
- name: renovate
|
||||||
repository: https://docs.renovatebot.com/helm-charts
|
repository: https://docs.renovatebot.com/helm-charts
|
||||||
version: 39.264.0
|
version: 39.264.0
|
||||||
|
alias: "renovate-personal"
|
||||||
|
|
|
||||||
|
|
@ -39,3 +39,24 @@ spec:
|
||||||
remoteRef:
|
remoteRef:
|
||||||
key: kv/renovate
|
key: kv/renovate
|
||||||
property: RENOVATE_TOKEN
|
property: RENOVATE_TOKEN
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: renovate-personal-config-secret
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
name: vault
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
target:
|
||||||
|
name: renovate-personal-config-secret
|
||||||
|
data:
|
||||||
|
- secretKey: RENOVATE_TOKEN
|
||||||
|
remoteRef:
|
||||||
|
key: kv/renoatePersonal
|
||||||
|
property: RENOVATE_TOKEN
|
||||||
|
- secretKey: RENOVATE_GITHUB_COM_TOKEN
|
||||||
|
remoteRef:
|
||||||
|
key: kv/renoatePersonal
|
||||||
|
property: RENOVATE_GITHUB_COM_TOKEN
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
renovate:
|
renovate-personal:
|
||||||
global:
|
global:
|
||||||
# -- Additional labels to be set on all renovate resources
|
# -- Additional labels to be set on all renovate resources
|
||||||
commonLabels: {}
|
commonLabels: {}
|
||||||
|
|
@ -99,12 +99,12 @@ renovate:
|
||||||
config: |
|
config: |
|
||||||
{
|
{
|
||||||
"platform": "gitlab",
|
"platform": "gitlab",
|
||||||
"endpoint": "https://gitlab.com/api/v4",
|
"endpoint": "https://gitlab.durp.info/api/v4",
|
||||||
"autodiscover": "true",
|
"autodiscover": true,
|
||||||
"dryRun": false,
|
"dryRun": null,
|
||||||
"printConfig": false,
|
"printConfig": false,
|
||||||
"autodiscoverFilter": ["developerdurp/*", "durfy/*"],
|
"autodiscoverFilter": ["durfy/**"],
|
||||||
"assignees": ["developerdurp"],
|
"assignees": ["durp"]
|
||||||
}
|
}
|
||||||
# See https://docs.renovatebot.com/self-hosted-configuration
|
# See https://docs.renovatebot.com/self-hosted-configuration
|
||||||
# config: |
|
# config: |
|
||||||
|
|
@ -166,7 +166,7 @@ renovate:
|
||||||
# -- Environment variables that should be referenced from a k8s secret, cannot be used when existingSecret is set
|
# -- Environment variables that should be referenced from a k8s secret, cannot be used when existingSecret is set
|
||||||
secrets: {}
|
secrets: {}
|
||||||
# -- k8s secret to reference environment variables from. Overrides secrets if set
|
# -- k8s secret to reference environment variables from. Overrides secrets if set
|
||||||
existingSecret: "renovate-config-secret"
|
existingSecret: "renovate-personal-config-secret"
|
||||||
|
|
||||||
# -- Additional configmaps. A generated configMap name is: "renovate.fullname" + "extra" + name(below) e.g. renovate-netrc-config
|
# -- Additional configmaps. A generated configMap name is: "renovate.fullname" + "extra" + name(below) e.g. renovate-netrc-config
|
||||||
extraConfigmaps: []
|
extraConfigmaps: []
|
||||||
|
|
@ -247,6 +247,7 @@ renovate:
|
||||||
# -- Environment variables to set on the renovate container
|
# -- Environment variables to set on the renovate container
|
||||||
env:
|
env:
|
||||||
RENOVATE_AUTODISCOVER: true
|
RENOVATE_AUTODISCOVER: true
|
||||||
|
#LOG_LEVEL: debug
|
||||||
# env:
|
# env:
|
||||||
# VARIABLE_NAME: "value"
|
# VARIABLE_NAME: "value"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
||||||
resource "proxmox_vm_qemu" "k3smaster" {
|
|
||||||
lifecycle {
|
|
||||||
prevent_destroy = true
|
|
||||||
}
|
|
||||||
count = local.k3smaster.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
name = local.k3smaster.name[count.index]
|
|
||||||
target_node = local.k3smaster.node[count.index]
|
|
||||||
tags = local.k3smaster.tags
|
|
||||||
full_clone = false
|
|
||||||
qemu_os = "l26"
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3smaster.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3smaster.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.k3smaster.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3smaster.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.k3smaster.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3smaster.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_vm_qemu" "k3sserver" {
|
|
||||||
lifecycle {
|
|
||||||
prevent_destroy = true
|
|
||||||
}
|
|
||||||
count = local.k3sserver.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
name = local.k3sserver.name[count.index]
|
|
||||||
target_node = local.k3sserver.node[count.index]
|
|
||||||
tags = local.k3sserver.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = false
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.k3sserver.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.k3sserver.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.k3sserver.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.k3sserver.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.k3sserver.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3sserver.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
terraform {
|
|
||||||
backend "http" {}
|
|
||||||
required_providers {
|
|
||||||
proxmox = {
|
|
||||||
source = "Telmate/proxmox"
|
|
||||||
version = "3.0.1-rc9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "proxmox" {
|
|
||||||
pm_parallel = 1
|
|
||||||
pm_tls_insecure = true
|
|
||||||
pm_api_url = var.pm_api_url
|
|
||||||
pm_user = var.pm_user
|
|
||||||
pm_password = var.pm_password
|
|
||||||
pm_debug = false
|
|
||||||
}
|
|
||||||
|
|
||||||
locals {
|
|
||||||
sshkeys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEphzWgwUZnvL6E5luKLt3WO0HK7Kh63arSMoNl5gmjzXyhG1DDW0OKfoIl0T+JZw/ZjQ7iii6tmSLFRk6nuYCldqe5GVcFxvTzX4/xGEioAyG0IiUGKy6s+9xzO8QXF0EtSNPH0nfHNKcCjgwWAzM+Lt6gW0Vqs+aU5ICuDiEchmvYPz+rBaVldJVTG7m3ogKJ2aIF7HU/pCPp5l0E9gMOw7s0ABijuc3KXLEWCYgL39jIST6pFH9ceRLmu8Xy5zXHAkkEEauY/e6ld0hlzLadiUD7zYJMdDcm0oRvenYcUlaUl9gS0569IpfsJsjCejuqOxCKzTHPJDOT0f9TbIqPXkGq3s9oEJGpQW+Z8g41BqRpjBCdBk+yv39bzKxlwlumDwqgx1WP8xxKavAWYNqNRG7sBhoWwtxYEOhKXoLNjBaeDRnO5OY5AQJvONWpuByyz0R/gTh4bOFVD+Y8WWlKbT4zfhnN70XvapRsbZiaGhJBPwByAMGg6XxSbC6xtbyligVGCEjCXbTLkeKq1w0DuItY+FBGO3J2k90OiciTVSeyiVz9J/Y03UB0gHdsMCoVNrj+9QWfrTLDhM7D5YrXUt5nj2LQTcbtf49zoQXWxUhozlg42E/FJU/Yla7y55qWizAEVyP2/Ks/PHrF679k59HNd2IJ/aicA9QnmWtLQ== ansible"
|
|
||||||
template = "Debian12-Template"
|
|
||||||
format = "raw"
|
|
||||||
dnsserver = "192.168.12.1"
|
|
||||||
vlan = 12
|
|
||||||
k3smaster = {
|
|
||||||
tags = "k3s_infra"
|
|
||||||
count = 3
|
|
||||||
name = ["master01-infra", "master02-infra", "master03-infra"]
|
|
||||||
cores = 2
|
|
||||||
memory = "4096"
|
|
||||||
drive = 20
|
|
||||||
storage = "cache-domains"
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["11", "12", "13"]
|
|
||||||
}
|
|
||||||
k3sserver = {
|
|
||||||
tags = "k3s_infra"
|
|
||||||
count = 3
|
|
||||||
name = ["node01-infra", "node02-infra", "node03-infra"]
|
|
||||||
cores = 4
|
|
||||||
memory = "16384"
|
|
||||||
drive = 240
|
|
||||||
storage = "cache-domains"
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["21", "22", "23"]
|
|
||||||
}
|
|
||||||
#haproxy = {
|
|
||||||
# tags = "haproxy"
|
|
||||||
# count = 3
|
|
||||||
# name = ["haproxy-01", "haproxy-02", "haproxy-03"]
|
|
||||||
# cores = 2
|
|
||||||
# memory = "1024"
|
|
||||||
# drive = 20
|
|
||||||
# storage = "cache-domains"
|
|
||||||
# node = ["mothership", "overlord", "vanguard"]
|
|
||||||
# ip = ["31", "32", "33"]
|
|
||||||
#}
|
|
||||||
#postgres = {
|
|
||||||
# tags = "postgres"
|
|
||||||
# count = 3
|
|
||||||
# name = ["postgres-01", "postgres-02", "postgres-03"]
|
|
||||||
# cores = 4
|
|
||||||
# memory = "4096"
|
|
||||||
# drive = 40
|
|
||||||
# storage = "cache-domains"
|
|
||||||
# node = ["mothership", "overlord", "vanguard"]
|
|
||||||
# ip = ["34", "35", "36"]
|
|
||||||
#}
|
|
||||||
pihole = {
|
|
||||||
tags = "pihole"
|
|
||||||
count = 3
|
|
||||||
name = ["pihole-01", "pihole-02", "pihole-03"]
|
|
||||||
cores = 2
|
|
||||||
memory = "2048"
|
|
||||||
drive = 20
|
|
||||||
storage = "cache-domains"
|
|
||||||
node = ["mothership", "overlord", "vanguard"]
|
|
||||||
ip = ["41", "42", "43"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
resource "proxmox_vm_qemu" "pihole" {
|
|
||||||
count = local.pihole.count
|
|
||||||
ciuser = "administrator"
|
|
||||||
vmid = "${local.vlan}${local.pihole.ip[count.index]}"
|
|
||||||
name = local.pihole.name[count.index]
|
|
||||||
target_node = local.pihole.node[count.index]
|
|
||||||
clone = local.template
|
|
||||||
tags = local.pihole.tags
|
|
||||||
qemu_os = "l26"
|
|
||||||
full_clone = true
|
|
||||||
os_type = "cloud-init"
|
|
||||||
agent = 1
|
|
||||||
cores = local.pihole.cores
|
|
||||||
sockets = 1
|
|
||||||
cpu_type = "host"
|
|
||||||
memory = local.pihole.memory
|
|
||||||
scsihw = "virtio-scsi-pci"
|
|
||||||
#bootdisk = "scsi0"
|
|
||||||
boot = "order=virtio0"
|
|
||||||
onboot = true
|
|
||||||
sshkeys = local.sshkeys
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
serial {
|
|
||||||
id = 0
|
|
||||||
type = "socket"
|
|
||||||
}
|
|
||||||
disks {
|
|
||||||
ide {
|
|
||||||
ide2 {
|
|
||||||
cloudinit {
|
|
||||||
storage = local.pihole.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtio {
|
|
||||||
virtio0 {
|
|
||||||
disk {
|
|
||||||
size = local.pihole.drive
|
|
||||||
format = local.format
|
|
||||||
storage = local.pihole.storage
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
network {
|
|
||||||
id = 0
|
|
||||||
model = "virtio"
|
|
||||||
bridge = "vmbr0"
|
|
||||||
tag = local.vlan
|
|
||||||
}
|
|
||||||
#Cloud Init Settings
|
|
||||||
ipconfig0 = "ip=192.168.${local.vlan}.${local.pihole.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
searchdomain = "durp.loc"
|
|
||||||
nameserver = local.dnsserver
|
|
||||||
}
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
||||||
#resource "proxmox_vm_qemu" "haproxy" {
|
|
||||||
# count = local.haproxy.count
|
|
||||||
# ciuser = "administrator"
|
|
||||||
# vmid = "${local.vlan}${local.haproxy.ip[count.index]}"
|
|
||||||
# name = local.haproxy.name[count.index]
|
|
||||||
# target_node = local.haproxy.node[count.index]
|
|
||||||
# clone = local.template
|
|
||||||
# tags = local.haproxy.tags
|
|
||||||
# qemu_os = "l26"
|
|
||||||
# full_clone = true
|
|
||||||
# os_type = "cloud-init"
|
|
||||||
# agent = 1
|
|
||||||
# cores = local.haproxy.cores
|
|
||||||
# sockets = 1
|
|
||||||
# cpu_type = "host"
|
|
||||||
# memory = local.haproxy.memory
|
|
||||||
# scsihw = "virtio-scsi-pci"
|
|
||||||
# #bootdisk = "scsi0"
|
|
||||||
# boot = "order=virtio0"
|
|
||||||
# onboot = true
|
|
||||||
# sshkeys = local.sshkeys
|
|
||||||
# vga {
|
|
||||||
# type = "serial0"
|
|
||||||
# }
|
|
||||||
# serial {
|
|
||||||
# id = 0
|
|
||||||
# type = "socket"
|
|
||||||
# }
|
|
||||||
# disks {
|
|
||||||
# ide {
|
|
||||||
# ide2 {
|
|
||||||
# cloudinit {
|
|
||||||
# storage = local.haproxy.storage
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# virtio {
|
|
||||||
# virtio0 {
|
|
||||||
# disk {
|
|
||||||
# size = local.haproxy.drive
|
|
||||||
# format = local.format
|
|
||||||
# storage = local.haproxy.storage
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# network {
|
|
||||||
# id = 0
|
|
||||||
# model = "virtio"
|
|
||||||
# bridge = "vmbr0"
|
|
||||||
# tag = local.vlan
|
|
||||||
# }
|
|
||||||
# #Cloud Init Settings
|
|
||||||
# ipconfig0 = "ip=192.168.${local.vlan}.${local.haproxy.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
# searchdomain = "durp.loc"
|
|
||||||
# nameserver = local.dnsserver
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#resource "proxmox_vm_qemu" "postgres" {
|
|
||||||
# count = local.postgres.count
|
|
||||||
# ciuser = "administrator"
|
|
||||||
# vmid = "${local.vlan}${local.postgres.ip[count.index]}"
|
|
||||||
# name = local.postgres.name[count.index]
|
|
||||||
# target_node = local.postgres.node[count.index]
|
|
||||||
# clone = local.template
|
|
||||||
# tags = local.postgres.tags
|
|
||||||
# qemu_os = "l26"
|
|
||||||
# full_clone = true
|
|
||||||
# os_type = "cloud-init"
|
|
||||||
# agent = 1
|
|
||||||
# cores = local.postgres.cores
|
|
||||||
# sockets = 1
|
|
||||||
# cpu_type = "host"
|
|
||||||
# memory = local.postgres.memory
|
|
||||||
# scsihw = "virtio-scsi-pci"
|
|
||||||
# #bootdisk = "scsi0"
|
|
||||||
# boot = "order=virtio0"
|
|
||||||
# onboot = true
|
|
||||||
# sshkeys = local.sshkeys
|
|
||||||
# vga {
|
|
||||||
# type = "serial0"
|
|
||||||
# }
|
|
||||||
# serial {
|
|
||||||
# id = 0
|
|
||||||
# type = "socket"
|
|
||||||
# }
|
|
||||||
# disks {
|
|
||||||
# ide {
|
|
||||||
# ide2 {
|
|
||||||
# cloudinit {
|
|
||||||
# storage = local.postgres.storage
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# virtio {
|
|
||||||
# virtio0 {
|
|
||||||
# disk {
|
|
||||||
# size = local.postgres.drive
|
|
||||||
# format = local.format
|
|
||||||
# storage = local.postgres.storage
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# network {
|
|
||||||
# id = 0
|
|
||||||
# model = "virtio"
|
|
||||||
# bridge = "vmbr0"
|
|
||||||
# tag = local.vlan
|
|
||||||
# }
|
|
||||||
# #Cloud Init Settings
|
|
||||||
# ipconfig0 = "ip=192.168.${local.vlan}.${local.postgres.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
|
|
||||||
# searchdomain = "durp.loc"
|
|
||||||
# nameserver = local.dnsserver
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
variable "pm_api_url" {
|
|
||||||
description = "API URL to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_password" {
|
|
||||||
description = "Passowrd to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "pm_user" {
|
|
||||||
description = "UIsername to Proxmox provider"
|
|
||||||
type = string
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue