fix(dns,k8s): add moritzgraf.de apex A record, modernize ingress, and resolve cluster alerts
- terraform: add ovh_domain_zone_record.moritzgraf_domain pointing to cluster IP - k8s/web: modernize Ingress to networking.k8s.io/v1 with traefik class and auto-renew TLS certificate - k8s/backup: set activeDeadlineSeconds and backoffLimit: 3 on gdrive-to-gphotos, clean dead pods - k8s/openclaw: set failedJobsHistoryLimit: 1 on wiki backup cronjob and purge stale failed job - k8s/coder: increase postgresql CPU limit to 500m to eliminate CFS CPU throttling
This commit is contained in:
@@ -25,4 +25,5 @@ spec:
|
|||||||
configMap:
|
configMap:
|
||||||
name: rclone-gdrive-config
|
name: rclone-gdrive-config
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
backoffLimit: 100
|
activeDeadlineSeconds: 86400
|
||||||
|
backoffLimit: 3
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+16
-13
@@ -41,25 +41,28 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
app: moritzgrafde
|
app: moritzgrafde
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: moritzgrafde
|
name: moritzgrafde
|
||||||
namespace: web
|
namespace: web
|
||||||
annotations:
|
annotations:
|
||||||
kubernetes.io/ingress.class: "nginx"
|
|
||||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
spec:
|
spec:
|
||||||
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- "moritzgraf.de"
|
- "moritzgraf.de"
|
||||||
secretName: moritzgraf-de
|
secretName: moritzgraf-de
|
||||||
rules:
|
rules:
|
||||||
- host: moritzgraf.de
|
- host: moritzgraf.de
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
backend:
|
pathType: Prefix
|
||||||
serviceName: moritzgrafde
|
backend:
|
||||||
servicePort: 80
|
service:
|
||||||
|
name: moritzgrafde
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|||||||
@@ -115,6 +115,14 @@ resource "ovh_domain_zone_record" "haumdaucher_wildcard_domain" {
|
|||||||
target = "136.243.23.215"
|
target = "136.243.23.215"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "ovh_domain_zone_record" "moritzgraf_domain" {
|
||||||
|
zone = "moritzgraf.de"
|
||||||
|
subdomain = ""
|
||||||
|
fieldtype = "A"
|
||||||
|
ttl = local.ttl
|
||||||
|
target = "136.243.23.215"
|
||||||
|
}
|
||||||
|
|
||||||
resource "ovh_domain_zone_record" "moritzgraf_wildcard_domain" {
|
resource "ovh_domain_zone_record" "moritzgraf_wildcard_domain" {
|
||||||
zone = "moritzgraf.de"
|
zone = "moritzgraf.de"
|
||||||
subdomain = "*"
|
subdomain = "*"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 4,
|
"version": 4,
|
||||||
"terraform_version": "1.14.3",
|
"terraform_version": "1.14.3",
|
||||||
"serial": 403,
|
"serial": 405,
|
||||||
"lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e",
|
"lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e",
|
||||||
"outputs": {
|
"outputs": {
|
||||||
"coder_oauth_client_secret": {
|
"coder_oauth_client_secret": {
|
||||||
@@ -4242,6 +4242,28 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "ovh_domain_zone_record",
|
||||||
|
"name": "moritzgraf_domain",
|
||||||
|
"provider": "provider[\"registry.terraform.io/ovh/ovh\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"fieldtype": "A",
|
||||||
|
"id": "5436150587",
|
||||||
|
"subdomain": "",
|
||||||
|
"target": "136.243.23.215",
|
||||||
|
"ttl": 60,
|
||||||
|
"zone": "moritzgraf.de"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "bnVsbA=="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"mode": "managed",
|
"mode": "managed",
|
||||||
"type": "ovh_domain_zone_record",
|
"type": "ovh_domain_zone_record",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 4,
|
"version": 4,
|
||||||
"terraform_version": "1.14.3",
|
"terraform_version": "1.14.3",
|
||||||
"serial": 394,
|
"serial": 403,
|
||||||
"lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e",
|
"lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e",
|
||||||
"outputs": {
|
"outputs": {
|
||||||
"coder_oauth_client_secret": {
|
"coder_oauth_client_secret": {
|
||||||
@@ -38,6 +38,16 @@
|
|||||||
"value": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com",
|
"value": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"openclaw_google_maps_api_key": {
|
||||||
|
"value": "AIzaSyDiV8UJ6Lytr0rwuGZcObhjFiSY5Rvm03c",
|
||||||
|
"type": "string",
|
||||||
|
"sensitive": true
|
||||||
|
},
|
||||||
|
"openclaw_youtube_api_key": {
|
||||||
|
"value": "AIzaSyA3tUGk95e24p5pgHuniXkbqDCd5tVITOk",
|
||||||
|
"type": "string",
|
||||||
|
"sensitive": true
|
||||||
|
},
|
||||||
"velero_backup_sa_email": {
|
"velero_backup_sa_email": {
|
||||||
"value": "velero-backup-sa@velero-backup-dc8c8f74.iam.gserviceaccount.com",
|
"value": "velero-backup-sa@velero-backup-dc8c8f74.iam.gserviceaccount.com",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
@@ -2704,6 +2714,117 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_apikeys_key",
|
||||||
|
"name": "openclaw_google_maps_key",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"display_name": "OpenClaw Google Maps API Key",
|
||||||
|
"id": "projects/octobot-486812/locations/global/keys/openclaw-google-maps-key",
|
||||||
|
"key_string": "AIzaSyDiV8UJ6Lytr0rwuGZcObhjFiSY5Rvm03c",
|
||||||
|
"name": "openclaw-google-maps-key",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"restrictions": [
|
||||||
|
{
|
||||||
|
"android_key_restrictions": [],
|
||||||
|
"api_targets": [
|
||||||
|
{
|
||||||
|
"methods": null,
|
||||||
|
"service": "places.googleapis.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"methods": null,
|
||||||
|
"service": "routes.googleapis.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"methods": null,
|
||||||
|
"service": "geocoding-backend.googleapis.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"methods": null,
|
||||||
|
"service": "static-maps-backend.googleapis.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"browser_key_restrictions": [],
|
||||||
|
"ios_key_restrictions": [],
|
||||||
|
"server_key_restrictions": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timeouts": null,
|
||||||
|
"uid": "45904264-9b7f-4004-b46a-df8cf2ee87fa"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "get_attr",
|
||||||
|
"value": "key_string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"google_project_service.apikeys_api",
|
||||||
|
"google_project_service.geocoding_api",
|
||||||
|
"google_project_service.places_api",
|
||||||
|
"google_project_service.routes_api",
|
||||||
|
"google_project_service.static_maps_api"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_apikeys_key",
|
||||||
|
"name": "openclaw_youtube_key",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"display_name": "OpenClaw YouTube API Key",
|
||||||
|
"id": "projects/octobot-486812/locations/global/keys/openclaw-youtube-key",
|
||||||
|
"key_string": "AIzaSyA3tUGk95e24p5pgHuniXkbqDCd5tVITOk",
|
||||||
|
"name": "openclaw-youtube-key",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"restrictions": [
|
||||||
|
{
|
||||||
|
"android_key_restrictions": [],
|
||||||
|
"api_targets": [
|
||||||
|
{
|
||||||
|
"methods": null,
|
||||||
|
"service": "youtube.googleapis.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"browser_key_restrictions": [],
|
||||||
|
"ios_key_restrictions": [],
|
||||||
|
"server_key_restrictions": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timeouts": null,
|
||||||
|
"uid": "698b6db2-22a7-4caa-a728-10654289afa0"
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "get_attr",
|
||||||
|
"value": "key_string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19",
|
||||||
|
"dependencies": [
|
||||||
|
"google_project_service.apikeys_api",
|
||||||
|
"google_project_service.youtube_api"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"mode": "managed",
|
"mode": "managed",
|
||||||
"type": "google_project",
|
"type": "google_project",
|
||||||
@@ -2802,6 +2923,28 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "apikeys_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/apikeys.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "apikeys.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"mode": "managed",
|
"mode": "managed",
|
||||||
"type": "google_project_service",
|
"type": "google_project_service",
|
||||||
@@ -2850,6 +2993,28 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "geocoding_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/geocoding-backend.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "geocoding-backend.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"mode": "managed",
|
"mode": "managed",
|
||||||
"type": "google_project_service",
|
"type": "google_project_service",
|
||||||
@@ -2872,6 +3037,94 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "places_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/places.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "places.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "routes_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/routes.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "routes.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "static_maps_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/static-maps-backend.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "static-maps-backend.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mode": "managed",
|
||||||
|
"type": "google_project_service",
|
||||||
|
"name": "youtube_api",
|
||||||
|
"provider": "provider[\"registry.terraform.io/hashicorp/google\"]",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"schema_version": 0,
|
||||||
|
"attributes": {
|
||||||
|
"disable_dependent_services": null,
|
||||||
|
"disable_on_destroy": false,
|
||||||
|
"id": "octobot-486812/youtube.googleapis.com",
|
||||||
|
"project": "octobot-486812",
|
||||||
|
"service": "youtube.googleapis.com",
|
||||||
|
"timeouts": null
|
||||||
|
},
|
||||||
|
"sensitive_attributes": [],
|
||||||
|
"identity_schema_version": 0,
|
||||||
|
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"mode": "managed",
|
"mode": "managed",
|
||||||
"type": "google_service_account",
|
"type": "google_service_account",
|
||||||
|
|||||||
Reference in New Issue
Block a user