Compare commits

..

14 Commits

13 changed files with 120 additions and 39 deletions

View File

@@ -1,4 +1,4 @@
replicaCount: 3
replicaCount: 1
image:
runAsNonRoot: true
nodeSelector:

View File

@@ -73,7 +73,7 @@ export class NixCache extends Construct {
namespace,
},
spec: {
replicas: "3",
replicas: "1",
selector: {
matchLabels: {
app: name,

View File

@@ -70,7 +70,7 @@ export class NpmCache extends Construct {
namespace,
},
spec: {
replicas: "3",
replicas: "1",
selector: {
matchLabels: {
app: name,

View File

@@ -6,3 +6,6 @@ prometheus:
webhook:
timeoutSeconds: 4
enableCertificateOwnerRef: true
extraArgs:
- "--dns01-recursive-nameservers-only"
- "--dns01-recursive-nameservers=1.1.1.1:53"

View File

@@ -3,11 +3,6 @@ image:
providers:
kubernetesCRD:
allowCrossNamespace: true
ingress:
ingressClass:
enabled: false
isDefaultClass: true
name: traefik
deployment:
replicas: 1
podLabels:
@@ -25,28 +20,11 @@ topologySpreadConstraints:
matchLabels:
app: traefik
additionalArguments:
- "--entryPoints.ssh.address=:22/tcp"
- "--entryPoints.minecraft-gtnh.address=:25566/tcp"
- "--entryPoints.minecraft-tfg.address=:25567/tcp"
- "--entryPoints.ssh.address=:2222/tcp"
ports:
ssh:
name: ssh
port: 22
exposedPort: 22
expose:
default: true
protocol: TCP
minecraft-gtnh:
name: minecraft-gtnh
port: 25566
exposedPort: 25566
expose:
default: true
protocol: TCP
minecraft-tfg:
name: minecraft-tfg
port: 25567
exposedPort: 25567
port: 2222
exposedPort: 2222
expose:
default: true
protocol: TCP

View File

@@ -0,0 +1,55 @@
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic-system
spec:
version: 8.15.2
http:
tls:
certificate:
secretName: elasticsearch-es-http-tls-internal
nodeSets:
- name: master
count: 3
podTemplate:
spec:
containers:
- name: elasticsearch
resources:
limits:
memory: 8Gi
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: longhorn
config:
node.roles: ["master"]
- name: data
count: 3
podTemplate:
spec:
containers:
- name: elasticsearch
resources:
limits:
memory: 8Gi
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: longhorn
config:
node.roles: ["data", "ingest"]

16
elasticsearch/kibana.yaml Normal file
View File

@@ -0,0 +1,16 @@
---
apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: kibana
namespace: elastic-system
spec:
version: 8.15.2
count: 1
elasticsearchRef:
name: elasticsearch
http:
tls:
certificate:
secretName: kibana-kb-http-tls-internal

View File

@@ -3,8 +3,8 @@ import { TerraformStack } from "cdktf";
import { KubernetesProvider } from "@cdktf/provider-kubernetes/lib/provider";
import { NamespaceV1 } from "@cdktf/provider-kubernetes/lib/namespace-v1";
import { OnePasswordSecret } from "../../utils";
import { TerraFirmaGreg } from "./tfg";
import { GTNH } from "./gtnh";
// import { TerraFirmaGreg } from "./tfg";
// import { GTNH } from "./gtnh";
export class GamingServices extends TerraformStack {
constructor(scope: Construct, id: string) {
@@ -29,7 +29,7 @@ export class GamingServices extends TerraformStack {
itemPath: "vaults/Lab/items/curseforge",
});
new TerraFirmaGreg(this, "tfg", provider, namespace);
new GTNH(this, "gtnh", provider, namespace);
// new TerraFirmaGreg(this, "tfg", provider, namespace);
// new GTNH(this, "gtnh", provider, namespace);
}
}

View File

@@ -53,7 +53,7 @@ export class MinecraftServer extends Construct {
},
waitForRollout: false,
spec: {
replicas: "1",
replicas: "0",
serviceName: name,
updateStrategy: [
{
@@ -75,10 +75,6 @@ export class MinecraftServer extends Construct {
{
metadata: {
name: `${name}-data`,
labels: {
"recurring-job.longhorn.io/source": "enabled",
"recurring-job.longhorn.io/daily-backup": "enabled",
},
},
spec: {
accessModes: ["ReadWriteOnce"],

View File

@@ -42,5 +42,14 @@ export class K8SOperators extends TerraformStack {
});
barman.node.addDependency(cnpg);
new Release(this, "elasticsearch", {
provider: helm,
repository: "https://helm.elastic.co",
chart: "eck-operator",
name: "elasticsearch",
namespace: "elastic-system",
createNamespace: true,
});
}
}

View File

@@ -79,7 +79,7 @@ export class GiteaServer extends Construct {
match: "HostSNI(`*`)",
entryPoint: "ssh",
serviceName: `${name}-ssh`,
servicePort: 22,
servicePort: 2222,
});
new PublicIngressRoute(this, "http-ingress", {

View File

@@ -12,6 +12,7 @@ service:
ssh:
annotations:
metallb.universe.tf/allow-shared-ip: gitea
port: 2222
ingress:
enabled: false
gitea:
@@ -40,7 +41,7 @@ gitea:
SSH_DOMAIN: git.dogar.dev
DISABLE_SSH: false
SSH_LISTEN_PORT: 2222
SSH_PORT: 22
SSH_PORT: 2222
database:
DB_TYPE: postgres
HOST: postgres-cluster-rw

View File

@@ -8,6 +8,7 @@ import { GiteaRunner, GiteaServer } from "./gitea";
import { AuthentikServer } from "./authentik";
import { PostgresCluster } from "./postgres";
import { DynamicDNS } from "./dynamic-dns";
import { PublicIngressRoute } from "../utils";
export class UtilityServices extends TerraformStack {
constructor(scope: Construct, id: string) {
@@ -71,6 +72,8 @@ export class UtilityServices extends TerraformStack {
"pip.dogar.dev",
"npm.dogar.dev",
"go.dogar.dev",
"elastic.dogar.dev",
"kibana.dogar.dev",
],
});
@@ -114,5 +117,25 @@ export class UtilityServices extends TerraformStack {
name: "gitea-runner",
replicas: 3,
});
new PublicIngressRoute(this, "elasticsearch", {
provider: kubernetes,
namespace: "elastic-system",
name: "elasticsearch",
host: "elastic.dogar.dev",
serviceName: "elasticsearch-es-http",
servicePort: 9200,
serviceProtocol: "https",
});
new PublicIngressRoute(this, "kibana", {
provider: kubernetes,
namespace: "elastic-system",
name: "kibana",
host: "kibana.dogar.dev",
serviceName: "kibana-kb-http",
servicePort: 5601,
serviceProtocol: "https",
});
}
}