Move and create project files

This commit is contained in:
2025-08-29 10:14:28 -05:00
parent 9818ccd2f0
commit c9669a8787
10 changed files with 149 additions and 22 deletions

View File

@@ -0,0 +1,11 @@
name: hetzner-k3s
description: A multi-region k3s cluster on Hetzner Cloud
runtime:
name: nodejs
options:
packagemanager: npm
main: out/services.js
config:
pulumi:tags:
value:
pulumi:template: typescript

View File

@@ -0,0 +1,20 @@
{
"name": "app-services",
"scripts": {
"build": "npx shadow-cljs release app"
},
"devDependencies": {
"@types/node": "^18",
"shadow-cljs": "^2.20.0",
"typescript": "^5.0.0"
},
"dependencies": {
"@pulumi/pulumi": "^3.113.0",
"@pulumi/hcloud": "^1.24.0",
"@pulumi/esc-sdk": "0.12.1",
"@pulumi/command": "^1.1.0",
"@pulumi/kubernetes": "^4.23.0",
"@pulumi/vault": "^7.2.1",
"uuid":"^11.1.0"
}
}

View File

@@ -0,0 +1,8 @@
{:source-paths ["../src/main"]
:dependencies []
:builds
{:app {:target :node-script
:output-to "../out/services.js"
:compiler-options {:optimizations :simple}
:release {:source-maps true}
:main core/main!}}}

11
iac/core/Pulumi.yaml Normal file
View File

@@ -0,0 +1,11 @@
name: hetzner-k3s
description: A multi-region k3s cluster on Hetzner Cloud
runtime:
name: nodejs
options:
packagemanager: npm
main: out/init.js
config:
pulumi:tags:
value:
pulumi:template: typescript

20
iac/core/package.json Normal file
View File

@@ -0,0 +1,20 @@
{
"name": "core",
"scripts": {
"build": "npx shadow-cljs release app"
},
"devDependencies": {
"@types/node": "^18",
"shadow-cljs": "^2.20.0",
"typescript": "^5.0.0"
},
"dependencies": {
"@pulumi/pulumi": "^3.113.0",
"@pulumi/hcloud": "^1.24.0",
"@pulumi/esc-sdk": "0.12.1",
"@pulumi/command": "^1.1.0",
"@pulumi/kubernetes": "^4.23.0",
"@pulumi/vault": "^7.2.1",
"uuid":"^11.1.0"
}
}

8
iac/core/shadow-cljs.edn Normal file
View File

@@ -0,0 +1,8 @@
{:source-paths ["../src/main"]
:dependencies []
:builds
{:app {:target :node-script
:output-to "../out/init.js"
:compiler-options {:optimizations :simple}
:release {:source-maps true}
:main core/init!}}}

View File

@@ -1,23 +1,22 @@
{
"name": "vultr-k8s",
"main": "index.js",
"scripts": {
"name": "my-pulumi-iac-monorepo",
"private": true,
"workspaces": [
"core",
"app-services"
],
"scripts": {
"test": "npx shadow-cljs watch app",
"build": "shadow-cljs release app",
"pulumi": "pulumi up",
"build:core": "npm run build -w core",
"build:services": "npm run build -w app-services",
"up:core": "pulumi up -C ./out",
"up:services": "pulumi up -C ./app-services",
"destroy": "pulumi destroy -C ./app-services",
"deploy": "npm run build && npm run pulumi"
},
"devDependencies": {
},
"devDependencies": {
"@types/node": "^18",
"shadow-cljs": "^2.20.0",
"typescript": "^5.0.0"
},
"dependencies": {
"@pulumi/pulumi": "^3.113.0",
"@pulumi/hcloud": "^1.24.0",
"@pulumi/esc-sdk": "0.12.1",
"@pulumi/command": "^1.1.0",
"@pulumi/kubernetes": "^4.23.0",
"@pulumi/vault": "^7.2.1"
}
}
}

View File

@@ -0,0 +1,39 @@
ingress:
enabled: true
className: "traefik"
hosts:
- host: nextcloud.your-domain.com # This will be overwritten by Pulumi
paths:
- path: /
pathType: ImplementationSpecific
nextcloud:
username: "admin"
nodeSelector:
location: de
persistence:
enabled: true
size: 25Gi
storageClass: "hcloud-volumes"
mariadb:
enabled: true
volumePermissions:
enabled: true
securityContext:
runAsUser: 0
securityContext:
enabled: true
fsGroup: 1001
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsGroup: 1001
nodeSelector:
location: de
redis:
enabled: true
nodeSelector:
location: de

17
iac/resources/openbao.yml Normal file
View File

@@ -0,0 +1,17 @@
ui:
enabled: true
server:
standalone:
enabled: true
ha:
enabled: false
dataStorage:
enabled: true
size: 2Gi
storageClass: "hcloud-volumes"
nodeSelector:
location: "de"

View File

@@ -1,6 +0,0 @@
{:source-paths ["src/main"]
:dependencies []
:builds
{:app {:target :node-script
:output-to "index.js"
:main core/main!}}}