diff --git a/apps/auth/services/gateway/k8s/servicemonitor.yaml b/apps/auth/services/gateway/k8s/monitoring/servicemonitor.yaml similarity index 100% rename from apps/auth/services/gateway/k8s/servicemonitor.yaml rename to apps/auth/services/gateway/k8s/monitoring/servicemonitor.yaml diff --git a/apps/auth/services/users/k8s/servicemonitor.yaml b/apps/auth/services/users/k8s/monitoring/servicemonitor.yaml similarity index 100% rename from apps/auth/services/users/k8s/servicemonitor.yaml rename to apps/auth/services/users/k8s/monitoring/servicemonitor.yaml diff --git a/apps/finance/services/api/k8s/servicemonitor.yaml b/apps/finance/services/api/k8s/monitoring/servicemonitor.yaml similarity index 100% rename from apps/finance/services/api/k8s/servicemonitor.yaml rename to apps/finance/services/api/k8s/monitoring/servicemonitor.yaml diff --git a/apps/test/services/example-service/k8s/servicemonitor.yaml b/apps/test/services/example-service/k8s/monitoring/servicemonitor.yaml similarity index 100% rename from apps/test/services/example-service/k8s/servicemonitor.yaml rename to apps/test/services/example-service/k8s/monitoring/servicemonitor.yaml diff --git a/infrastructure/terraform/terraform.tfstate.1780784875.backup b/infrastructure/terraform/terraform.tfstate.1780784875.backup deleted file mode 100644 index 88eff65..0000000 --- a/infrastructure/terraform/terraform.tfstate.1780784875.backup +++ /dev/null @@ -1,1006 +0,0 @@ -{ - "version": 4, - "terraform_version": "1.15.5", - "serial": 172, - "lineage": "28673c1d-998f-000c-38f5-de7c9e848250", - "outputs": {}, - "resources": [ - { - "mode": "managed", - "type": "helm_release", - "name": "jaeger", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": true, - "chart": "jaeger", - "cleanup_on_fail": false, - "create_namespace": false, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "jaeger", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "2.18.0", - "chart": "jaeger", - "first_deployed": 1780767567, - "last_deployed": 1780767567, - "name": "jaeger", - "namespace": "monitoring", - "notes": "###################################################################\n### ⚠️ EXPERIMENTAL - NO STABILITY GUARANTEES ###\n### ###\n### This chart is under active development. ###\n### Breaking changes may occur in minor versions. ###\n### ###\n### See README.md for configuration details. ###\n###################################################################\n\n🚀 Congratulations on successfully installing Jaeger v2.18.0 (Chart v4.8.0)!\n\nTo access the query UI:\n http://jaeger.homelab.local\n", - "revision": 1, - "values": "{\"jaeger\":{\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.middlewares\":\"auth-forward-auth@kubernetescrd\"},\"enabled\":true,\"hosts\":[\"jaeger.homelab.local\"]}}}", - "version": "4.8.0" - } - ], - "name": "jaeger", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://jaegertracing.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"jaeger\":\n \"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.middlewares\": \"auth-forward-auth@kubernetescrd\"\n \"enabled\": true\n \"hosts\":\n - \"jaeger.homelab.local\"\n" - ], - "verify": false, - "version": "4.8.0", - "wait": true, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ] - ], - "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "kubernetes_namespace_v1.monitoring" - ] - } - ] - }, - { - "mode": "managed", - "type": "helm_release", - "name": "kube_prometheus_stack", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": true, - "chart": "kube-prometheus-stack", - "cleanup_on_fail": false, - "create_namespace": false, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "kps", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "v0.91.0", - "chart": "kube-prometheus-stack", - "first_deployed": 1780767569, - "last_deployed": 1780767569, - "name": "kps", - "namespace": "monitoring", - "notes": "1. Get the application URL by running these commands:\n export POD_NAME=$(kubectl get pods --namespace monitoring -l \"app.kubernetes.io/name=prometheus-node-exporter,app.kubernetes.io/instance=kps\" -o jsonpath=\"{.items[0].metadata.name}\")\n echo \"Visit http://127.0.0.1:9100 to use your application\"\n kubectl port-forward --namespace monitoring $POD_NAME 9100\n1. Get your 'admin' user password by running:\n\n kubectl get secret --namespace monitoring kps-grafana -o jsonpath=\"{.data.admin-password}\" | base64 --decode ; echo\n\n\n2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:\n\n kps-grafana.monitoring.svc.cluster.local\n\n If you bind grafana to 80, please update values in values.yaml and reinstall:\n ```\n securityContext:\n runAsUser: 0\n runAsGroup: 0\n fsGroup: 0\n\n command:\n - \"setcap\"\n - \"'cap_net_bind_service=+ep'\"\n - \"/usr/sbin/grafana-server \u0026\u0026\"\n - \"sh\"\n - \"/run.sh\"\n ```\n Details refer to https://grafana.com/docs/installation/configuration/#http-port.\n Or grafana would always crash.\n\n From outside the cluster, the server URL(s) are:\n http://grafana.homelab.local\n\n3. Login with the password from step 1 and the username: admin\n#################################################################################\n###### WARNING: Persistence is disabled!!! You will lose your data when #####\n###### the Grafana pod is terminated. #####\n#################################################################################\n\nkube-prometheus-stack has been installed. Check its status by running:\n kubectl --namespace monitoring get pods -l \"release=kps\"\n\nGet Grafana 'admin' user password by running:\n\n kubectl --namespace monitoring get secrets kps-grafana -o jsonpath=\"{.data.admin-password}\" | base64 -d ; echo\n\nAccess Grafana local instance:\n\n export POD_NAME=$(kubectl --namespace monitoring get pod -l \"app.kubernetes.io/name=grafana,app.kubernetes.io/instance=kps\" -oname)\n kubectl --namespace monitoring port-forward $POD_NAME 3000\n\nGet your grafana admin user password by running:\n\n kubectl get secret --namespace monitoring -l app.kubernetes.io/component=admin-secret -o jsonpath=\"{.items[0].data.admin-password}\" | base64 --decode ; echo\n\n\nVisit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create \u0026 configure Alertmanager and Prometheus instances using the Operator.\n\nkube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.\nThe exposed metrics can be found here:\nhttps://github.com/kubernetes/kube-state-metrics/blob/master/docs/README.md#exposed-metrics\n\nThe metrics are exported on the HTTP endpoint /metrics on the listening port.\nIn your case, kps-kube-state-metrics.monitoring.svc.cluster.local:8080/metrics\n\nThey are served either as plaintext or protobuf depending on the Accept header.\nThey are designed to be consumed either by Prometheus itself or by a scraper that is compatible with scraping a Prometheus client endpoint.\n", - "revision": 1, - "values": "{\"alertmanager\":{\"enabled\":false},\"grafana\":{\"additionalDataSources\":[{\"access\":\"proxy\",\"isDefault\":false,\"name\":\"Jaeger\",\"type\":\"jaeger\",\"uid\":\"jaeger\",\"url\":\"http://jaeger.monitoring.svc:16686\"}],\"adminPassword\":\"jXWfhChbpD6QEDK2wLXbLHy7\",\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.middlewares\":\"auth-forward-auth@kubernetescrd\"},\"enabled\":true,\"hosts\":[\"grafana.homelab.local\"],\"ingressClassName\":\"traefik\"}},\"kube-state-metrics\":{\"resources\":{\"requests\":{\"cpu\":\"50m\",\"memory\":\"128Mi\"}}},\"node-exporter\":{\"resources\":{\"requests\":{\"cpu\":\"25m\",\"memory\":\"64Mi\"}}},\"prometheus\":{\"prometheusSpec\":{\"resources\":{\"limits\":{\"cpu\":\"1\",\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"200m\",\"memory\":\"512Mi\"}}}}}", - "version": "86.0.2" - } - ], - "name": "kps", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://prometheus-community.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"alertmanager\":\n \"enabled\": false\n\"grafana\":\n \"additionalDataSources\":\n - \"access\": \"proxy\"\n \"isDefault\": false\n \"name\": \"Jaeger\"\n \"type\": \"jaeger\"\n \"uid\": \"jaeger\"\n \"url\": \"http://jaeger.monitoring.svc:16686\"\n \"adminPassword\": \"jXWfhChbpD6QEDK2wLXbLHy7\"\n \"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.middlewares\": \"auth-forward-auth@kubernetescrd\"\n \"enabled\": true\n \"hosts\":\n - \"grafana.homelab.local\"\n \"ingressClassName\": \"traefik\"\n\"kube-state-metrics\":\n \"resources\":\n \"requests\":\n \"cpu\": \"50m\"\n \"memory\": \"128Mi\"\n\"node-exporter\":\n \"resources\":\n \"requests\":\n \"cpu\": \"25m\"\n \"memory\": \"64Mi\"\n\"prometheus\":\n \"prometheusSpec\":\n \"resources\":\n \"limits\":\n \"cpu\": \"1\"\n \"memory\": \"1Gi\"\n \"requests\":\n \"cpu\": \"200m\"\n \"memory\": \"512Mi\"\n" - ], - "verify": false, - "version": "86.0.2", - "wait": true, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ], - [ - { - "type": "get_attr", - "value": "values" - }, - { - "type": "index", - "value": { - "value": 0, - "type": "number" - } - } - ] - ], - "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "kubernetes_namespace_v1.monitoring", - "random_password.grafana" - ] - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_namespace", - "name": "auth", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "auth", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "auth", - "resource_version": "1342", - "uid": "6ff9d759-4d8c-4cc0-81c5-ff88a50dfcb8" - } - ], - "timeouts": null, - "wait_for_default_service_account": false - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Namespace", - "name": "auth" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_namespace", - "name": "home", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "home", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "home", - "resource_version": "752", - "uid": "8a12a328-0020-4584-b4de-3d32825d422b" - } - ], - "timeouts": null, - "wait_for_default_service_account": false - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Namespace", - "name": "home" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_namespace", - "name": "test", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "test", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "test", - "resource_version": "1301", - "uid": "8d988e39-b925-469b-855e-cea4b15b58af" - } - ], - "timeouts": null, - "wait_for_default_service_account": false - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Namespace", - "name": "test" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_namespace_v1", - "name": "infrastructure", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "infrastructure", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "infrastructure", - "resource_version": "753", - "uid": "c65f6fd0-1f45-4bc5-ab33-38f5f204586c" - } - ], - "timeouts": null, - "wait_for_default_service_account": false - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Namespace", - "name": "infrastructure" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_namespace_v1", - "name": "monitoring", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "monitoring", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "monitoring", - "resource_version": "750", - "uid": "1d54a520-0942-48dd-8dac-9fbfed8f8ac3" - } - ], - "timeouts": null, - "wait_for_default_service_account": false - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Namespace", - "name": "monitoring" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_secret_v1", - "name": "mongo_auth", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "binary_data": null, - "binary_data_wo": null, - "binary_data_wo_revision": null, - "data": { - "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:sNJtKbynerWlMtXMkh815cZh42K3HgsT@mongo.infrastructure:27017/homelab?authSource=admin" - }, - "data_wo": null, - "data_wo_revision": null, - "id": "auth/mongo", - "immutable": false, - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "mongo", - "namespace": "auth", - "resource_version": "769", - "uid": "4eee7588-cc92-445b-ab1e-b884faef9e8c" - } - ], - "timeouts": null, - "type": "Opaque", - "wait_for_service_account_token": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "binary_data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - }, - { - "type": "index", - "value": { - "value": "MONGO_URI", - "type": "string" - } - } - ] - ], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Secret", - "name": "mongo", - "namespace": "auth" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", - "dependencies": [ - "kubernetes_namespace_v1.infrastructure", - "random_password.mongo" - ] - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_secret_v1", - "name": "mongo_infra", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "binary_data": null, - "binary_data_wo": null, - "binary_data_wo_revision": null, - "data": { - "MONGO_DB": "homelab", - "MONGO_INITDB_ROOT_PASSWORD": "sNJtKbynerWlMtXMkh815cZh42K3HgsT", - "MONGO_INITDB_ROOT_USERNAME": "root", - "MONGO_URI": "mongodb://root:sNJtKbynerWlMtXMkh815cZh42K3HgsT@mongo.infrastructure:27017/homelab?authSource=admin" - }, - "data_wo": null, - "data_wo_revision": null, - "id": "infrastructure/mongo", - "immutable": false, - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "mongo", - "namespace": "infrastructure", - "resource_version": "767", - "uid": "41927bd8-7f67-40a2-933a-2c82d27fb02c" - } - ], - "timeouts": null, - "type": "Opaque", - "wait_for_service_account_token": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "binary_data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - }, - { - "type": "index", - "value": { - "value": "MONGO_INITDB_ROOT_PASSWORD", - "type": "string" - } - } - ], - [ - { - "type": "get_attr", - "value": "data" - }, - { - "type": "index", - "value": { - "value": "MONGO_URI", - "type": "string" - } - } - ] - ], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Secret", - "name": "mongo", - "namespace": "infrastructure" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", - "dependencies": [ - "kubernetes_namespace_v1.infrastructure", - "random_password.mongo" - ] - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_secret_v1", - "name": "mongo_test", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "binary_data": null, - "binary_data_wo": null, - "binary_data_wo_revision": null, - "data": { - "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:sNJtKbynerWlMtXMkh815cZh42K3HgsT@mongo.infrastructure:27017/homelab?authSource=admin" - }, - "data_wo": null, - "data_wo_revision": null, - "id": "test/mongo", - "immutable": false, - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "mongo", - "namespace": "test", - "resource_version": "765", - "uid": "e92b52fb-c576-4ba8-8026-944b9825f583" - } - ], - "timeouts": null, - "type": "Opaque", - "wait_for_service_account_token": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "binary_data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - } - ], - [ - { - "type": "get_attr", - "value": "data" - }, - { - "type": "index", - "value": { - "value": "MONGO_URI", - "type": "string" - } - } - ] - ], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Secret", - "name": "mongo", - "namespace": "test" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", - "dependencies": [ - "kubernetes_namespace_v1.infrastructure", - "random_password.mongo" - ] - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_service_v1", - "name": "mongo", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "id": "infrastructure/mongo", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": { - "app": "mongo" - }, - "name": "mongo", - "namespace": "infrastructure", - "resource_version": "770", - "uid": "c0efc1a3-164d-4b10-a3cd-309215c2debf" - } - ], - "spec": [ - { - "allocate_load_balancer_node_ports": true, - "cluster_ip": "10.43.250.40", - "cluster_ips": [ - "10.43.250.40" - ], - "external_ips": [], - "external_name": "", - "external_traffic_policy": "", - "health_check_node_port": 0, - "internal_traffic_policy": "Cluster", - "ip_families": [ - "IPv4" - ], - "ip_family_policy": "SingleStack", - "load_balancer_class": "", - "load_balancer_ip": "", - "load_balancer_source_ranges": [], - "port": [ - { - "app_protocol": "", - "name": "", - "node_port": 0, - "port": 27017, - "protocol": "TCP", - "target_port": "27017" - } - ], - "publish_not_ready_addresses": false, - "selector": { - "app": "mongo" - }, - "session_affinity": "None", - "session_affinity_config": [], - "type": "ClusterIP" - } - ], - "status": [ - { - "load_balancer": [ - { - "ingress": [] - } - ] - } - ], - "timeouts": null, - "wait_for_load_balancer": true - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "v1", - "kind": "Service", - "name": "mongo", - "namespace": "infrastructure" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "kubernetes_namespace_v1.infrastructure" - ] - } - ] - }, - { - "mode": "managed", - "type": "kubernetes_stateful_set_v1", - "name": "mongo", - "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "id": "infrastructure/mongo", - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 1, - "labels": { - "app": "mongo" - }, - "name": "mongo", - "namespace": "infrastructure", - "resource_version": "1136", - "uid": "ca244957-11ae-4caa-a2bf-fc87e70f21a9" - } - ], - "spec": [ - { - "min_ready_seconds": 0, - "persistent_volume_claim_retention_policy": [ - { - "when_deleted": "Retain", - "when_scaled": "Retain" - } - ], - "pod_management_policy": "OrderedReady", - "replicas": "1", - "revision_history_limit": 0, - "selector": [ - { - "match_expressions": [], - "match_labels": { - "app": "mongo" - } - } - ], - "service_name": "mongo", - "template": [ - { - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": { - "app": "mongo" - }, - "name": "", - "namespace": "", - "resource_version": "", - "uid": "" - } - ], - "spec": [ - { - "active_deadline_seconds": 0, - "affinity": [], - "automount_service_account_token": true, - "container": [ - { - "args": [], - "command": [], - "env": [], - "env_from": [ - { - "config_map_ref": [], - "prefix": "", - "secret_ref": [ - { - "name": "mongo", - "optional": false - } - ] - } - ], - "image": "mongo:7", - "image_pull_policy": "IfNotPresent", - "lifecycle": [], - "liveness_probe": [], - "name": "mongo", - "port": [ - { - "container_port": 27017, - "host_ip": "", - "host_port": 0, - "name": "mongodb", - "protocol": "TCP" - } - ], - "readiness_probe": [], - "resources": [ - { - "limits": {}, - "requests": {} - } - ], - "security_context": [], - "startup_probe": [], - "stdin": false, - "stdin_once": false, - "termination_message_path": "/dev/termination-log", - "termination_message_policy": "File", - "tty": false, - "volume_device": [], - "volume_mount": [ - { - "mount_path": "/data/db", - "mount_propagation": "None", - "name": "data", - "read_only": false, - "sub_path": "", - "sub_path_expr": "" - } - ], - "working_dir": "" - } - ], - "dns_config": [], - "dns_policy": "ClusterFirst", - "enable_service_links": true, - "host_aliases": [], - "host_ipc": false, - "host_network": false, - "host_pid": false, - "hostname": "", - "image_pull_secrets": [], - "init_container": [], - "node_name": "", - "node_selector": {}, - "os": [], - "priority_class_name": "", - "readiness_gate": [], - "restart_policy": "Always", - "runtime_class_name": "", - "scheduler_name": "default-scheduler", - "security_context": [], - "service_account_name": "", - "share_process_namespace": false, - "subdomain": "", - "termination_grace_period_seconds": 30, - "toleration": [], - "topology_spread_constraint": [], - "volume": [] - } - ] - } - ], - "update_strategy": [], - "volume_claim_template": [ - { - "metadata": [ - { - "annotations": {}, - "generate_name": "", - "generation": 0, - "labels": {}, - "name": "data", - "namespace": "default", - "resource_version": "", - "uid": "" - } - ], - "spec": [ - { - "access_modes": [ - "ReadWriteOnce" - ], - "resources": [ - { - "limits": {}, - "requests": { - "storage": "1Gi" - } - } - ], - "selector": [], - "storage_class_name": "", - "volume_mode": "Filesystem", - "volume_name": "" - } - ] - } - ] - } - ], - "timeouts": null, - "wait_for_rollout": true - }, - "sensitive_attributes": [], - "identity_schema_version": 1, - "identity": { - "api_version": "apps/v1", - "kind": "StatefulSet", - "name": "mongo", - "namespace": "infrastructure" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJyZWFkIjo2MDAwMDAwMDAwMDAsInVwZGF0ZSI6NjAwMDAwMDAwMDAwfSwic2NoZW1hX3ZlcnNpb24iOiIxIn0=", - "dependencies": [ - "kubernetes_namespace_v1.infrastructure", - "kubernetes_secret_v1.mongo_infra", - "random_password.mongo" - ] - } - ] - }, - { - "mode": "managed", - "type": "random_password", - "name": "grafana", - "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", - "instances": [ - { - "schema_version": 3, - "attributes": { - "bcrypt_hash": "$2a$10$gtPbohVnFQk0/9B59snVXuDUad.55.IBqXmpGWPlvSSeUfbyINf4G", - "id": "none", - "keepers": null, - "length": 24, - "lower": true, - "min_lower": 0, - "min_numeric": 0, - "min_special": 0, - "min_upper": 0, - "number": true, - "numeric": true, - "override_special": null, - "result": "jXWfhChbpD6QEDK2wLXbLHy7", - "special": false, - "upper": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "bcrypt_hash" - } - ], - [ - { - "type": "get_attr", - "value": "result" - } - ] - ], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "random_password", - "name": "mongo", - "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", - "instances": [ - { - "schema_version": 3, - "attributes": { - "bcrypt_hash": "$2a$10$QUe3Nr4KWiTBkGMLhGFyneLnm/kx6HbeJecTjLWbyWU9blqOgTEdu", - "id": "none", - "keepers": null, - "length": 32, - "lower": true, - "min_lower": 0, - "min_numeric": 0, - "min_special": 0, - "min_upper": 0, - "number": true, - "numeric": true, - "override_special": null, - "result": "sNJtKbynerWlMtXMkh815cZh42K3HgsT", - "special": false, - "upper": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "bcrypt_hash" - } - ], - [ - { - "type": "get_attr", - "value": "result" - } - ] - ], - "identity_schema_version": 0 - } - ] - } - ], - "check_results": null -} diff --git a/infrastructure/terraform/terraform.tfstate.1780844254.backup b/infrastructure/terraform/terraform.tfstate.1780844254.backup deleted file mode 100644 index 88d3cdf..0000000 --- a/infrastructure/terraform/terraform.tfstate.1780844254.backup +++ /dev/null @@ -1,614 +0,0 @@ -{ - "version": 4, - "terraform_version": "1.15.5", - "serial": 235, - "lineage": "28673c1d-998f-000c-38f5-de7c9e848250", - "outputs": {}, - "resources": [ - { - "mode": "managed", - "type": "helm_release", - "name": "fluent_bit", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": true, - "chart": "fluent-bit", - "cleanup_on_fail": false, - "create_namespace": true, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "fluent-bit", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "3.2.10", - "chart": "fluent-bit", - "first_deployed": 1780842519, - "last_deployed": 1780844089, - "name": "fluent-bit", - "namespace": "monitoring", - "notes": "Get Fluent Bit build information by running these commands:\n\nexport POD_NAME=$(kubectl get pods --namespace monitoring -l \"app.kubernetes.io/name=fluent-bit,app.kubernetes.io/instance=fluent-bit\" -o jsonpath=\"{.items[0].metadata.name}\")\nkubectl --namespace monitoring port-forward $POD_NAME 2020:2020\ncurl http://127.0.0.1:2020 \n\n", - "revision": 3, - "values": "{\"config\":{\"filters\":\"[FILTER]\\n Name kubernetes\\n Match kube.*\\n Annotations Off\\n Labels On\\n\",\"inputs\":\"[INPUT]\\n Name tail\\n Path /var/log/containers/*.log\\n Exclude_Path /var/log/containers/fluent-bit-*.log\\n multiline.parser docker,cri\\n Tag kube.*\\n Mem_Buf_Limit 50MB\\n Skip_Long_Lines On\\n\",\"outputs\":\"[OUTPUT]\\n Name loki\\n Match *\\n Host loki-gateway.monitoring.svc\\n Port 80\\n Labels job=fluent-bit\\n\",\"service\":\"[SERVICE]\\n Daemon Off\\n Log_Level info\\n Parsers_File /fluent-bit/etc/parsers.conf\\n HTTP_Server On\\n HTTP_Listen 0.0.0.0\\n HTTP_Port 2020\\n Health_Check On\\n\"},\"daemonSetVolumeMounts\":[{\"mountPath\":\"/var/log\",\"name\":\"varlog\"},{\"mountPath\":\"/var/lib/docker/containers\",\"name\":\"varlibdockercontainers\",\"readOnly\":true}],\"daemonSetVolumes\":[{\"hostPath\":{\"path\":\"/var/log\"},\"name\":\"varlog\"},{\"hostPath\":{\"path\":\"/var/lib/docker/containers\"},\"name\":\"varlibdockercontainers\"}],\"image\":{\"repository\":\"docker.io/fluent/fluent-bit\",\"tag\":\"3.2\"},\"tolerations\":[{\"operator\":\"Exists\"}]}", - "version": "0.48.10" - } - ], - "name": "fluent-bit", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://fluent.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"config\":\n \"filters\": |\n [FILTER]\n Name kubernetes\n Match kube.*\n Annotations Off\n Labels On\n \"inputs\": |\n [INPUT]\n Name tail\n Path /var/log/containers/*.log\n Exclude_Path /var/log/containers/fluent-bit-*.log\n multiline.parser docker,cri\n Tag kube.*\n Mem_Buf_Limit 50MB\n Skip_Long_Lines On\n \"outputs\": |\n [OUTPUT]\n Name loki\n Match *\n Host loki-gateway.monitoring.svc\n Port 80\n Labels job=fluent-bit\n \"service\": |\n [SERVICE]\n Daemon Off\n Log_Level info\n Parsers_File /fluent-bit/etc/parsers.conf\n HTTP_Server On\n HTTP_Listen 0.0.0.0\n HTTP_Port 2020\n Health_Check On\n\"daemonSetVolumeMounts\":\n- \"mountPath\": \"/var/log\"\n \"name\": \"varlog\"\n- \"mountPath\": \"/var/lib/docker/containers\"\n \"name\": \"varlibdockercontainers\"\n \"readOnly\": true\n\"daemonSetVolumes\":\n- \"hostPath\":\n \"path\": \"/var/log\"\n \"name\": \"varlog\"\n- \"hostPath\":\n \"path\": \"/var/lib/docker/containers\"\n \"name\": \"varlibdockercontainers\"\n\"image\":\n \"repository\": \"docker.io/fluent/fluent-bit\"\n \"tag\": \"3.2\"\n\"tolerations\":\n- \"operator\": \"Exists\"\n" - ], - "verify": false, - "version": "0.48.10", - "wait": true, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ] - ], - "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "terraform_data.monitoring_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "helm_release", - "name": "jaeger", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": true, - "chart": "jaeger", - "cleanup_on_fail": false, - "create_namespace": true, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "jaeger", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "2.18.0", - "chart": "jaeger", - "first_deployed": 1780842519, - "last_deployed": 1780844089, - "name": "jaeger", - "namespace": "monitoring", - "notes": "###################################################################\n### ⚠️ EXPERIMENTAL - NO STABILITY GUARANTEES ###\n### ###\n### This chart is under active development. ###\n### Breaking changes may occur in minor versions. ###\n### ###\n### See README.md for configuration details. ###\n###################################################################\n\n🚀 Congratulations on successfully installing Jaeger v2.18.0 (Chart v4.8.0)!\n\nTo access the query UI:\n http://jaeger.homelab.local\n", - "revision": 3, - "values": "{\"jaeger\":{\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.middlewares\":\"auth-forward-auth@kubernetescrd\"},\"enabled\":true,\"hosts\":[\"jaeger.homelab.local\"]}}}", - "version": "4.8.0" - } - ], - "name": "jaeger", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://jaegertracing.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"jaeger\":\n \"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.middlewares\": \"auth-forward-auth@kubernetescrd\"\n \"enabled\": true\n \"hosts\":\n - \"jaeger.homelab.local\"\n" - ], - "verify": false, - "version": "4.8.0", - "wait": true, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ] - ], - "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "terraform_data.monitoring_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "helm_release", - "name": "kube_prometheus_stack", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": true, - "chart": "kube-prometheus-stack", - "cleanup_on_fail": false, - "create_namespace": true, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "kps", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "v0.91.0", - "chart": "kube-prometheus-stack", - "first_deployed": 1780842522, - "last_deployed": 1780844034, - "name": "kps", - "namespace": "monitoring", - "notes": "1. Get your 'admin' user password by running:\n\n kubectl get secret --namespace monitoring kps-grafana -o jsonpath=\"{.data.admin-password}\" | base64 --decode ; echo\n\n\n2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:\n\n kps-grafana.monitoring.svc.cluster.local\n\n If you bind grafana to 80, please update values in values.yaml and reinstall:\n ```\n securityContext:\n runAsUser: 0\n runAsGroup: 0\n fsGroup: 0\n\n command:\n - \"setcap\"\n - \"'cap_net_bind_service=+ep'\"\n - \"/usr/sbin/grafana-server \u0026\u0026\"\n - \"sh\"\n - \"/run.sh\"\n ```\n Details refer to https://grafana.com/docs/installation/configuration/#http-port.\n Or grafana would always crash.\n\n From outside the cluster, the server URL(s) are:\n http://grafana.homelab.local\n\n3. Login with the password from step 1 and the username: admin\n#################################################################################\n###### WARNING: Persistence is disabled!!! You will lose your data when #####\n###### the Grafana pod is terminated. #####\n#################################################################################\n\nkube-prometheus-stack has been installed. Check its status by running:\n kubectl --namespace monitoring get pods -l \"release=kps\"\n\nGet Grafana 'admin' user password by running:\n\n kubectl --namespace monitoring get secrets kps-grafana -o jsonpath=\"{.data.admin-password}\" | base64 -d ; echo\n\nAccess Grafana local instance:\n\n export POD_NAME=$(kubectl --namespace monitoring get pod -l \"app.kubernetes.io/name=grafana,app.kubernetes.io/instance=kps\" -oname)\n kubectl --namespace monitoring port-forward $POD_NAME 3000\n\nGet your grafana admin user password by running:\n\n kubectl get secret --namespace monitoring -l app.kubernetes.io/component=admin-secret -o jsonpath=\"{.items[0].data.admin-password}\" | base64 --decode ; echo\n\n\nVisit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create \u0026 configure Alertmanager and Prometheus instances using the Operator.\n\n1. Get the application URL by running these commands:\n export POD_NAME=$(kubectl get pods --namespace monitoring -l \"app.kubernetes.io/name=prometheus-node-exporter,app.kubernetes.io/instance=kps\" -o jsonpath=\"{.items[0].metadata.name}\")\n echo \"Visit http://127.0.0.1:9100 to use your application\"\n kubectl port-forward --namespace monitoring $POD_NAME 9100\nkube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.\nThe exposed metrics can be found here:\nhttps://github.com/kubernetes/kube-state-metrics/blob/master/docs/README.md#exposed-metrics\n\nThe metrics are exported on the HTTP endpoint /metrics on the listening port.\nIn your case, kps-kube-state-metrics.monitoring.svc.cluster.local:8080/metrics\n\nThey are served either as plaintext or protobuf depending on the Accept header.\nThey are designed to be consumed either by Prometheus itself or by a scraper that is compatible with scraping a Prometheus client endpoint.\n", - "revision": 5, - "values": "{\"alertmanager\":{\"enabled\":false},\"grafana\":{\"additionalDataSources\":[{\"access\":\"proxy\",\"isDefault\":false,\"name\":\"Jaeger\",\"type\":\"jaeger\",\"uid\":\"jaeger\",\"url\":\"http://jaeger.monitoring.svc:16686\"},{\"access\":\"proxy\",\"isDefault\":false,\"name\":\"Loki\",\"type\":\"loki\",\"uid\":\"loki\",\"url\":\"http://loki-gateway.monitoring.svc\"}],\"adminPassword\":\"jXWfhChbpD6QEDK2wLXbLHy7\",\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.middlewares\":\"auth-forward-auth@kubernetescrd\"},\"enabled\":true,\"hosts\":[\"grafana.homelab.local\"],\"ingressClassName\":\"traefik\"}},\"kube-state-metrics\":{\"resources\":{\"requests\":{\"cpu\":\"50m\",\"memory\":\"128Mi\"}}},\"node-exporter\":{\"resources\":{\"requests\":{\"cpu\":\"25m\",\"memory\":\"64Mi\"}}},\"prometheus\":{\"prometheusSpec\":{\"resources\":{\"limits\":{\"cpu\":\"1\",\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"200m\",\"memory\":\"512Mi\"}}}}}", - "version": "86.0.2" - } - ], - "name": "kps", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://prometheus-community.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"alertmanager\":\n \"enabled\": false\n\"grafana\":\n \"additionalDataSources\":\n - \"access\": \"proxy\"\n \"isDefault\": false\n \"name\": \"Jaeger\"\n \"type\": \"jaeger\"\n \"uid\": \"jaeger\"\n \"url\": \"http://jaeger.monitoring.svc:16686\"\n - \"access\": \"proxy\"\n \"isDefault\": false\n \"name\": \"Loki\"\n \"type\": \"loki\"\n \"uid\": \"loki\"\n \"url\": \"http://loki-gateway.monitoring.svc\"\n \"adminPassword\": \"jXWfhChbpD6QEDK2wLXbLHy7\"\n \"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.middlewares\": \"auth-forward-auth@kubernetescrd\"\n \"enabled\": true\n \"hosts\":\n - \"grafana.homelab.local\"\n \"ingressClassName\": \"traefik\"\n\"kube-state-metrics\":\n \"resources\":\n \"requests\":\n \"cpu\": \"50m\"\n \"memory\": \"128Mi\"\n\"node-exporter\":\n \"resources\":\n \"requests\":\n \"cpu\": \"25m\"\n \"memory\": \"64Mi\"\n\"prometheus\":\n \"prometheusSpec\":\n \"resources\":\n \"limits\":\n \"cpu\": \"1\"\n \"memory\": \"1Gi\"\n \"requests\":\n \"cpu\": \"200m\"\n \"memory\": \"512Mi\"\n" - ], - "verify": false, - "version": "86.0.2", - "wait": true, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ], - [ - { - "type": "get_attr", - "value": "values" - }, - { - "type": "index", - "value": { - "value": 0, - "type": "number" - } - } - ] - ], - "identity_schema_version": 0, - "dependencies": [ - "random_password.grafana", - "terraform_data.monitoring_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "helm_release", - "name": "loki", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", - "instances": [ - { - "schema_version": 1, - "attributes": { - "atomic": false, - "chart": "loki", - "cleanup_on_fail": false, - "create_namespace": true, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "loki", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, - "metadata": [ - { - "app_version": "3.4.2", - "chart": "loki", - "first_deployed": 1780842520, - "last_deployed": 1780844090, - "name": "loki", - "namespace": "monitoring", - "notes": "***********************************************************************\n Welcome to Grafana Loki\n Chart version: 6.28.0\n Chart Name: loki\n Loki version: 3.4.2\n***********************************************************************\n\n** Please be patient while the chart is being deployed **\n\nTip:\n\n Watch the deployment status using the command: kubectl get pods -w --namespace monitoring\n\nIf pods are taking too long to schedule make sure pod affinity can be fulfilled in the current cluster.\n\n***********************************************************************\nInstalled components:\n***********************************************************************\n* loki\n\nLoki has been deployed as a single binary.\nThis means a single pod is handling reads and writes. You can scale that pod vertically by adding more CPU and memory resources.\n\n\n***********************************************************************\nSending logs to Loki\n***********************************************************************\n\nLoki has been configured with a gateway (nginx) to support reads and writes from a single component.\n\nYou can send logs from inside the cluster using the cluster DNS:\n\nhttp://loki-gateway.monitoring.svc.cluster.local/loki/api/v1/push\n\nYou can test to send data from outside the cluster by port-forwarding the gateway to your local machine:\n\n kubectl port-forward --namespace monitoring svc/loki-gateway 3100:80 \u0026\n\nAnd then using http://127.0.0.1:3100/loki/api/v1/push URL as shown below:\n\n```\ncurl -H \"Content-Type: application/json\" -XPOST -s \"http://127.0.0.1:3100/loki/api/v1/push\" \\\n--data-raw \"{\\\"streams\\\": [{\\\"stream\\\": {\\\"job\\\": \\\"test\\\"}, \\\"values\\\": [[\\\"$(date +%s)000000000\\\", \\\"fizzbuzz\\\"]]}]}\"\n```\n\nThen verify that Loki did receive the data using the following command:\n\n```\ncurl \"http://127.0.0.1:3100/loki/api/v1/query_range\" --data-urlencode 'query={job=\"test\"}' | jq .data.result\n```\n\n***********************************************************************\nConnecting Grafana to Loki\n***********************************************************************\n\nIf Grafana operates within the cluster, you'll set up a new Loki datasource by utilizing the following URL:\n\nhttp://loki-gateway.monitoring.svc.cluster.local/\n", - "revision": 3, - "values": "{\"backend\":{\"replicas\":0},\"chunksCache\":{\"enabled\":false},\"deploymentMode\":\"SingleBinary\",\"gateway\":{\"basicAuth\":{\"enabled\":false},\"enabled\":true,\"nginxConfig\":{\"httpSnippet\":\"proxy_set_header X-Scope-OrgID \\\"1\\\";\",\"serverSnippet\":\"\"}},\"loki\":{\"auth_enabled\":false,\"commonConfig\":{\"replication_factor\":1},\"containerSecurityContext\":{\"readOnlyRootFilesystem\":false},\"schemaConfig\":{\"configs\":[{\"from\":\"2024-01-01\",\"index\":{\"period\":\"24h\",\"prefix\":\"loki_index_\"},\"object_store\":\"filesystem\",\"schema\":\"v13\",\"store\":\"tsdb\"}]},\"storage\":{\"bucketNames\":{\"admin\":\"loki-admin\",\"chunks\":\"loki-chunks\",\"ruler\":\"loki-ruler\"},\"type\":\"filesystem\"}},\"monitoring\":{\"alerts\":{\"enabled\":false},\"dashboards\":{\"enabled\":false},\"lokiCanary\":{\"enabled\":false},\"rules\":{\"enabled\":false},\"selfMonitoring\":{\"enabled\":false},\"serviceMonitor\":{\"enabled\":false}},\"read\":{\"replicas\":0},\"resultsCache\":{\"enabled\":false},\"ruler\":{\"enabled\":false},\"singleBinary\":{\"extraVolumeMounts\":[{\"mountPath\":\"/var/loki\",\"name\":\"data\"}],\"extraVolumes\":[{\"emptyDir\":{},\"name\":\"data\"}],\"persistence\":{\"enabled\":false},\"replicas\":1},\"test\":{\"enabled\":false},\"write\":{\"replicas\":0}}", - "version": "6.28.0" - } - ], - "name": "loki", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://grafana.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"backend\":\n \"replicas\": 0\n\"chunksCache\":\n \"enabled\": false\n\"deploymentMode\": \"SingleBinary\"\n\"gateway\":\n \"basicAuth\":\n \"enabled\": false\n \"enabled\": true\n \"nginxConfig\":\n \"httpSnippet\": \"proxy_set_header X-Scope-OrgID \\\"1\\\";\"\n \"serverSnippet\": \"\"\n\"loki\":\n \"auth_enabled\": false\n \"commonConfig\":\n \"replication_factor\": 1\n \"containerSecurityContext\":\n \"readOnlyRootFilesystem\": false\n \"schemaConfig\":\n \"configs\":\n - \"from\": \"2024-01-01\"\n \"index\":\n \"period\": \"24h\"\n \"prefix\": \"loki_index_\"\n \"object_store\": \"filesystem\"\n \"schema\": \"v13\"\n \"store\": \"tsdb\"\n \"storage\":\n \"bucketNames\":\n \"admin\": \"loki-admin\"\n \"chunks\": \"loki-chunks\"\n \"ruler\": \"loki-ruler\"\n \"type\": \"filesystem\"\n\"monitoring\":\n \"alerts\":\n \"enabled\": false\n \"dashboards\":\n \"enabled\": false\n \"lokiCanary\":\n \"enabled\": false\n \"rules\":\n \"enabled\": false\n \"selfMonitoring\":\n \"enabled\": false\n \"serviceMonitor\":\n \"enabled\": false\n\"read\":\n \"replicas\": 0\n\"resultsCache\":\n \"enabled\": false\n\"ruler\":\n \"enabled\": false\n\"singleBinary\":\n \"extraVolumeMounts\":\n - \"mountPath\": \"/var/loki\"\n \"name\": \"data\"\n \"extraVolumes\":\n - \"emptyDir\": {}\n \"name\": \"data\"\n \"persistence\":\n \"enabled\": false\n \"replicas\": 1\n\"test\":\n \"enabled\": false\n\"write\":\n \"replicas\": 0\n" - ], - "verify": false, - "version": "6.28.0", - "wait": false, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "repository_password" - } - ] - ], - "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", - "dependencies": [ - "terraform_data.monitoring_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "random_password", - "name": "grafana", - "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", - "instances": [ - { - "schema_version": 3, - "attributes": { - "bcrypt_hash": "$2a$10$gtPbohVnFQk0/9B59snVXuDUad.55.IBqXmpGWPlvSSeUfbyINf4G", - "id": "none", - "keepers": null, - "length": 24, - "lower": true, - "min_lower": 0, - "min_numeric": 0, - "min_special": 0, - "min_upper": 0, - "number": true, - "numeric": true, - "override_special": null, - "result": "jXWfhChbpD6QEDK2wLXbLHy7", - "special": false, - "upper": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "bcrypt_hash" - } - ], - [ - { - "type": "get_attr", - "value": "result" - } - ] - ], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "random_password", - "name": "mongodb", - "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", - "instances": [ - { - "schema_version": 3, - "attributes": { - "bcrypt_hash": "$2a$10$CNBRlYZKIyKStfctvc1feuLMLE5wV9BKUEXkB5QbP4FkbEtw0vn3y", - "id": "none", - "keepers": null, - "length": 24, - "lower": true, - "min_lower": 0, - "min_numeric": 0, - "min_special": 0, - "min_upper": 0, - "number": true, - "numeric": true, - "override_special": null, - "result": "CQeYgJN3AXl9Kpx15zmwkArd", - "special": false, - "upper": true - }, - "sensitive_attributes": [ - [ - { - "type": "get_attr", - "value": "bcrypt_hash" - } - ], - [ - { - "type": "get_attr", - "value": "result" - } - ] - ], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "auth_ns", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "15077c09-2fb0-74b9-04fe-3ee696bc2f72", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "home_ns", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "765a4ef9-ee35-d9e8-e758-fad70c2ff9de", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "mongodb_ns", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "5ea8087a-1531-c96a-5120-68b1b038a928", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "mongodb_secret", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "2bc645b6-4315-96b8-d609-08d96973cd5d", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0, - "dependencies": [ - "random_password.mongodb", - "terraform_data.mongodb_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "mongodb_service", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "975c0b02-a20d-daf1-85ad-127921b27f9f", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0, - "dependencies": [ - "terraform_data.mongodb_ns" - ] - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "mongodb_statefulset", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "147bf317-5a20-8c4f-a63a-c82f8d7581ee", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0, - "dependencies": [ - "random_password.mongodb", - "terraform_data.mongodb_ns", - "terraform_data.mongodb_secret", - "terraform_data.mongodb_service" - ] - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "monitoring_ns", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "45b22986-eb94-d3c3-d92a-9ede14fc5dc7", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0 - } - ] - }, - { - "mode": "managed", - "type": "terraform_data", - "name": "test_ns", - "provider": "provider[\"terraform.io/builtin/terraform\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "id": "8daebd1b-fe4e-1231-6bb0-df23f2ea5fbb", - "input": null, - "output": null, - "triggers_replace": null - }, - "sensitive_attributes": [], - "identity_schema_version": 0 - } - ] - } - ], - "check_results": null -} diff --git a/infrastructure/terraform/terraform.tfstate.backup b/infrastructure/terraform/terraform.tfstate.backup index f542bd2..cdb0264 100644 --- a/infrastructure/terraform/terraform.tfstate.backup +++ b/infrastructure/terraform/terraform.tfstate.backup @@ -1,21 +1,22 @@ { "version": 4, "terraform_version": "1.15.5", - "serial": 412, - "lineage": "28673c1d-998f-000c-38f5-de7c9e848250", + "serial": 88, + "lineage": "d4983386-3ff1-b7f3-75c9-021f911f1ac0", "outputs": {}, "resources": [ { "mode": "managed", "type": "helm_release", - "name": "fluent_bit", + "name": "gitea", "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", "instances": [ { + "index_key": 0, "schema_version": 1, "attributes": { "atomic": true, - "chart": "fluent-bit", + "chart": "gitea", "cleanup_on_fail": false, "create_namespace": false, "dependency_update": false, @@ -25,33 +26,33 @@ "disable_openapi_validation": false, "disable_webhooks": false, "force_update": false, - "id": "fluent-bit", + "id": "gitea", "keyring": null, "lint": false, "manifest": null, "max_history": 0, "metadata": [ { - "app_version": "3.2.10", - "chart": "fluent-bit", - "first_deployed": 1781347541, - "last_deployed": 1781347541, - "name": "fluent-bit", - "namespace": "monitoring", - "notes": "Get Fluent Bit build information by running these commands:\n\nexport POD_NAME=$(kubectl get pods --namespace monitoring -l \"app.kubernetes.io/name=fluent-bit,app.kubernetes.io/instance=fluent-bit\" -o jsonpath=\"{.items[0].metadata.name}\")\nkubectl --namespace monitoring port-forward $POD_NAME 2020:2020\ncurl http://127.0.0.1:2020 \n\n", - "revision": 1, - "values": "{\"config\":{\"filters\":\"[FILTER]\\n Name kubernetes\\n Match kube.*\\n Annotations Off\\n Labels On\\n\",\"inputs\":\"[INPUT]\\n Name tail\\n Path /var/log/containers/*.log\\n Exclude_Path /var/log/containers/fluent-bit-*.log\\n multiline.parser docker,cri\\n Tag kube.*\\n Mem_Buf_Limit 50MB\\n Skip_Long_Lines On\\n\",\"outputs\":\"[OUTPUT]\\n Name loki\\n Match *\\n Host loki-gateway.monitoring.svc\\n Port 80\\n Labels job=fluent-bit\\n\",\"service\":\"[SERVICE]\\n Daemon Off\\n Log_Level info\\n Parsers_File /fluent-bit/etc/parsers.conf\\n HTTP_Server On\\n HTTP_Listen 0.0.0.0\\n HTTP_Port 2020\\n Health_Check On\\n\"},\"daemonSetVolumeMounts\":[{\"mountPath\":\"/var/log\",\"name\":\"varlog\"},{\"mountPath\":\"/var/lib/docker/containers\",\"name\":\"varlibdockercontainers\",\"readOnly\":true}],\"daemonSetVolumes\":[{\"hostPath\":{\"path\":\"/var/log\"},\"name\":\"varlog\"},{\"hostPath\":{\"path\":\"/var/lib/docker/containers\"},\"name\":\"varlibdockercontainers\"}],\"image\":{\"repository\":\"docker.io/fluent/fluent-bit\",\"tag\":\"3.2\"},\"tolerations\":[{\"operator\":\"Exists\"}]}", - "version": "0.48.10" + "app_version": "1.23.8", + "chart": "gitea", + "first_deployed": 1782506921, + "last_deployed": 1782508020, + "name": "gitea", + "namespace": "gitea", + "notes": "1. Get the application URL by running these commands:\n https://git.gugagr.xyz/\n2. Review these warnings:\n - Gitea uses 'memory' for caching which is not recommended for production use. See https://docs.gitea.com/next/administration/config-cheat-sheet#cache-cache for available options.\n - Gitea uses 'leveldb' for queue actions which is not recommended for production use. See https://docs.gitea.com/next/administration/config-cheat-sheet#queue-queue-and-queue for available options.\n - Gitea uses 'memory' for sessions which is not recommended for production use. See https://docs.gitea.com/next/administration/config-cheat-sheet#session-session for available options.\n", + "revision": 2, + "values": "{\"gitea\":{\"admin\":{\"existingSecret\":\"gitea-admin\"},\"config\":{\"APP_NAME\":\"Homelab Git\",\"cache\":{\"ADAPTER\":\"memory\"},\"database\":{\"DB_TYPE\":\"sqlite3\"},\"log\":{\"LEVEL\":\"Warn\"},\"packages\":{\"ENABLED\":\"true\"},\"queue\":{\"TYPE\":\"level\"},\"server\":{\"DOMAIN\":\"git.gugagr.xyz\",\"ROOT_URL\":\"https://git.gugagr.xyz\",\"SSH_DOMAIN\":\"localhost\",\"SSH_PORT\":30001},\"service\":{\"DISABLE_REGISTRATION\":\"true\"},\"session\":{\"PROVIDER\":\"memory\"}}},\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.tls\":\"true\",\"traefik.ingress.kubernetes.io/router.tls.certresolver\":\"letsencrypt\"},\"className\":\"traefik\",\"enabled\":true,\"hosts\":[{\"host\":\"git.gugagr.xyz\",\"paths\":[{\"path\":\"/\",\"pathType\":\"Prefix\"}]}],\"tls\":[{\"hosts\":[\"git.gugagr.xyz\"]}]},\"persistence\":{\"enabled\":true,\"size\":\"10Gi\",\"storageClass\":\"local-path\"},\"postgresql-ha\":{\"enabled\":false},\"resources\":{\"limits\":{\"cpu\":\"500m\",\"memory\":\"512Mi\"},\"requests\":{\"cpu\":\"100m\",\"memory\":\"256Mi\"}},\"service\":{\"http\":{\"nodePort\":30002,\"port\":3000,\"type\":\"NodePort\"},\"ssh\":{\"nodePort\":30001,\"port\":22,\"type\":\"NodePort\"}},\"valkey-cluster\":{\"enabled\":false}}", + "version": "12.0.0" } ], - "name": "fluent-bit", - "namespace": "monitoring", + "name": "gitea", + "namespace": "gitea", "pass_credentials": false, "postrender": [], "recreate_pods": false, "render_subchart_notes": true, "replace": false, - "repository": "https://fluent.github.io/helm-charts", + "repository": "https://dl.gitea.com/charts/", "repository_ca_file": null, "repository_cert_file": null, "repository_key_file": null, @@ -67,10 +68,10 @@ "timeout": 300, "upgrade_install": null, "values": [ - "\"config\":\n \"filters\": |\n [FILTER]\n Name kubernetes\n Match kube.*\n Annotations Off\n Labels On\n \"inputs\": |\n [INPUT]\n Name tail\n Path /var/log/containers/*.log\n Exclude_Path /var/log/containers/fluent-bit-*.log\n multiline.parser docker,cri\n Tag kube.*\n Mem_Buf_Limit 50MB\n Skip_Long_Lines On\n \"outputs\": |\n [OUTPUT]\n Name loki\n Match *\n Host loki-gateway.monitoring.svc\n Port 80\n Labels job=fluent-bit\n \"service\": |\n [SERVICE]\n Daemon Off\n Log_Level info\n Parsers_File /fluent-bit/etc/parsers.conf\n HTTP_Server On\n HTTP_Listen 0.0.0.0\n HTTP_Port 2020\n Health_Check On\n\"daemonSetVolumeMounts\":\n- \"mountPath\": \"/var/log\"\n \"name\": \"varlog\"\n- \"mountPath\": \"/var/lib/docker/containers\"\n \"name\": \"varlibdockercontainers\"\n \"readOnly\": true\n\"daemonSetVolumes\":\n- \"hostPath\":\n \"path\": \"/var/log\"\n \"name\": \"varlog\"\n- \"hostPath\":\n \"path\": \"/var/lib/docker/containers\"\n \"name\": \"varlibdockercontainers\"\n\"image\":\n \"repository\": \"docker.io/fluent/fluent-bit\"\n \"tag\": \"3.2\"\n\"tolerations\":\n- \"operator\": \"Exists\"\n" + "\"gitea\":\n \"admin\":\n \"existingSecret\": \"gitea-admin\"\n \"config\":\n \"APP_NAME\": \"Homelab Git\"\n \"cache\":\n \"ADAPTER\": \"memory\"\n \"database\":\n \"DB_TYPE\": \"sqlite3\"\n \"log\":\n \"LEVEL\": \"Warn\"\n \"packages\":\n \"ENABLED\": \"true\"\n \"queue\":\n \"TYPE\": \"level\"\n \"server\":\n \"DOMAIN\": \"git.gugagr.xyz\"\n \"ROOT_URL\": \"https://git.gugagr.xyz\"\n \"SSH_DOMAIN\": \"localhost\"\n \"SSH_PORT\": 30001\n \"service\":\n \"DISABLE_REGISTRATION\": \"true\"\n \"session\":\n \"PROVIDER\": \"memory\"\n\"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.tls\": \"true\"\n \"traefik.ingress.kubernetes.io/router.tls.certresolver\": \"letsencrypt\"\n \"className\": \"traefik\"\n \"enabled\": true\n \"hosts\":\n - \"host\": \"git.gugagr.xyz\"\n \"paths\":\n - \"path\": \"/\"\n \"pathType\": \"Prefix\"\n \"tls\":\n - \"hosts\":\n - \"git.gugagr.xyz\"\n\"persistence\":\n \"enabled\": true\n \"size\": \"10Gi\"\n \"storageClass\": \"local-path\"\n\"postgresql-ha\":\n \"enabled\": false\n\"resources\":\n \"limits\":\n \"cpu\": \"500m\"\n \"memory\": \"512Mi\"\n \"requests\":\n \"cpu\": \"100m\"\n \"memory\": \"256Mi\"\n\"service\":\n \"http\":\n \"nodePort\": 30002\n \"port\": 3000\n \"type\": \"NodePort\"\n \"ssh\":\n \"nodePort\": 30001\n \"port\": 22\n \"type\": \"NodePort\"\n\"valkey-cluster\":\n \"enabled\": false\n" ], "verify": false, - "version": "0.48.10", + "version": "12.0.0", "wait": true, "wait_for_jobs": false }, @@ -85,7 +86,9 @@ "identity_schema_version": 0, "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", "dependencies": [ - "kubernetes_namespace.domains" + "kubernetes_namespace.domains", + "kubernetes_secret.gitea_admin", + "random_password.gitea_admin" ] } ] @@ -93,14 +96,14 @@ { "mode": "managed", "type": "helm_release", - "name": "jaeger", + "name": "traefik", "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", "instances": [ { "schema_version": 1, "attributes": { "atomic": true, - "chart": "jaeger", + "chart": "traefik", "cleanup_on_fail": false, "create_namespace": false, "dependency_update": false, @@ -110,33 +113,33 @@ "disable_openapi_validation": false, "disable_webhooks": false, "force_update": false, - "id": "jaeger", + "id": "traefik", "keyring": null, "lint": false, "manifest": null, "max_history": 0, "metadata": [ { - "app_version": "2.18.0", - "chart": "jaeger", - "first_deployed": 1781347536, - "last_deployed": 1781347536, - "name": "jaeger", - "namespace": "monitoring", - "notes": "###################################################################\n### ⚠️ EXPERIMENTAL - NO STABILITY GUARANTEES ###\n### ###\n### This chart is under active development. ###\n### Breaking changes may occur in minor versions. ###\n### ###\n### See README.md for configuration details. ###\n###################################################################\n\n🚀 Congratulations on successfully installing Jaeger v2.18.0 (Chart v4.8.0)!\n\nTo access the query UI:\n http://jaeger.homelab.local\n", + "app_version": "v3.2.0", + "chart": "traefik", + "first_deployed": 1782506576, + "last_deployed": 1782506576, + "name": "traefik", + "namespace": "kube-system", + "notes": "\n\ntraefik with docker.io/traefik:v3.2.0 has been deployed successfully on kube-system namespace !\n\n🚨 When enabling persistence for certificates, permissions on acme.json can be\nlost when Traefik restarts. You can ensure correct permissions with an\ninitContainer. See https://github.com/traefik/traefik-helm-chart/blob/master/EXAMPLES.md#use-traefik-native-lets-encrypt-integration-without-cert-manager\nfor more info. 🚨\n", "revision": 1, - "values": "{\"jaeger\":{\"ingress\":{\"annotations\":{\"traefik.ingress.kubernetes.io/router.middlewares\":\"auth-forward-auth@kubernetescrd\"},\"enabled\":true,\"hosts\":[\"jaeger.homelab.local\"]}}}", - "version": "4.8.0" + "values": "{\"additionalArguments\":[\"--certificatesresolvers.letsencrypt.acme.email=goncalo.gr@proton.me\",\"--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json\",\"--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web\"],\"ingressRoute\":{\"dashboard\":{\"enabled\":false}},\"persistence\":{\"enabled\":true,\"size\":\"128Mi\",\"storageClass\":\"local-path\"},\"ports\":{\"web\":{\"redirectTo\":{\"port\":\"websecure\"}}},\"resources\":{\"limits\":{\"cpu\":\"200m\",\"memory\":\"128Mi\"},\"requests\":{\"cpu\":\"50m\",\"memory\":\"64Mi\"}},\"service\":{\"type\":\"LoadBalancer\"}}", + "version": "33.0.0" } ], - "name": "jaeger", - "namespace": "monitoring", + "name": "traefik", + "namespace": "kube-system", "pass_credentials": false, "postrender": [], "recreate_pods": false, "render_subchart_notes": true, "replace": false, - "repository": "https://jaegertracing.github.io/helm-charts", + "repository": "https://traefik.github.io/charts", "repository_ca_file": null, "repository_cert_file": null, "repository_key_file": null, @@ -152,10 +155,10 @@ "timeout": 300, "upgrade_install": null, "values": [ - "\"jaeger\":\n \"ingress\":\n \"annotations\":\n \"traefik.ingress.kubernetes.io/router.middlewares\": \"auth-forward-auth@kubernetescrd\"\n \"enabled\": true\n \"hosts\":\n - \"jaeger.homelab.local\"\n" + "\"additionalArguments\":\n- \"--certificatesresolvers.letsencrypt.acme.email=goncalo.gr@proton.me\"\n- \"--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json\"\n- \"--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web\"\n\"ingressRoute\":\n \"dashboard\":\n \"enabled\": false\n\"persistence\":\n \"enabled\": true\n \"size\": \"128Mi\"\n \"storageClass\": \"local-path\"\n\"ports\":\n \"web\":\n \"redirectTo\":\n \"port\": \"websecure\"\n\"resources\":\n \"limits\":\n \"cpu\": \"200m\"\n \"memory\": \"128Mi\"\n \"requests\":\n \"cpu\": \"50m\"\n \"memory\": \"64Mi\"\n\"service\":\n \"type\": \"LoadBalancer\"\n" ], "verify": false, - "version": "4.8.0", + "version": "33.0.0", "wait": true, "wait_for_jobs": false }, @@ -168,7 +171,171 @@ ] ], "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_cluster_role", + "name": "act_runner", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "aggregation_rule": [], + "id": "act-runner", + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "act-runner", + "resource_version": "7193", + "uid": "ecaa8890-b817-4619-b04a-6150166c4918" + } + ], + "rule": [ + { + "api_groups": [ + "apps" + ], + "non_resource_urls": [], + "resource_names": [], + "resources": [ + "deployments" + ], + "verbs": [ + "get", + "list", + "patch", + "update" + ] + }, + { + "api_groups": [ + "" + ], + "non_resource_urls": [], + "resource_names": [], + "resources": [ + "pods", + "pods/log" + ], + "verbs": [ + "get", + "list" + ] + }, + { + "api_groups": [ + "batch" + ], + "non_resource_urls": [], + "resource_names": [], + "resources": [ + "jobs" + ], + "verbs": [ + "create", + "get", + "list", + "watch", + "delete" + ] + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_cluster_role_binding", + "name": "act_runner", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "id": "act-runner", + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "act-runner", + "resource_version": "7206", + "uid": "70653fb3-0506-40b6-8a8f-1b2831ce8fff" + } + ], + "role_ref": [ + { + "api_group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "name": "act-runner" + } + ], + "subject": [ + { + "api_group": "", + "kind": "ServiceAccount", + "name": "act-runner", + "namespace": "gitea" + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "kubernetes_cluster_role.act_runner", + "kubernetes_namespace.domains", + "kubernetes_service_account.act_runner" + ] + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_config_map", + "name": "act_runner", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "binary_data": {}, + "data": { + "config.yaml": "\"cache\":\n \"enabled\": false\n\"container\":\n \"docker_host\": \"tcp://localhost:2375\"\n \"network\": \"host\"\n \"valid_volumes\":\n - \"/var/run/secrets/kubernetes.io/serviceaccount\"\n\"log\":\n \"level\": \"info\"\n\"runner\":\n \"capacity\": 2\n \"envs\": {}\n \"fetch_interval\": \"2s\"\n \"fetch_timeout\": \"5s\"\n \"report_interval\": \"1s\"\n" + }, + "id": "gitea/act-runner-config", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "act-runner-config", + "namespace": "gitea", + "resource_version": "7203", + "uid": "3f7d5f82-c5be-403d-887c-ff0abfb8092a" + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", "dependencies": [ "kubernetes_namespace.domains" ] @@ -177,85 +344,415 @@ }, { "mode": "managed", - "type": "helm_release", - "name": "loki", - "provider": "provider[\"registry.terraform.io/hashicorp/helm\"]", + "type": "kubernetes_deployment", + "name": "act_runner", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", "instances": [ { + "index_key": 0, "schema_version": 1, "attributes": { - "atomic": false, - "chart": "loki", - "cleanup_on_fail": false, - "create_namespace": false, - "dependency_update": false, - "description": null, - "devel": null, - "disable_crd_hooks": false, - "disable_openapi_validation": false, - "disable_webhooks": false, - "force_update": false, - "id": "loki", - "keyring": null, - "lint": false, - "manifest": null, - "max_history": 0, + "id": "gitea/act-runner", "metadata": [ { - "app_version": "3.4.2", - "chart": "loki", - "first_deployed": 1781347540, - "last_deployed": 1781347540, - "name": "loki", - "namespace": "monitoring", - "notes": "***********************************************************************\n Welcome to Grafana Loki\n Chart version: 6.28.0\n Chart Name: loki\n Loki version: 3.4.2\n***********************************************************************\n\n** Please be patient while the chart is being deployed **\n\nTip:\n\n Watch the deployment status using the command: kubectl get pods -w --namespace monitoring\n\nIf pods are taking too long to schedule make sure pod affinity can be fulfilled in the current cluster.\n\n***********************************************************************\nInstalled components:\n***********************************************************************\n* loki\n\nLoki has been deployed as a single binary.\nThis means a single pod is handling reads and writes. You can scale that pod vertically by adding more CPU and memory resources.\n\n\n***********************************************************************\nSending logs to Loki\n***********************************************************************\n\nLoki has been configured with a gateway (nginx) to support reads and writes from a single component.\n\nYou can send logs from inside the cluster using the cluster DNS:\n\nhttp://loki-gateway.monitoring.svc.cluster.local/loki/api/v1/push\n\nYou can test to send data from outside the cluster by port-forwarding the gateway to your local machine:\n\n kubectl port-forward --namespace monitoring svc/loki-gateway 3100:80 \u0026\n\nAnd then using http://127.0.0.1:3100/loki/api/v1/push URL as shown below:\n\n```\ncurl -H \"Content-Type: application/json\" -XPOST -s \"http://127.0.0.1:3100/loki/api/v1/push\" \\\n--data-raw \"{\\\"streams\\\": [{\\\"stream\\\": {\\\"job\\\": \\\"test\\\"}, \\\"values\\\": [[\\\"$(date +%s)000000000\\\", \\\"fizzbuzz\\\"]]}]}\"\n```\n\nThen verify that Loki did receive the data using the following command:\n\n```\ncurl \"http://127.0.0.1:3100/loki/api/v1/query_range\" --data-urlencode 'query={job=\"test\"}' | jq .data.result\n```\n\n***********************************************************************\nConnecting Grafana to Loki\n***********************************************************************\n\nIf Grafana operates within the cluster, you'll set up a new Loki datasource by utilizing the following URL:\n\nhttp://loki-gateway.monitoring.svc.cluster.local/\n", - "revision": 1, - "values": "{\"backend\":{\"replicas\":0},\"chunksCache\":{\"enabled\":false},\"deploymentMode\":\"SingleBinary\",\"gateway\":{\"basicAuth\":{\"enabled\":false},\"enabled\":true,\"nginxConfig\":{\"httpSnippet\":\"proxy_set_header X-Scope-OrgID \\\"1\\\";\",\"serverSnippet\":\"\"}},\"loki\":{\"auth_enabled\":false,\"commonConfig\":{\"replication_factor\":1},\"containerSecurityContext\":{\"readOnlyRootFilesystem\":false},\"schemaConfig\":{\"configs\":[{\"from\":\"2024-01-01\",\"index\":{\"period\":\"24h\",\"prefix\":\"loki_index_\"},\"object_store\":\"filesystem\",\"schema\":\"v13\",\"store\":\"tsdb\"}]},\"storage\":{\"bucketNames\":{\"admin\":\"loki-admin\",\"chunks\":\"loki-chunks\",\"ruler\":\"loki-ruler\"},\"type\":\"filesystem\"}},\"monitoring\":{\"alerts\":{\"enabled\":false},\"dashboards\":{\"enabled\":false},\"lokiCanary\":{\"enabled\":false},\"rules\":{\"enabled\":false},\"selfMonitoring\":{\"enabled\":false},\"serviceMonitor\":{\"enabled\":false}},\"read\":{\"replicas\":0},\"resultsCache\":{\"enabled\":false},\"ruler\":{\"enabled\":false},\"singleBinary\":{\"extraVolumeMounts\":[{\"mountPath\":\"/var/loki\",\"name\":\"data\"}],\"extraVolumes\":[{\"emptyDir\":{},\"name\":\"data\"}],\"persistence\":{\"enabled\":false},\"replicas\":1},\"test\":{\"enabled\":false},\"write\":{\"replicas\":0}}", - "version": "6.28.0" + "annotations": {}, + "generate_name": "", + "generation": 3, + "labels": { + "app": "act-runner" + }, + "name": "act-runner", + "namespace": "gitea", + "resource_version": "8389", + "uid": "032dfc60-d7a6-4982-ab59-e241a0e5a498" } ], - "name": "loki", - "namespace": "monitoring", - "pass_credentials": false, - "postrender": [], - "recreate_pods": false, - "render_subchart_notes": true, - "replace": false, - "repository": "https://grafana.github.io/helm-charts", - "repository_ca_file": null, - "repository_cert_file": null, - "repository_key_file": null, - "repository_password": null, - "repository_username": null, - "reset_values": false, - "reuse_values": false, - "set": [], - "set_list": [], - "set_sensitive": [], - "skip_crds": false, - "status": "deployed", - "timeout": 300, - "upgrade_install": null, - "values": [ - "\"backend\":\n \"replicas\": 0\n\"chunksCache\":\n \"enabled\": false\n\"deploymentMode\": \"SingleBinary\"\n\"gateway\":\n \"basicAuth\":\n \"enabled\": false\n \"enabled\": true\n \"nginxConfig\":\n \"httpSnippet\": \"proxy_set_header X-Scope-OrgID \\\"1\\\";\"\n \"serverSnippet\": \"\"\n\"loki\":\n \"auth_enabled\": false\n \"commonConfig\":\n \"replication_factor\": 1\n \"containerSecurityContext\":\n \"readOnlyRootFilesystem\": false\n \"schemaConfig\":\n \"configs\":\n - \"from\": \"2024-01-01\"\n \"index\":\n \"period\": \"24h\"\n \"prefix\": \"loki_index_\"\n \"object_store\": \"filesystem\"\n \"schema\": \"v13\"\n \"store\": \"tsdb\"\n \"storage\":\n \"bucketNames\":\n \"admin\": \"loki-admin\"\n \"chunks\": \"loki-chunks\"\n \"ruler\": \"loki-ruler\"\n \"type\": \"filesystem\"\n\"monitoring\":\n \"alerts\":\n \"enabled\": false\n \"dashboards\":\n \"enabled\": false\n \"lokiCanary\":\n \"enabled\": false\n \"rules\":\n \"enabled\": false\n \"selfMonitoring\":\n \"enabled\": false\n \"serviceMonitor\":\n \"enabled\": false\n\"read\":\n \"replicas\": 0\n\"resultsCache\":\n \"enabled\": false\n\"ruler\":\n \"enabled\": false\n\"singleBinary\":\n \"extraVolumeMounts\":\n - \"mountPath\": \"/var/loki\"\n \"name\": \"data\"\n \"extraVolumes\":\n - \"emptyDir\": {}\n \"name\": \"data\"\n \"persistence\":\n \"enabled\": false\n \"replicas\": 1\n\"test\":\n \"enabled\": false\n\"write\":\n \"replicas\": 0\n" - ], - "verify": false, - "version": "6.28.0", - "wait": false, - "wait_for_jobs": false - }, - "sensitive_attributes": [ - [ + "spec": [ { - "type": "get_attr", - "value": "repository_password" + "min_ready_seconds": 0, + "paused": false, + "progress_deadline_seconds": 600, + "replicas": "1", + "revision_history_limit": 10, + "selector": [ + { + "match_expressions": [], + "match_labels": { + "app": "act-runner" + } + } + ], + "strategy": [ + { + "rolling_update": [ + { + "max_surge": "25%", + "max_unavailable": "25%" + } + ], + "type": "RollingUpdate" + } + ], + "template": [ + { + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": { + "app": "act-runner" + }, + "name": "", + "namespace": "", + "resource_version": "", + "uid": "" + } + ], + "spec": [ + { + "active_deadline_seconds": 0, + "affinity": [], + "automount_service_account_token": true, + "container": [ + { + "args": [ + "set -e\nif [ ! -f /data/.runner ]; then\n act_runner register \\\n --no-interactive \\\n --instance http://gitea-http.gitea.svc.cluster.local:3000 \\\n --token \"$(cat /etc/runner-token/token)\" \\\n --name \"k3d-runner-$(hostname)\" \\\n --labels ubuntu-latest\nfi\nexec act_runner daemon --config /etc/act-runner/config.yaml\n" + ], + "command": [ + "/bin/sh", + "-c" + ], + "env": [ + { + "name": "DOCKER_HOST", + "value": "tcp://localhost:2375", + "value_from": [] + }, + { + "name": "KUBERNETES_SERVICE_HOST", + "value": "", + "value_from": [ + { + "config_map_key_ref": [], + "field_ref": [ + { + "api_version": "v1", + "field_path": "status.hostIP" + } + ], + "resource_field_ref": [], + "secret_key_ref": [] + } + ] + } + ], + "env_from": [], + "image": "gitea/act_runner:latest", + "image_pull_policy": "Always", + "lifecycle": [], + "liveness_probe": [], + "name": "runner", + "port": [], + "readiness_probe": [], + "resources": [ + { + "limits": { + "cpu": "500m", + "memory": "512Mi" + }, + "requests": { + "cpu": "100m", + "memory": "128Mi" + } + } + ], + "security_context": [], + "startup_probe": [], + "stdin": false, + "stdin_once": false, + "termination_message_path": "/dev/termination-log", + "termination_message_policy": "File", + "tty": false, + "volume_mount": [ + { + "mount_path": "/data", + "mount_propagation": "None", + "name": "runner-data", + "read_only": false, + "sub_path": "" + }, + { + "mount_path": "/etc/act-runner", + "mount_propagation": "None", + "name": "runner-config", + "read_only": false, + "sub_path": "" + }, + { + "mount_path": "/etc/runner-token", + "mount_propagation": "None", + "name": "runner-token", + "read_only": true, + "sub_path": "" + } + ], + "working_dir": "" + }, + { + "args": [ + "--insecure-registry=gitea-http.gitea.svc.cluster.local:3000" + ], + "command": [], + "env": [ + { + "name": "DOCKER_TLS_CERTDIR", + "value": "", + "value_from": [] + } + ], + "env_from": [], + "image": "docker:27-dind", + "image_pull_policy": "IfNotPresent", + "lifecycle": [], + "liveness_probe": [], + "name": "dind", + "port": [], + "readiness_probe": [], + "resources": [ + { + "limits": { + "cpu": "1", + "memory": "1Gi" + }, + "requests": { + "cpu": "200m", + "memory": "256Mi" + } + } + ], + "security_context": [ + { + "allow_privilege_escalation": true, + "capabilities": [], + "privileged": true, + "read_only_root_filesystem": false, + "run_as_group": "", + "run_as_non_root": false, + "run_as_user": "", + "se_linux_options": [], + "seccomp_profile": [] + } + ], + "startup_probe": [], + "stdin": false, + "stdin_once": false, + "termination_message_path": "/dev/termination-log", + "termination_message_policy": "File", + "tty": false, + "volume_mount": [ + { + "mount_path": "/var/lib/docker", + "mount_propagation": "None", + "name": "docker-storage", + "read_only": false, + "sub_path": "" + } + ], + "working_dir": "" + } + ], + "dns_config": [], + "dns_policy": "ClusterFirst", + "enable_service_links": true, + "host_aliases": [], + "host_ipc": false, + "host_network": false, + "host_pid": false, + "hostname": "", + "image_pull_secrets": [], + "init_container": [], + "node_name": "", + "node_selector": {}, + "os": [], + "priority_class_name": "", + "readiness_gate": [], + "restart_policy": "Always", + "runtime_class_name": "", + "scheduler_name": "default-scheduler", + "security_context": [], + "service_account_name": "act-runner", + "share_process_namespace": false, + "subdomain": "", + "termination_grace_period_seconds": 30, + "toleration": [], + "topology_spread_constraint": [], + "volume": [ + { + "aws_elastic_block_store": [], + "azure_disk": [], + "azure_file": [], + "ceph_fs": [], + "cinder": [], + "config_map": [], + "csi": [], + "downward_api": [], + "empty_dir": [ + { + "medium": "", + "size_limit": "" + } + ], + "ephemeral": [], + "fc": [], + "flex_volume": [], + "flocker": [], + "gce_persistent_disk": [], + "git_repo": [], + "glusterfs": [], + "host_path": [], + "iscsi": [], + "local": [], + "name": "runner-data", + "nfs": [], + "persistent_volume_claim": [], + "photon_persistent_disk": [], + "projected": [], + "quobyte": [], + "rbd": [], + "secret": [], + "vsphere_volume": [] + }, + { + "aws_elastic_block_store": [], + "azure_disk": [], + "azure_file": [], + "ceph_fs": [], + "cinder": [], + "config_map": [], + "csi": [], + "downward_api": [], + "empty_dir": [ + { + "medium": "", + "size_limit": "" + } + ], + "ephemeral": [], + "fc": [], + "flex_volume": [], + "flocker": [], + "gce_persistent_disk": [], + "git_repo": [], + "glusterfs": [], + "host_path": [], + "iscsi": [], + "local": [], + "name": "docker-storage", + "nfs": [], + "persistent_volume_claim": [], + "photon_persistent_disk": [], + "projected": [], + "quobyte": [], + "rbd": [], + "secret": [], + "vsphere_volume": [] + }, + { + "aws_elastic_block_store": [], + "azure_disk": [], + "azure_file": [], + "ceph_fs": [], + "cinder": [], + "config_map": [ + { + "default_mode": "0644", + "items": [], + "name": "act-runner-config", + "optional": false + } + ], + "csi": [], + "downward_api": [], + "empty_dir": [], + "ephemeral": [], + "fc": [], + "flex_volume": [], + "flocker": [], + "gce_persistent_disk": [], + "git_repo": [], + "glusterfs": [], + "host_path": [], + "iscsi": [], + "local": [], + "name": "runner-config", + "nfs": [], + "persistent_volume_claim": [], + "photon_persistent_disk": [], + "projected": [], + "quobyte": [], + "rbd": [], + "secret": [], + "vsphere_volume": [] + }, + { + "aws_elastic_block_store": [], + "azure_disk": [], + "azure_file": [], + "ceph_fs": [], + "cinder": [], + "config_map": [], + "csi": [], + "downward_api": [], + "empty_dir": [], + "ephemeral": [], + "fc": [], + "flex_volume": [], + "flocker": [], + "gce_persistent_disk": [], + "git_repo": [], + "glusterfs": [], + "host_path": [], + "iscsi": [], + "local": [], + "name": "runner-token", + "nfs": [], + "persistent_volume_claim": [], + "photon_persistent_disk": [], + "projected": [], + "quobyte": [], + "rbd": [], + "secret": [ + { + "default_mode": "0644", + "items": [], + "optional": false, + "secret_name": "gitea-runner-token" + } + ], + "vsphere_volume": [] + } + ] + } + ] + } + ] } - ] - ], + ], + "timeouts": null, + "wait_for_rollout": true + }, + "sensitive_attributes": [], "identity_schema_version": 0, - "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9", "dependencies": [ - "kubernetes_namespace.domains" + "helm_release.gitea", + "kubernetes_config_map.act_runner", + "kubernetes_namespace.domains", + "kubernetes_secret.gitea_admin", + "kubernetes_secret.gitea_runner_token", + "kubernetes_service_account.act_runner", + "random_password.gitea_admin" ] } ] @@ -273,13 +770,13 @@ "id": "auth", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "auth", - "resource_version": "560", - "uid": "a6f4f18e-ebfa-445d-9021-01e7e3443df5" + "resource_version": "1017", + "uid": "670b6a0a-688f-4bbb-b4e3-7f9473969966" } ], "timeouts": null, @@ -296,13 +793,36 @@ "id": "finance", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "finance", - "resource_version": "558", - "uid": "bb8df1ed-024b-407c-8ded-65ba7d5983af" + "resource_version": "1016", + "uid": "1e21a689-60ab-4df8-900b-ecd1c290c080" + } + ], + "timeouts": null, + "wait_for_default_service_account": false + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiZGVsZXRlIjozMDAwMDAwMDAwMDB9fQ==" + }, + { + "index_key": "gitea", + "schema_version": 0, + "attributes": { + "id": "gitea", + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea", + "resource_version": "7194", + "uid": "e3e765c2-f854-45b3-a31c-3d1c8f3fad9d" } ], "timeouts": null, @@ -319,13 +839,13 @@ "id": "home", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "home", - "resource_version": "561", - "uid": "b79f5a4a-345e-4fa7-9ab2-d4b71a6ac4d7" + "resource_version": "1019", + "uid": "eb214529-86e0-4fa7-a114-99897bb363dd" } ], "timeouts": null, @@ -342,13 +862,13 @@ "id": "infrastructure", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "infrastructure", - "resource_version": "563", - "uid": "9d9e5d6e-47fc-4833-b63e-8cc0d4fdce03" + "resource_version": "1020", + "uid": "55f7c0e1-c753-4f80-96c7-47c439bcb7af" } ], "timeouts": null, @@ -365,13 +885,13 @@ "id": "monitoring", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "monitoring", - "resource_version": "559", - "uid": "bf35e1ff-1a6b-46f9-ae6c-3a67ac42a82e" + "resource_version": "1021", + "uid": "9726d948-a912-43bb-9c06-e5639e946c75" } ], "timeouts": null, @@ -388,13 +908,13 @@ "id": "test", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "test", - "resource_version": "557", - "uid": "d60671b5-4764-4bbb-acd0-bb02c246dcbc" + "resource_version": "1018", + "uid": "3d0d138d-645a-4c06-9db7-1baa5d99ebda" } ], "timeouts": null, @@ -406,6 +926,460 @@ } ] }, + { + "mode": "managed", + "type": "kubernetes_secret", + "name": "finance_api", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + "GOOGLE_CLIENT_ID": "", + "GOOGLE_CLIENT_SECRET": "", + "SESSION_SECRET": "gFT3ZrThIVqNWYYSS9worMFEcGgX4jesnSbxI1AXARoOXnoV" + }, + "id": "finance/finance-api-secrets", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "finance-api-secrets", + "namespace": "finance", + "resource_version": "1034", + "uid": "1de8b814-13e1-4f59-b87a-fad887c34f57" + } + ], + "timeouts": null, + "type": "Opaque", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": "GOOGLE_CLIENT_SECRET", + "type": "string" + } + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": "SESSION_SECRET", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.finance_session_secret" + ] + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_secret", + "name": "gitea_admin", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + "email": "admin@gugagr.xyz", + "password": "rXhgLF11rARoww9v4fqjtZyc", + "username": "admin" + }, + "id": "gitea/gitea-admin", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-admin", + "namespace": "gitea", + "resource_version": "7200", + "uid": "996994da-4982-478a-8b0d-bef29c5ae739" + } + ], + "timeouts": null, + "type": "Opaque", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": "password", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.gitea_admin" + ] + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_secret", + "name": "gitea_registry", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": "auth", + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + ".dockerconfigjson": "{\"auths\":{\"git.gugagr.xyz\":{\"auth\":\"YWRtaW46clhoZ0xGMTFyQVJvd3c5djRmcWp0Wnlj\"}}}" + }, + "id": "auth/gitea-registry", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-registry", + "namespace": "auth", + "resource_version": "7205", + "uid": "a486f580-ad95-4b0e-8289-7fb25075a6c1" + } + ], + "timeouts": null, + "type": "kubernetes.io/dockerconfigjson", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": ".dockerconfigjson", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.gitea_admin" + ] + }, + { + "index_key": "finance", + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + ".dockerconfigjson": "{\"auths\":{\"git.gugagr.xyz\":{\"auth\":\"YWRtaW46clhoZ0xGMTFyQVJvd3c5djRmcWp0Wnlj\"}}}" + }, + "id": "finance/gitea-registry", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-registry", + "namespace": "finance", + "resource_version": "7204", + "uid": "1d2e96e7-c460-417c-95e8-c72952087878" + } + ], + "timeouts": null, + "type": "kubernetes.io/dockerconfigjson", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": ".dockerconfigjson", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.gitea_admin" + ] + }, + { + "index_key": "home", + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + ".dockerconfigjson": "{\"auths\":{\"git.gugagr.xyz\":{\"auth\":\"YWRtaW46clhoZ0xGMTFyQVJvd3c5djRmcWp0Wnlj\"}}}" + }, + "id": "home/gitea-registry", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-registry", + "namespace": "home", + "resource_version": "7202", + "uid": "d4d94392-58b3-4bd0-8567-3ac92ab18c80" + } + ], + "timeouts": null, + "type": "kubernetes.io/dockerconfigjson", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": ".dockerconfigjson", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.gitea_admin" + ] + }, + { + "index_key": "test", + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + ".dockerconfigjson": "{\"auths\":{\"git.gugagr.xyz\":{\"auth\":\"YWRtaW46clhoZ0xGMTFyQVJvd3c5djRmcWp0Wnlj\"}}}" + }, + "id": "test/gitea-registry", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-registry", + "namespace": "test", + "resource_version": "7201", + "uid": "cfe1f65f-2c37-46e1-a226-835c79f316a4" + } + ], + "timeouts": null, + "type": "kubernetes.io/dockerconfigjson", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": ".dockerconfigjson", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.gitea_admin" + ] + } + ] + }, + { + "mode": "managed", + "type": "kubernetes_secret", + "name": "gitea_runner_token", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + "token": "7TukmyYN9tzzZIbuGQjrkWqkKxJW3bmiEJNFF8py" + }, + "id": "gitea/gitea-runner-token", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "gitea-runner-token", + "namespace": "gitea", + "resource_version": "7601", + "uid": "359e93d0-402c-409f-8ae8-4317d2c131e0" + } + ], + "timeouts": null, + "type": "Opaque", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains" + ] + } + ] + }, { "mode": "managed", "type": "kubernetes_secret", @@ -418,21 +1392,21 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_INITDB_ROOT_PASSWORD": "CQeYgJN3AXl9Kpx15zmwkArd", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_INITDB_ROOT_PASSWORD": "ocKfskjL7WA09UCPRGl3MHWJ", + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "infrastructure/mongodb", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb", "namespace": "infrastructure", - "resource_version": "580", - "uid": "57167d70-7714-4c9e-ba80-333c83e483a9" + "resource_version": "1036", + "uid": "a0287df7-0714-4373-94c3-67ef2131d7e8" } ], "timeouts": null, @@ -501,20 +1475,20 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "auth/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "auth", - "resource_version": "586", - "uid": "77fdd3c5-50ed-41f4-916c-3625cbbe244c" + "resource_version": "1035", + "uid": "57d2ac8d-4d5f-4a64-a858-a50da777c6b8" } ], "timeouts": null, @@ -562,20 +1536,81 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "finance/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "finance", - "resource_version": "587", - "uid": "def8ec73-bb14-475b-b26e-e3ae7146fe0a" + "resource_version": "1042", + "uid": "5fb4efc9-93fc-4939-b4d7-3cf28d7c4904" + } + ], + "timeouts": null, + "type": "Opaque", + "wait_for_service_account_token": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "binary_data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + } + ], + [ + { + "type": "get_attr", + "value": "data" + }, + { + "type": "index", + "value": { + "value": "MONGO_URI", + "type": "string" + } + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains", + "random_password.mongodb" + ] + }, + { + "index_key": "gitea", + "schema_version": 0, + "attributes": { + "binary_data": null, + "data": { + "MONGO_DB": "homelab", + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" + }, + "id": "gitea/mongodb-shared-config", + "immutable": false, + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "mongodb-shared-config", + "namespace": "gitea", + "resource_version": "7198", + "uid": "259d987a-9f8b-4693-a417-696c5870f3e0" } ], "timeouts": null, @@ -623,20 +1658,20 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "home/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "home", - "resource_version": "578", - "uid": "f8fb372f-98e4-4a59-9e40-ae4dd8424bc0" + "resource_version": "1040", + "uid": "475b4bb1-4e3b-47fc-b05e-803a03d5900e" } ], "timeouts": null, @@ -684,20 +1719,20 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "infrastructure/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "infrastructure", - "resource_version": "577", - "uid": "f7604981-db0a-4ef0-b8ff-c633cd107b7a" + "resource_version": "1039", + "uid": "74408f17-33d9-4573-ab69-86d6936711e6" } ], "timeouts": null, @@ -745,20 +1780,20 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "monitoring/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "monitoring", - "resource_version": "576", - "uid": "72b10323-8251-4188-b980-456c4066abe8" + "resource_version": "1038", + "uid": "97cf0b8e-6df4-4779-b717-c801e71c469a" } ], "timeouts": null, @@ -806,20 +1841,20 @@ "binary_data": null, "data": { "MONGO_DB": "homelab", - "MONGO_URI": "mongodb://root:CQeYgJN3AXl9Kpx15zmwkArd@mongodb.infrastructure.svc:27017" + "MONGO_URI": "mongodb://root:ocKfskjL7WA09UCPRGl3MHWJ@mongodb.infrastructure.svc:27017" }, "id": "test/mongodb-shared-config", "immutable": false, "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb-shared-config", "namespace": "test", - "resource_version": "575", - "uid": "fc743768-ceee-4e2b-afb9-9edb671668a8" + "resource_version": "1037", + "uid": "09ec8244-fa43-45a0-919e-9e7236533217" } ], "timeouts": null, @@ -874,24 +1909,24 @@ "id": "infrastructure/mongodb", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, - "labels": null, + "labels": {}, "name": "mongodb", "namespace": "infrastructure", - "resource_version": "582", - "uid": "f555214a-ead6-4e93-9d9a-a2b522d71e24" + "resource_version": "1043", + "uid": "161741b1-eb05-498b-b565-b96c42eee390" } ], "spec": [ { "allocate_load_balancer_node_ports": true, - "cluster_ip": "10.43.171.195", + "cluster_ip": "10.43.243.100", "cluster_ips": [ - "10.43.171.195" + "10.43.243.100" ], - "external_ips": null, + "external_ips": [], "external_name": "", "external_traffic_policy": "", "health_check_node_port": 0, @@ -902,7 +1937,7 @@ "ip_family_policy": "SingleStack", "load_balancer_class": "", "load_balancer_ip": "", - "load_balancer_source_ranges": null, + "load_balancer_source_ranges": [], "port": [ { "app_protocol": "", @@ -943,6 +1978,44 @@ } ] }, + { + "mode": "managed", + "type": "kubernetes_service_account", + "name": "act_runner", + "provider": "provider[\"registry.terraform.io/hashicorp/kubernetes\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "automount_service_account_token": true, + "default_secret_name": "", + "id": "gitea/act-runner", + "image_pull_secret": [], + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "act-runner", + "namespace": "gitea", + "resource_version": "7199", + "uid": "de58e93c-9d6f-4935-ad87-4f349f98a7d2" + } + ], + "secret": [], + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMH19", + "dependencies": [ + "kubernetes_namespace.domains" + ] + } + ] + }, { "mode": "managed", "type": "kubernetes_stateful_set", @@ -955,14 +2028,14 @@ "id": "infrastructure/mongodb", "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", - "generation": 1, - "labels": null, + "generation": 5, + "labels": {}, "name": "mongodb", "namespace": "infrastructure", - "resource_version": "588", - "uid": "7e5f61fe-b6a1-457e-8db3-cbb13c0f671a" + "resource_version": "9081", + "uid": "33b482cf-e114-442b-87e9-12164c9e0218" } ], "spec": [ @@ -990,7 +2063,7 @@ { "metadata": [ { - "annotations": null, + "annotations": {}, "generate_name": "", "generation": 0, "labels": { @@ -1009,8 +2082,8 @@ "automount_service_account_token": true, "container": [ { - "args": null, - "command": null, + "args": [], + "command": [], "env": [ { "name": "MONGO_INITDB_ROOT_USERNAME", @@ -1042,7 +2115,7 @@ } ], "env_from": [], - "image": "mongo:8", + "image": "mongo:8.0", "image_pull_policy": "IfNotPresent", "lifecycle": [], "liveness_probe": [], @@ -1076,7 +2149,15 @@ "termination_message_path": "/dev/termination-log", "termination_message_policy": "File", "tty": false, - "volume_mount": [], + "volume_mount": [ + { + "mount_path": "/data/db", + "mount_propagation": "None", + "name": "mongodb-data", + "read_only": false, + "sub_path": "" + } + ], "working_dir": "" } ], @@ -1091,7 +2172,7 @@ "image_pull_secrets": [], "init_container": [], "node_name": "", - "node_selector": null, + "node_selector": {}, "os": [], "priority_class_name": "", "readiness_gate": [], @@ -1111,7 +2192,41 @@ } ], "update_strategy": [], - "volume_claim_template": [] + "volume_claim_template": [ + { + "metadata": [ + { + "annotations": {}, + "generate_name": "", + "generation": 0, + "labels": {}, + "name": "mongodb-data", + "namespace": "default", + "resource_version": "", + "uid": "" + } + ], + "spec": [ + { + "access_modes": [ + "ReadWriteOnce" + ], + "resources": [ + { + "limits": {}, + "requests": { + "storage": "5Gi" + } + } + ], + "selector": [], + "storage_class_name": "local-path", + "volume_mode": "Filesystem", + "volume_name": "" + } + ] + } + ] } ], "timeouts": null, @@ -1132,13 +2247,57 @@ { "mode": "managed", "type": "random_password", - "name": "grafana", + "name": "finance_session_secret", "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", "instances": [ { "schema_version": 3, "attributes": { - "bcrypt_hash": "$2a$10$gtPbohVnFQk0/9B59snVXuDUad.55.IBqXmpGWPlvSSeUfbyINf4G", + "bcrypt_hash": "$2a$10$3GIBRm/7NA9yzVPoUS8kyuuEtV2BHaQwAslZ6hXMo8h6W08zBas0G", + "id": "none", + "keepers": null, + "length": 48, + "lower": true, + "min_lower": 0, + "min_numeric": 0, + "min_special": 0, + "min_upper": 0, + "number": true, + "numeric": true, + "override_special": null, + "result": "gFT3ZrThIVqNWYYSS9worMFEcGgX4jesnSbxI1AXARoOXnoV", + "special": false, + "upper": true + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "bcrypt_hash" + } + ], + [ + { + "type": "get_attr", + "value": "result" + } + ] + ], + "identity_schema_version": 0 + } + ] + }, + { + "mode": "managed", + "type": "random_password", + "name": "gitea_admin", + "provider": "provider[\"registry.terraform.io/hashicorp/random\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 3, + "attributes": { + "bcrypt_hash": "$2a$10$qGmz/uJh4HPuNWNdaadiW.2aakUvnhsi2FtUbw6ZPatm85VsgXqDi", "id": "none", "keepers": null, "length": 24, @@ -1150,7 +2309,7 @@ "number": true, "numeric": true, "override_special": null, - "result": "jXWfhChbpD6QEDK2wLXbLHy7", + "result": "rXhgLF11rARoww9v4fqjtZyc", "special": false, "upper": true }, @@ -1181,7 +2340,7 @@ { "schema_version": 3, "attributes": { - "bcrypt_hash": "$2a$10$CNBRlYZKIyKStfctvc1feuLMLE5wV9BKUEXkB5QbP4FkbEtw0vn3y", + "bcrypt_hash": "$2a$10$SQEBe5KRO8Q89.Lxsi06auGAZXx0Pg1r7AWikGGPTe/bzN3mTaWai", "id": "none", "keepers": null, "length": 24, @@ -1193,7 +2352,7 @@ "number": true, "numeric": true, "override_special": null, - "result": "CQeYgJN3AXl9Kpx15zmwkArd", + "result": "ocKfskjL7WA09UCPRGl3MHWJ", "special": false, "upper": true }, @@ -1214,6 +2373,43 @@ "identity_schema_version": 0 } ] + }, + { + "mode": "managed", + "type": "terraform_data", + "name": "gitea_runner_registration", + "provider": "provider[\"terraform.io/builtin/terraform\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "id": "6a71f4a6-c0a1-b3a2-4b17-75c0f103363c", + "input": null, + "output": null, + "triggers_replace": { + "value": [ + "none" + ], + "type": [ + "tuple", + [ + "string" + ] + ] + } + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "dependencies": [ + "helm_release.gitea", + "kubernetes_namespace.domains", + "kubernetes_secret.gitea_admin", + "kubernetes_secret.gitea_runner_token", + "random_password.gitea_admin" + ] + } + ] } ], "check_results": null