diff --git a/docs/evidence/2026-10-15-coulombcore-retirement/host-inventory.json b/docs/evidence/2026-10-15-coulombcore-retirement/host-inventory.json new file mode 100644 index 0000000..4a2ce2a --- /dev/null +++ b/docs/evidence/2026-10-15-coulombcore-retirement/host-inventory.json @@ -0,0 +1,748 @@ +{ + "observed_at": "2026-10-15T19:50:58.548585+00:00", + "hostname": "254.130.205.92.host.secureserver.net", + "kernel_boot_id": "9425bab9-ab7d-4498-ab8f-f88bc2dfa397", + "read_only": true, + "kubernetes_api_used": false, + "k3s_is-active": "active", + "k3s_is-enabled": "enabled", + "containers": [ + { + "name": "gitea", + "state": "CONTAINER_EXITED", + "image": "sha256:a954c5611762e6b0ad8bb80e5e97e364deb8617f0d62ac3ff3c207bf6d4c2ff7", + "namespace": "default", + "pod_name": "gitea-7bcc4b556f-t7nmt" + }, + { + "name": "valkey", + "state": "CONTAINER_RUNNING", + "image": "sha256:1979c69199f274165eed9217dce813ea67771f1b68ff242cbe72f4d2607a9163", + "namespace": "platform", + "pod_name": "valkey-primary-0" + }, + { + "name": "valkey", + "state": "CONTAINER_EXITED", + "image": "sha256:1979c69199f274165eed9217dce813ea67771f1b68ff242cbe72f4d2607a9163", + "namespace": "platform", + "pod_name": "valkey-primary-0" + }, + { + "name": "manager", + "state": "CONTAINER_RUNNING", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "cnpg-system", + "pod_name": "cnpg-cloudnative-pg-788f8bddc5-w54rh" + }, + { + "name": "cert-manager-cainjector", + "state": "CONTAINER_RUNNING", + "image": "sha256:c9dc06fbdcc157c93c6dd47dd90513900f891844366b78c123742a18d9c0ec7e", + "namespace": "cert-manager", + "pod_name": "cert-manager-cainjector-74884c5758-qz4cg" + }, + { + "name": "cert-manager-controller", + "state": "CONTAINER_RUNNING", + "image": "sha256:0b9b5651e43cf33b460d46bba7ef179ec42f90d61cebf24ad8076252f5886177", + "namespace": "cert-manager", + "pod_name": "cert-manager-5c8d8df67d-5wpt7" + }, + { + "name": "issue-core", + "state": "CONTAINER_RUNNING", + "image": "sha256:645de5921046d1b642c70271ec8af788c0296492f9768b09866ae6133a85128d", + "namespace": "issue-core", + "pod_name": "issue-core-5f9f7cf5b8-p2kz5" + }, + { + "name": "metrics-server", + "state": "CONTAINER_RUNNING", + "image": "sha256:b9a5a1927366a21e45606fe303f1d287adcb1e09d1be13dd44bdb4cf29146c86", + "namespace": "kube-system", + "pod_name": "metrics-server-557ff575fb-t74l4" + }, + { + "name": "cert-manager-webhook", + "state": "CONTAINER_RUNNING", + "image": "sha256:8f2c78201d80e51ee0849eb2df1f5d0be9fb2dff53b03cde78fa3dec0601c4f8", + "namespace": "cert-manager", + "pod_name": "cert-manager-webhook-5c8d5b47b9-7zm8j" + }, + { + "name": "manager", + "state": "CONTAINER_EXITED", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "cnpg-system", + "pod_name": "cnpg-cloudnative-pg-788f8bddc5-w54rh" + }, + { + "name": "metrics-server", + "state": "CONTAINER_EXITED", + "image": "sha256:b9a5a1927366a21e45606fe303f1d287adcb1e09d1be13dd44bdb4cf29146c86", + "namespace": "kube-system", + "pod_name": "metrics-server-557ff575fb-t74l4" + }, + { + "name": "coredns", + "state": "CONTAINER_RUNNING", + "image": "sha256:ead0a4a53df89fd173874b46093b6e62d8c72967bbf606d672c9e8c9b601a4fc", + "namespace": "kube-system", + "pod_name": "coredns-576bfc4dc7-cz4ct" + }, + { + "name": "postgres", + "state": "CONTAINER_RUNNING", + "image": "sha256:97cc6dd2f2a245523aed4399c31f933a802233ae48b9edb7771c4478fa6874fd", + "namespace": "databases", + "pod_name": "gitea-db-1" + }, + { + "name": "postgres", + "state": "CONTAINER_RUNNING", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "state-hub-db-1" + }, + { + "name": "cert-manager-cainjector", + "state": "CONTAINER_EXITED", + "image": "sha256:c9dc06fbdcc157c93c6dd47dd90513900f891844366b78c123742a18d9c0ec7e", + "namespace": "cert-manager", + "pod_name": "cert-manager-cainjector-74884c5758-qz4cg" + }, + { + "name": "cert-manager-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:0b9b5651e43cf33b460d46bba7ef179ec42f90d61cebf24ad8076252f5886177", + "namespace": "cert-manager", + "pod_name": "cert-manager-5c8d8df67d-5wpt7" + }, + { + "name": "postgres", + "state": "CONTAINER_RUNNING", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "apps-pg-1" + }, + { + "name": "coredns", + "state": "CONTAINER_EXITED", + "image": "sha256:ead0a4a53df89fd173874b46093b6e62d8c72967bbf606d672c9e8c9b601a4fc", + "namespace": "kube-system", + "pod_name": "coredns-576bfc4dc7-cz4ct" + }, + { + "name": "postgres", + "state": "CONTAINER_RUNNING", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "net-kingdom-pg-1" + }, + { + "name": "issue-core", + "state": "CONTAINER_EXITED", + "image": "sha256:645de5921046d1b642c70271ec8af788c0296492f9768b09866ae6133a85128d", + "namespace": "issue-core", + "pod_name": "issue-core-5f9f7cf5b8-p2kz5" + }, + { + "name": "argocd-notifications-controller", + "state": "CONTAINER_RUNNING", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-notifications-controller-7d797bf45b-k8kbz" + }, + { + "name": "traefik", + "state": "CONTAINER_RUNNING", + "image": "sha256:ee69e8120b64a420b5deca1cf46db0e4188ef76c7807a45c0f26d8a5ac2ab2bd", + "namespace": "kube-system", + "pod_name": "traefik-7dfc797d77-24z2c" + }, + { + "name": "postgres", + "state": "CONTAINER_EXITED", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "apps-pg-1" + }, + { + "name": "argocd-notifications-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-notifications-controller-7d797bf45b-k8kbz" + }, + { + "name": "postgres", + "state": "CONTAINER_EXITED", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "state-hub-db-1" + }, + { + "name": "traefik", + "state": "CONTAINER_EXITED", + "image": "sha256:ee69e8120b64a420b5deca1cf46db0e4188ef76c7807a45c0f26d8a5ac2ab2bd", + "namespace": "kube-system", + "pod_name": "traefik-7dfc797d77-24z2c" + }, + { + "name": "postgres", + "state": "CONTAINER_EXITED", + "image": "sha256:97cc6dd2f2a245523aed4399c31f933a802233ae48b9edb7771c4478fa6874fd", + "namespace": "databases", + "pod_name": "gitea-db-1" + }, + { + "name": "postgres", + "state": "CONTAINER_EXITED", + "image": "sha256:289ae64c71657162c4605bceed6b8747e490c11693ccd14a17ce205f72830aa5", + "namespace": "databases", + "pod_name": "net-kingdom-pg-1" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-state-hub-db-29802405-nqmps" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-net-kingdom-pg-29802400-fp9q4" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-gitea-db-29802395-wh6k7" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-apps-pg-29802390-mls7b" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-state-hub-db-29800965-vjzrz" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-net-kingdom-pg-29800960-49dcg" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-gitea-db-29800955-5dzgc" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-apps-pg-29800950-w2cs2" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-state-hub-db-29799525-jrqx4" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-net-kingdom-pg-29799520-jtglc" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-gitea-db-29799515-k9zn6" + }, + { + "name": "backup", + "state": "CONTAINER_EXITED", + "image": "sha256:7da87ad7c61415ec40f850cfabfa6a832671b8bcfd48e2e9f0f224d095f724f8", + "namespace": "databases", + "pod_name": "cnpg-logical-backup-apps-pg-29799510-zbbqz" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "openbao", + "pod_name": "cm-acme-http-solver-df6qj" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "sso", + "pod_name": "cm-acme-http-solver-mv45x" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "sso", + "pod_name": "cm-acme-http-solver-2t6vj" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "mfa", + "pod_name": "cm-acme-http-solver-z5dp2" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "mfa", + "pod_name": "cm-acme-http-solver-9g6xc" + }, + { + "name": "acmesolver", + "state": "CONTAINER_RUNNING", + "image": "sha256:5fe86218f8a3ed5d0cbacaa195fc68f88b372a677ec45eb93699f8e074f31dcb", + "namespace": "sso", + "pod_name": "cm-acme-http-solver-2wnp8" + }, + { + "name": "state-hub", + "state": "CONTAINER_RUNNING", + "image": "sha256:f127e3207b1d8670787a394f7ae0fa05d2420f24a718197c145dc3b9bce30aeb", + "namespace": "state-hub", + "pod_name": "state-hub-7d67bd4d9b-h9qsl" + }, + { + "name": "app", + "state": "CONTAINER_RUNNING", + "image": "sha256:38df47905a3eca0e66e2be8ab718f3d590d5e3d78cbe5f3ad73f7cdbdb6abfeb", + "namespace": "vergabe-teilnahme", + "pod_name": "vergabe-teilnahme-5c6697b564-jk684" + }, + { + "name": "configure-gitea", + "state": "CONTAINER_EXITED", + "image": "sha256:a954c5611762e6b0ad8bb80e5e97e364deb8617f0d62ac3ff3c207bf6d4c2ff7", + "namespace": "default", + "pod_name": "gitea-7bcc4b556f-t7nmt" + }, + { + "name": "init-app-ini", + "state": "CONTAINER_EXITED", + "image": "sha256:a954c5611762e6b0ad8bb80e5e97e364deb8617f0d62ac3ff3c207bf6d4c2ff7", + "namespace": "default", + "pod_name": "gitea-7bcc4b556f-t7nmt" + }, + { + "name": "init-directories", + "state": "CONTAINER_EXITED", + "image": "sha256:a954c5611762e6b0ad8bb80e5e97e364deb8617f0d62ac3ff3c207bf6d4c2ff7", + "namespace": "default", + "pod_name": "gitea-7bcc4b556f-t7nmt" + }, + { + "name": "migrate", + "state": "CONTAINER_EXITED", + "image": "sha256:f062a76673e425b476fa875fc485b1b2bfb083651283123fde468396395bb942", + "namespace": "core-hub", + "pod_name": "core-hub-prod-migrate-gf7x8" + }, + { + "name": "migrate", + "state": "CONTAINER_EXITED", + "image": "sha256:c2738bf770d3b078cc0a3f057f842a9a68fa09d4b39a5901cc7ba87571b51257", + "namespace": "core-hub-staging", + "pod_name": "core-hub-staging-migrate-jqrkb" + }, + { + "name": "webhook", + "state": "CONTAINER_RUNNING", + "image": "sha256:93fc198aa9fc7f5f9fe4e234cb63700bebe7a91a23d2cfad4e1d01b63dd9e85d", + "namespace": "external-secrets", + "pod_name": "external-secrets-webhook-7647fdfdf7-blzqt" + }, + { + "name": "external-secrets", + "state": "CONTAINER_RUNNING", + "image": "sha256:93fc198aa9fc7f5f9fe4e234cb63700bebe7a91a23d2cfad4e1d01b63dd9e85d", + "namespace": "external-secrets", + "pod_name": "external-secrets-687fdcf67d-h5jkb" + }, + { + "name": "cert-controller", + "state": "CONTAINER_RUNNING", + "image": "sha256:93fc198aa9fc7f5f9fe4e234cb63700bebe7a91a23d2cfad4e1d01b63dd9e85d", + "namespace": "external-secrets", + "pod_name": "external-secrets-cert-controller-697598469f-q9x7c" + }, + { + "name": "bootstrap-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "databases", + "pod_name": "state-hub-db-1" + }, + { + "name": "bootstrap-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "databases", + "pod_name": "apps-pg-1" + }, + { + "name": "redis", + "state": "CONTAINER_RUNNING", + "image": "sha256:04bec005426e7e601aa34c3125553c6ac19f9dce12b1dc145e3ee3a6a241bedc", + "namespace": "argocd", + "pod_name": "argocd-redis-74b74f9968-ktgzb" + }, + { + "name": "argocd-repo-server", + "state": "CONTAINER_RUNNING", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-repo-server-7c96dfd669-qt8sc" + }, + { + "name": "dex", + "state": "CONTAINER_RUNNING", + "image": "sha256:b0f57f57d69a480c94494c8bdc724c949cea9450c3ade28ee244dbb887503bfd", + "namespace": "argocd", + "pod_name": "argocd-dex-server-bc97497c6-4hbrr" + }, + { + "name": "local-path-provisioner", + "state": "CONTAINER_RUNNING", + "image": "sha256:5d221316a3c61ec58a825874190584dc430442c07439a0adba5cba5aabeb2e0c", + "namespace": "kube-system", + "pod_name": "local-path-provisioner-6795b5f9d8-2f6j2" + }, + { + "name": "argocd-applicationset-controller", + "state": "CONTAINER_RUNNING", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-applicationset-controller-957474ff5-8qvv4" + }, + { + "name": "nginx-chart", + "state": "CONTAINER_RUNNING", + "image": "sha256:ad5708199ec7d169c6837fe46e1646603d0f7d0a0f54d3cd8d07bc1c818d0224", + "namespace": "default", + "pod_name": "nginx-64c46b8b74-ds4lk" + }, + { + "name": "copyutil", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-dex-server-bc97497c6-4hbrr" + }, + { + "name": "bootstrap-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "databases", + "pod_name": "net-kingdom-pg-1" + }, + { + "name": "argocd-application-controller", + "state": "CONTAINER_RUNNING", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-application-controller-0" + }, + { + "name": "bootstrap-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:c6f5fe05d06fdbb9e613d9b8990a43b54cde9203e3d41a88384d6695c2880ba9", + "namespace": "databases", + "pod_name": "gitea-db-1" + }, + { + "name": "lb-tcp-443", + "state": "CONTAINER_RUNNING", + "image": "sha256:edc812b8e25d0d88aa432de0de448105615e068653db0098f1ab3605fc87530e", + "namespace": "kube-system", + "pod_name": "svclb-traefik-2d63353f-h4wsf" + }, + { + "name": "argocd-server", + "state": "CONTAINER_RUNNING", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-server-5b8bb8cd8c-68zjh" + }, + { + "name": "secret-init", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-redis-74b74f9968-ktgzb" + }, + { + "name": "lb-tcp-80", + "state": "CONTAINER_RUNNING", + "image": "sha256:edc812b8e25d0d88aa432de0de448105615e068653db0098f1ab3605fc87530e", + "namespace": "kube-system", + "pod_name": "svclb-traefik-2d63353f-h4wsf" + }, + { + "name": "copyutil", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-repo-server-7c96dfd669-qt8sc" + }, + { + "name": "local-path-provisioner", + "state": "CONTAINER_EXITED", + "image": "sha256:5d221316a3c61ec58a825874190584dc430442c07439a0adba5cba5aabeb2e0c", + "namespace": "kube-system", + "pod_name": "local-path-provisioner-6795b5f9d8-2f6j2" + }, + { + "name": "argocd-server", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-server-5b8bb8cd8c-68zjh" + }, + { + "name": "redis", + "state": "CONTAINER_EXITED", + "image": "sha256:04bec005426e7e601aa34c3125553c6ac19f9dce12b1dc145e3ee3a6a241bedc", + "namespace": "argocd", + "pod_name": "argocd-redis-74b74f9968-ktgzb" + }, + { + "name": "dex", + "state": "CONTAINER_EXITED", + "image": "sha256:b0f57f57d69a480c94494c8bdc724c949cea9450c3ade28ee244dbb887503bfd", + "namespace": "argocd", + "pod_name": "argocd-dex-server-bc97497c6-4hbrr" + }, + { + "name": "argocd-repo-server", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-repo-server-7c96dfd669-qt8sc" + }, + { + "name": "lb-tcp-443", + "state": "CONTAINER_EXITED", + "image": "sha256:edc812b8e25d0d88aa432de0de448105615e068653db0098f1ab3605fc87530e", + "namespace": "kube-system", + "pod_name": "svclb-traefik-2d63353f-h4wsf" + }, + { + "name": "lb-tcp-80", + "state": "CONTAINER_EXITED", + "image": "sha256:edc812b8e25d0d88aa432de0de448105615e068653db0098f1ab3605fc87530e", + "namespace": "kube-system", + "pod_name": "svclb-traefik-2d63353f-h4wsf" + }, + { + "name": "argocd-application-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-application-controller-0" + }, + { + "name": "argocd-applicationset-controller", + "state": "CONTAINER_EXITED", + "image": "sha256:e36c04c4f5c259e2943ecdecf5be48863e937ab3c8a3f081f02e8c070bd32abb", + "namespace": "argocd", + "pod_name": "argocd-applicationset-controller-957474ff5-8qvv4" + }, + { + "name": "nginx-chart", + "state": "CONTAINER_EXITED", + "image": "sha256:ad5708199ec7d169c6837fe46e1646603d0f7d0a0f54d3cd8d07bc1c818d0224", + "namespace": "default", + "pod_name": "nginx-64c46b8b74-ds4lk" + }, + { + "name": "helm", + "state": "CONTAINER_EXITED", + "image": "sha256:0c1204a22f1327aaf550fa4c9ba2f9bfd8935d60aeaa3b29dfe3a41833b2c0a0", + "namespace": "kube-system", + "pod_name": "helm-install-traefik-mkc2v" + }, + { + "name": "helm", + "state": "CONTAINER_EXITED", + "image": "sha256:0c1204a22f1327aaf550fa4c9ba2f9bfd8935d60aeaa3b29dfe3a41833b2c0a0", + "namespace": "kube-system", + "pod_name": "helm-install-traefik-crd-dkz96" + } + ], + "retained_paths": { + "/var/lib/rancher/k3s": { + "exists": true, + "immediate_entries": [ + "agent", + "data", + "server", + "storage" + ] + }, + "/var/lib/rancher/k3s/storage": { + "exists": true, + "immediate_entries": [ + "pvc-12b336a6-9c90-4541-9d39-40e042647886_default_data-gitea-postgresql-ha-postgresql-1", + "pvc-19ba4223-0e20-4f10-b905-f103d76560c5_platform_valkey-data-valkey-primary-0", + "pvc-21adfcf5-1535-466e-99fc-6ef8d04368d3_mfa_privacyidea-data", + "pvc-32cbcadc-9313-48f3-b14f-f7d6e4db6d4c_default_data-gitea-postgresql-ha-postgresql-2", + "pvc-57399a42-2b0d-4c98-9d4c-75994e34d999_databases_gitea-db-1", + "pvc-63afcc91-b575-41f4-954d-1a490df26e45_default_valkey-data-gitea-valkey-cluster-1", + "pvc-753825f9-525b-4f8d-9770-c292c89930bb_openbao_data-openbao-0", + "pvc-8d5bfaf7-e825-4d8e-a9cf-7c414f5192e0_databases_state-hub-db-1", + "pvc-93fdd304-36e9-4346-8df7-17e631a145e7_default_gitea-shared-storage", + "pvc-a142f6f4-aabf-4c52-a789-f4e89a10383b_sso_authelia-data", + "pvc-a43a03fc-1576-45a8-a3ae-d75167547c56_default_valkey-data-gitea-valkey-cluster-0", + "pvc-ac8d2ef7-7614-487d-9ea9-1bee9bf981c1_mfa_privacyidea-logs", + "pvc-bd6fd14a-887a-4cdc-a643-9acb52128065_default_data-gitea-postgresql-ha-postgresql-0", + "pvc-ccc8ce01-e0d6-4f24-a92c-8166cc812c9d_default_valkey-data-gitea-valkey-cluster-2", + "pvc-e5639d83-6cc4-49f6-941b-abfa6c0435fd_databases_net-kingdom-pg-1", + "pvc-f671130f-0674-453a-9515-50c5a5e97c42_openbao_audit-openbao-0", + "pvc-f9b60905-7c9e-4663-ba02-89fe705bc75b_sso_lldap-data", + "pvc-fe282a16-9b8f-401b-8990-ad5db634a51b_databases_apps-pg-1" + ] + }, + "/var/lib/rancher/k3s/server/manifests": { + "exists": true, + "immediate_entries": [ + "ccm.yaml", + "coredns.yaml", + "local-storage.yaml", + "metrics-server", + "rolebindings.yaml", + "runtimes.yaml", + "traefik.yaml" + ] + }, + "/etc/rancher/k3s": { + "exists": true, + "immediate_entries": [ + "k3s.yaml", + "registries.yaml" + ] + }, + "/opt": { + "exists": true, + "immediate_entries": [ + "ai-bolit", + "alt", + "app-version-detector", + "backup", + "cloudlinux", + "fortimonitor", + "imunify360", + "nydus", + "plesk", + "psa", + "rustbolit" + ] + }, + "/srv": { + "exists": true, + "immediate_entries": [] + } + }, + "block_device_metadata": { + "blockdevices": [ + { + "name": "sda", + "type": "disk", + "size": "100G", + "fstype": null, + "mountpoints": [ + null + ], + "children": [ + { + "name": "sda1", + "type": "part", + "size": "99G", + "fstype": "ext4", + "mountpoints": [ + "/var/lib/kubelet/pods/125d781f-f9ce-4634-a10a-7dd2d5bc149e/volumes/kubernetes.io~local-volume/pvc-93fdd304-36e9-4346-8df7-17e631a145e7", + "/var/lib/kubelet/pods/ff7de0f4-7d33-4f08-96f0-9ef477183bb9/volumes/kubernetes.io~local-volume/pvc-8d5bfaf7-e825-4d8e-a9cf-7c414f5192e0", + "/var/lib/kubelet/pods/91018a00-852f-4690-9558-a7c7702b826c/volumes/kubernetes.io~local-volume/pvc-fe282a16-9b8f-401b-8990-ad5db634a51b", + "/var/lib/kubelet/pods/16c5b064-0742-4840-92d3-364dc7ff09f6/volume-subpaths/empty-dir/valkey/6", + "/var/lib/kubelet/pods/16c5b064-0742-4840-92d3-364dc7ff09f6/volume-subpaths/empty-dir/valkey/5", + "/var/lib/kubelet/pods/16c5b064-0742-4840-92d3-364dc7ff09f6/volumes/kubernetes.io~local-volume/pvc-19ba4223-0e20-4f10-b905-f103d76560c5", + "/var/lib/kubelet/pods/39eedd83-5366-4f86-8d24-1eed2a718785/volumes/kubernetes.io~local-volume/pvc-57399a42-2b0d-4c98-9d4c-75994e34d999", + "/var/lib/kubelet/pods/91abdde3-4d6c-4bdd-a0d2-c2500614a8b8/volumes/kubernetes.io~local-volume/pvc-e5639d83-6cc4-49f6-941b-abfa6c0435fd", + "/" + ] + }, + { + "name": "sda14", + "type": "part", + "size": "4M", + "fstype": null, + "mountpoints": [ + null + ] + }, + { + "name": "sda15", + "type": "part", + "size": "106M", + "fstype": "vfat", + "mountpoints": [ + "/boot/efi" + ] + }, + { + "name": "sda16", + "type": "part", + "size": "913M", + "fstype": "ext4", + "mountpoints": [ + "/boot" + ] + } + ] + }, + { + "name": "sr0", + "type": "rom", + "size": "734K", + "fstype": "iso9660", + "mountpoints": [ + null + ] + } + ] + }, + "legacy_api_certificate_not_after": "notAfter=Aug 31 16:50:46 2026 GMT" +} diff --git a/docs/evidence/2026-10-15-coulombcore-retirement/independent-backup-metadata.json b/docs/evidence/2026-10-15-coulombcore-retirement/independent-backup-metadata.json new file mode 100644 index 0000000..969cfd7 --- /dev/null +++ b/docs/evidence/2026-10-15-coulombcore-retirement/independent-backup-metadata.json @@ -0,0 +1,58 @@ +{ + "observed_at": "2026-10-15T19:54:15.471060+00:00", + "host": "railiance01", + "root_exists": true, + "encrypted_files": [ + { + "path": "2026-07-28T0925Z-pre-migration-destination/lldap-users.db.age", + "size": 139496, + "mode": "0o600" + }, + { + "path": "2026-07-28T0925Z-pre-migration-destination/interhub.dump.age", + "size": 206428, + "mode": "0o600" + }, + { + "path": "2026-07-28T0925Z-pre-migration-destination/privacyidea-db.dump.age", + "size": 189732, + "mode": "0o600" + }, + { + "path": "2026-07-28T0925Z-pre-migration-destination/privacyidea-custody.tar.age", + "size": 6856, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/net-kingdom-pg.sql.age", + "size": 439220, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/kubernetes-identity-resources.yaml.age", + "size": 115196, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/lldap.db.age", + "size": 139496, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/privacyidea-custody.tar.age", + "size": 8904, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/identity-manifests.yaml.age", + "size": 54250, + "mode": "0o600" + }, + { + "path": "coulombcore/2026-07-28T0100Z/authelia.db.age", + "size": 778616, + "mode": "0o600" + } + ], + "credential_or_decrypted_contents_read": false +} diff --git a/docs/evidence/2026-10-15-coulombcore-retirement/public-identity-paths.json b/docs/evidence/2026-10-15-coulombcore-retirement/public-identity-paths.json new file mode 100644 index 0000000..6068277 --- /dev/null +++ b/docs/evidence/2026-10-15-coulombcore-retirement/public-identity-paths.json @@ -0,0 +1,65 @@ +{ + "observed_at": "2026-10-15T19:52:00.940503+00:00", + "dns_and_public_identity_checks": [ + { + "hostname": "auth.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "login.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "lldap.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "pink.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "pink-account.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "kc.coulomb.social", + "ipv4": [ + "92.205.62.239" + ], + "https_status": 200 + }, + { + "hostname": "bao.coulomb.social", + "ipv4": [ + "92.205.62.239" + ] + }, + { + "hostname": "gitea.coulomb.social", + "ipv4": [ + "92.205.130.254" + ] + }, + { + "hostname": "hub.coulomb.social", + "ipv4": [ + "92.205.62.239" + ] + } + ] +} diff --git a/docs/evidence/2026-10-15-coulombcore-retirement/retirement-preflight.json b/docs/evidence/2026-10-15-coulombcore-retirement/retirement-preflight.json new file mode 100644 index 0000000..0cb0209 --- /dev/null +++ b/docs/evidence/2026-10-15-coulombcore-retirement/retirement-preflight.json @@ -0,0 +1,33 @@ +{ + "workplan": "NK-WP-0022", + "target_host": "coulombcore", + "target_ip": "92.205.130.254", + "primary_host_excluded": "railiance01 /92.205.62.239", + "retention_minimum": "2026-08-29", + "retention_expired": true, + "approval": { + "decision_id": "5d8dcdb5-6d7b-463e-bb39-0a4737331403", + "source": "the-custodian/docs/decisions/2026-10-11-security-unblock-decisions.md", + "status": "batch approved conditional on passing restore/restart drill" + }, + "restart_receipt": { + "path": "../railiance-platform/docs/evidence/2026-10-14-rpf-wp-0015-t03-reboot/post-reboot-preflight.json", + "sha256": "6e41778472b4f6093614ecd51a2a0d7e7e19608a0885162764f1c605dbde7b2b", + "reboot_comparison_passed": true, + "scope": "node restart/recovery, unchanged CNPG identities and no new failing pods; deferred synthetic E2 still open in RPF-WP-0015-T03" + }, + "identity_restore_receipts": "July28 migration and isolated backup restore are historical; no fresh complete identity restore drill identified in reviewed source", + "host_inventory": "host-inventory.json", + "public_path_checks": "public-identity-paths.json", + "proposed_sequence": [ + "Verify exact passing recovery gate and independently retained encrypted identity backups", + "Verify target hostname/boot identity and installed uninstall script digest against inventory", + "Stop and disable legacy k3s without restarting or rotating certificates", + "Run reviewed installed k3s uninstall to remove legacy containers, cluster state,18PVCdirectories, kubelet state and local cluster credential paths", + "Verify no k3s service/process/data path remains and public railiance01 identity paths stay healthy", + "Retire stale source/tunnel references through their owning repositories; retain independent encrypted backup custody", + "Record exact deletion/recovery limits; do not call cluster-data removal a secure full-disk erase" + ], + "destructive_changes_performed": false, + "kubernetes_api_or_cert_rotation_performed": false +} diff --git a/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md b/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md index fb563d7..1971356 100644 --- a/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md +++ b/workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md @@ -9,7 +9,7 @@ flavor: implementation owner: codex topic_slug: netkingdom created: "2026-07-27" -updated: "2026-10-03" +updated: "2026-10-15" depends_on: - USER-WP-0020 - NK-WP-0023 @@ -304,7 +304,7 @@ id: NK-WP-0022-T08 status: wait needs_human: true decision_id: 5d8dcdb5-6d7b-463e-bb39-0a4737331403 -blocking_reason: "Founder 2026-10-11: coulombcore is retired and the machine reused (D4 batch approved). Order: host-side inventory (containers, on-disk manifests; no kube API, certs expired 2026-08-31), then stop k3s for good and wipe for reuse. Executes after Sol's passing railiance01 restore/restart drill receipt. Never rotate certs or restart k3s there first." +blocking_reason: "D4 destructive approval and retention expiry are confirmed. Host inventory is complete: k3s active, 35 running containers and 18 retained PVC directories. October14 reboot_comparison.passed=true is located, but its owner leaves follow-up E2 open and no explicit acceptance as this identity recovery gate was located. Await owner qualification of that receipt or the passing restore/restart receipt before deletion. Never rotate certificates or restart legacy k3s." priority: medium state_hub_task_id: "42a3b4c0-3481-5cfa-bdc2-66d05e751829" ``` @@ -325,11 +325,10 @@ Done when railiance01 is the sole authoritative identity stack, all evidence is reconciled, and the workplan is marked finished. Retention minimum: 2026-08-29 has passed. The plan is no longer date-blocked. -T08 remains blocked on a scoped retained-resource inventory, a successful -identity restore/restart receipt, and explicit destructive approval. -Elapsed retention alone does not authorize deletion or completion: T08 still -requires a successful railiance01 restore/restart drill and new explicit -approval for destructive deletion. +The October11 D4 batch and Round4 decision below supply the destructive +approval; no repeated approval is required within that scope once its recovery +condition is met. Elapsed retention alone does not satisfy the required passing +railiance01 restore/restart receipt. 2026-10-03: human gate routed to hub decision 5d8dcdb5-6d7b-463e-bb39-0a4737331403 (D4: Destructive cleanup after retention expiry: CoulombCore remnants, railiance-master retention, live recipient removal) by CUST-WP-0075; resolving that decision raises C-40 here. @@ -354,3 +353,44 @@ with its encryption material, and identity database state. Whole-host retirement and other owners' workloads remain outside this identity-only deletion gate. Evidence and cross-plan priorities: [estate review](../history/2026-09-28-open-workplan-infrastructure-review.md). + +## Final retirement review — 2026-10-15 + +Founder requested completion. Read-only SSH inventory verified the exact old +host `92.205.130.254`, active/enabled k3s, 35 running containers and 18 retained +PVC directories, including LLDAP, Authelia, privacyIDEA, OpenBao and the old +databases. The API certificate remains expired August31. No Kubernetes API, +certificate rotation, service stop, uninstall or wipe was performed. + +All six public identity names resolve to railiance01 and pass HTTPS200; +Bao and Hub also resolve to railiance01. Retired `gitea.coulomb.social` still +resolves to the old IP. Independent encrypted identity backup files remain on +railiance01 with mode0600; this metadata check does not claim a new restore. + +The October14 owner receipt at +`railiance-platform/docs/evidence/2026-10-14-rpf-wp-0015-t03-reboot/post-reboot-preflight.json` +reports `reboot_comparison.passed=true`, exactly one reboot, unchanged database +identities and no new failing pods. Its SHA256 is +`6e41778472b4f6093614ecd51a2a0d7e7e19608a0885162764f1c605dbde7b2b`. +RPF-WP-0015-T03 still leaves its deferred synthetic E2 open. This review has +not established an owner statement accepting that receipt as this task's +identity restore/restart gate; neither unrelated database recovery nor +snapshot creation is relabelled as an identity restore. + +Prepared the host-specific retirement sequence and reviewed the installed +k3s uninstall/killall scripts without executing them. Their removal includes +old containers, cluster state, local PVCs, kubelet and local cluster credentials; +it is not a secure full-disk erase or provider OS reinstall. Requested owner +clarification about the existing drill/wipe receipt while completing these +independent checks. T08 remains wait pending the recovery gate, not another +request to approve the already-approved destructive scope. + +Evidence: [retirement preflight](../docs/evidence/2026-10-15-coulombcore-retirement/retirement-preflight.json), +[host inventory](../docs/evidence/2026-10-15-coulombcore-retirement/host-inventory.json), +[public paths](../docs/evidence/2026-10-15-coulombcore-retirement/public-identity-paths.json), +and [backup metadata](../docs/evidence/2026-10-15-coulombcore-retirement/independent-backup-metadata.json). + +Knowledge orientation reloaded: Emergent Security0.2.6, +digest `8d1d6a9d4d07fec7b619618de7dfe2be2254c1790f85f4198c7fe19db9751c02`, +withheld/orientation-only; actual owner decisions, recovery source and runtime +metadata were reviewed. Orientation does not confer execution authority.