Move and create project files
This commit is contained in:
11
iac/app-services/Pulumi.yaml
Normal file
11
iac/app-services/Pulumi.yaml
Normal 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
|
||||||
20
iac/app-services/package.json
Normal file
20
iac/app-services/package.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
8
iac/app-services/shadow-cljs.edn
Normal file
8
iac/app-services/shadow-cljs.edn
Normal 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
11
iac/core/Pulumi.yaml
Normal 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
20
iac/core/package.json
Normal 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
8
iac/core/shadow-cljs.edn
Normal 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!}}}
|
||||||
@@ -1,23 +1,22 @@
|
|||||||
{
|
{
|
||||||
"name": "vultr-k8s",
|
"name": "my-pulumi-iac-monorepo",
|
||||||
"main": "index.js",
|
"private": true,
|
||||||
|
"workspaces": [
|
||||||
|
"core",
|
||||||
|
"app-services"
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npx shadow-cljs watch app",
|
"test": "npx shadow-cljs watch app",
|
||||||
"build": "shadow-cljs release app",
|
"build:core": "npm run build -w core",
|
||||||
"pulumi": "pulumi up",
|
"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"
|
"deploy": "npm run build && npm run pulumi"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^18",
|
"@types/node": "^18",
|
||||||
"shadow-cljs": "^2.20.0",
|
"shadow-cljs": "^2.20.0",
|
||||||
"typescript": "^5.0.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"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
39
iac/resources/nextcloud.yml
Normal file
39
iac/resources/nextcloud.yml
Normal 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
17
iac/resources/openbao.yml
Normal 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"
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{:source-paths ["src/main"]
|
|
||||||
:dependencies []
|
|
||||||
:builds
|
|
||||||
{:app {:target :node-script
|
|
||||||
:output-to "index.js"
|
|
||||||
:main core/main!}}}
|
|
||||||
Reference in New Issue
Block a user