)]}'
{
  "commit": "f6ad298e24e22c1fadb203d85f8b8dd6cb118e25",
  "tree": "ec764428f186cf879085d6956b20d315434408aa",
  "parents": [
    "4a3e54c86c05e4881105f7aced6f039a383ed5a1"
  ],
  "author": {
    "name": "gio",
    "email": "gio@v1.dodo.cloud",
    "time": "Fri Aug 23 17:42:49 2024 +0400"
  },
  "committer": {
    "name": "gio",
    "email": "gio@v1.dodo.cloud",
    "time": "Fri Sep 20 14:19:48 2024 +0000"
  },
  "message": "ClusterManager: Implements support of remote clusters.\n\nAfter this change users will be able to:\n* Create cluster and add/remove servers to it\n* Install apps on remote cluster\n* Move already installed apps between clusters\n* Apps running on server being removed will auto-migrate\n  to another server from that same cluster\n\nThis is achieved by:\n* Installing and running minimal version of dodo on remote cluster\n* Ingress-nginx is installed automatically on new clusters\n* Next to nginx we run VPN client in the same pod, so that\n  default cluster can establish secure communication with it\n* Multiple reverse proxies are configured to get to the\n  remote cluster service from ingress installed on default cluster.\n\nNext steps:\n* Support remote clusters in dodo apps (prototype ready)\n* Clean up old cluster when moving app to the new one. Currently\n  old cluster keeps running app pods even though no ingress can\n  reach it anymore.\n\nChange-Id: Iffc908c93416d4126a8e1c2832eae7b659cb8044\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778",
      "new_mode": 33188,
      "new_path": "charts/access-secrets/.helmignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e17b6af01594f5b1ecc572560e5f43626e114c1e",
      "new_mode": 33188,
      "new_path": "charts/access-secrets/Chart.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b57f1356e36b3fb7bb766a074d6649619064d25",
      "new_mode": 33188,
      "new_path": "charts/access-secrets/templates/install.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14f425bc0890ed729361e8ab89b6c8c61670f729",
      "new_mode": 33188,
      "new_path": "charts/access-secrets/values.yaml"
    },
    {
      "type": "modify",
      "old_id": "e7ff245b59743696986e3794c58714fd669af276",
      "old_mode": 33188,
      "old_path": "charts/appmanager/Chart.yaml",
      "new_id": "c39b82a687c67b29ee916e649dd5d0d99f25b12e",
      "new_mode": 33188,
      "new_path": "charts/appmanager/Chart.yaml"
    },
    {
      "type": "modify",
      "old_id": "ba50e100a4fcae65ff666da1728add76eb358b9c",
      "old_mode": 33188,
      "old_path": "charts/appmanager/templates/install.yaml",
      "new_id": "8cfb3066fb7013eecb35a7b340c98e78d928545f",
      "new_mode": 33188,
      "new_path": "charts/appmanager/templates/install.yaml"
    },
    {
      "type": "modify",
      "old_id": "d570f51c251650d1a351db440db37d2c9aca615c",
      "old_mode": 33188,
      "old_path": "charts/appmanager/values.yaml",
      "new_id": "672d2bb200ec01ac1df1ec16cbbb0a72cb23451d",
      "new_mode": 33188,
      "new_path": "charts/appmanager/values.yaml"
    },
    {
      "type": "modify",
      "old_id": "c50a741a07ac92b2b385f5bbffddc4758ce7e6f4",
      "old_mode": 33188,
      "old_path": "charts/ingress/templates/install.yaml",
      "new_id": "edae3309d0504eee6f77f949d90ca2800ffbcda5",
      "new_mode": 33188,
      "new_path": "charts/ingress/templates/install.yaml"
    },
    {
      "type": "modify",
      "old_id": "0640557ef9e6fddf978f0a95cb6414ea14bf7da0",
      "old_mode": 33188,
      "old_path": "charts/ingress/values.yaml",
      "new_id": "20c1eb8e8b5bb194161ff5316a4b3929049b181e",
      "new_mode": 33188,
      "new_path": "charts/ingress/values.yaml"
    },
    {
      "type": "modify",
      "old_id": "58d5d4612cfe0ce155d1f56e524d97b8760a24cc",
      "old_mode": 33188,
      "old_path": "charts/namespace/templates/namespace.yaml",
      "new_id": "15d3b2846ce649011d28665a174cb4f2bab530f5",
      "new_mode": 33188,
      "new_path": "charts/namespace/templates/namespace.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778",
      "new_mode": 33188,
      "new_path": "charts/secret/.helmignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eee9abdaa3820c56a03e080602414ea4d091d4df",
      "new_mode": 33188,
      "new_path": "charts/secret/Chart.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62eb0962fa2aaf46e91a756e2bb9466ab3988353",
      "new_mode": 33188,
      "new_path": "charts/secret/templates/install.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fce03b2729c69f5a181a2c51eba581ccce1c2c3c",
      "new_mode": 33188,
      "new_path": "charts/secret/values.yaml"
    },
    {
      "type": "modify",
      "old_id": "76241da1ceae3a9df8a1582aeb8d34e785e078ab",
      "old_mode": 33188,
      "old_path": "charts/tailscale-proxy/templates/install.yaml",
      "new_id": "f85f7534333778f68435a01d9e96e3a67c8a4981",
      "new_mode": 33188,
      "new_path": "charts/tailscale-proxy/templates/install.yaml"
    },
    {
      "type": "modify",
      "old_id": "1f127cb50a6e53d752069be2eeed394ea3956a3a",
      "old_mode": 33188,
      "old_path": "core/dns-api/Makefile",
      "new_id": "bd7861887d2c6de1656006e3d8b6213438954a06",
      "new_mode": 33188,
      "new_path": "core/dns-api/Makefile"
    },
    {
      "type": "modify",
      "old_id": "7ab1bb272dcd580b4032dc71a88879df3eabf9ac",
      "old_mode": 33188,
      "old_path": "core/dns-api/main.go",
      "new_id": "c3d429dd19808d1682985b47242189aef33918c8",
      "new_mode": 33188,
      "new_path": "core/dns-api/main.go"
    },
    {
      "type": "modify",
      "old_id": "6916a5e9a991151a250aba1314fea0b02f5ec1b5",
      "old_mode": 33188,
      "old_path": "core/dns-api/records_file.go",
      "new_id": "a25c3426e3e9e3bd414630e6fd90da4f0445ec9e",
      "new_mode": 33188,
      "new_path": "core/dns-api/records_file.go"
    },
    {
      "type": "modify",
      "old_id": "37db8ffc70b34a1eacf6695ee73da94fca62532a",
      "old_mode": 33188,
      "old_path": "core/dns-api/server.go",
      "new_id": "d67ccf6b24e44ea40004773eee9f983758cdb050",
      "new_mode": 33188,
      "new_path": "core/dns-api/server.go"
    },
    {
      "type": "modify",
      "old_id": "6d0a7c103adc940dccbf3d1e8406e0c4a793961d",
      "old_mode": 33188,
      "old_path": "core/dns-api/store.go",
      "new_id": "8dfd914c5a4fe6fa59e959f5552b7d3a13ef70db",
      "new_mode": 33188,
      "new_path": "core/dns-api/store.go"
    },
    {
      "type": "modify",
      "old_id": "18c37dfa9326337e0119753a3eeebb812164fe83",
      "old_mode": 33188,
      "old_path": "core/headscale/client.go",
      "new_id": "159fffbaca475209f1ff53b156a6a2c37f8c8e23",
      "new_mode": 33188,
      "new_path": "core/headscale/client.go"
    },
    {
      "type": "modify",
      "old_id": "698d9d269bb323515f37f1eb3e15527c28b07528",
      "old_mode": 33188,
      "old_path": "core/headscale/main.go",
      "new_id": "194da06aa299c5863b3d050551884849395eadfc",
      "new_mode": 33188,
      "new_path": "core/headscale/main.go"
    },
    {
      "type": "modify",
      "old_id": "91f290fa35bcde360dab246f1d6ffb092272eaeb",
      "old_mode": 33188,
      "old_path": "core/installer/app.go",
      "new_id": "f023b1811c3d862553333008e76019f322d29848",
      "new_mode": 33188,
      "new_path": "core/installer/app.go"
    },
    {
      "type": "modify",
      "old_id": "ac2d159e28d26d9c7dbad3f98d116423aeb4d6fe",
      "old_mode": 33188,
      "old_path": "core/installer/app_configs/app_base.cue",
      "new_id": "192716f10c8ac25ba3f4e6405e106890afed94db",
      "new_mode": 33188,
      "new_path": "core/installer/app_configs/app_base.cue"
    },
    {
      "type": "modify",
      "old_id": "e8c8f57793bbf5d18c409e91b0251251c43d981f",
      "old_mode": 33188,
      "old_path": "core/installer/app_configs/app_global_env.cue",
      "new_id": "8d4a7dbf52cd3b4fbd74d7e6c2382bb529467c48",
      "new_mode": 33188,
      "new_path": "core/installer/app_configs/app_global_env.cue"
    },
    {
      "type": "modify",
      "old_id": "24568381e89a6bda9b5723157806c4c8fa06384c",
      "old_mode": 33188,
      "old_path": "core/installer/app_configs/dodo_app.cue",
      "new_id": "b9357ecb1c1aca1323453590edb5c5908945a609",
      "new_mode": 33188,
      "new_path": "core/installer/app_configs/dodo_app.cue"
    },
    {
      "type": "modify",
      "old_id": "d31d9ff5f91b06e92b2318f83a989a06f29400db",
      "old_mode": 33188,
      "old_path": "core/installer/app_manager.go",
      "new_id": "0bddf29bc8d812256a5cb97ee6230ef7b6d8ebfa",
      "new_mode": 33188,
      "new_path": "core/installer/app_manager.go"
    },
    {
      "type": "modify",
      "old_id": "0de0c5a2951e37f68fce5297a74e42b7456c4215",
      "old_mode": 33188,
      "old_path": "core/installer/app_repository.go",
      "new_id": "e4bfa4dc4d514e5df4a526de174dbbb15813a677",
      "new_mode": 33188,
      "new_path": "core/installer/app_repository.go"
    },
    {
      "type": "modify",
      "old_id": "18cf85ca5e36abbf8a93d1763e0c4991cd2569a3",
      "old_mode": 33188,
      "old_path": "core/installer/app_test.go",
      "new_id": "4f3f7ddb1d7cf7d057520ec44ee9c22f6d749e36",
      "new_mode": 33188,
      "new_path": "core/installer/app_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ebffcfab6afd938daa5c87c95643fc8d0054cc8",
      "new_mode": 33188,
      "new_path": "core/installer/cluster.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee123fa15e74283cfb9e74885f0bc62d4f551ecc",
      "new_mode": 33188,
      "new_path": "core/installer/cluster/kube.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c8e62d172fc6b557956cf3a717dff5a6c77579c5",
      "new_mode": 33188,
      "new_path": "core/installer/cluster/manager.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "751a7977db6bdcfa14f7a33a00fdec4dc5c3d67a",
      "new_mode": 33188,
      "new_path": "core/installer/cluster/ssh.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e3152026fc2fa848d3fadad67fe36ecc3e65a303",
      "new_mode": 33188,
      "new_path": "core/installer/cluster_test.go"
    },
    {
      "type": "modify",
      "old_id": "a6224a0eac2c5f89a8a37926343955d82514b3f9",
      "old_mode": 33188,
      "old_path": "core/installer/cmd/app_manager.go",
      "new_id": "16ac83a6618d8d61aae0481428b09c87acd30e39",
      "new_mode": 33188,
      "new_path": "core/installer/cmd/app_manager.go"
    },
    {
      "type": "modify",
      "old_id": "2fe1697a3f96c8a0b7452b6592b93ac2cc75fdce",
      "old_mode": 33188,
      "old_path": "core/installer/cmd/dodo_app.go",
      "new_id": "8512691627acd532cf2d3bc2c5f58bf6871e3273",
      "new_mode": 33188,
      "new_path": "core/installer/cmd/dodo_app.go"
    },
    {
      "type": "modify",
      "old_id": "f31ad8f12dee66274642dd906f74a3ee74d07e73",
      "old_mode": 33188,
      "old_path": "core/installer/cmd/kube.go",
      "new_id": "1a7473163a4272473a95e4c9f654ea1fc6048a4a",
      "new_mode": 33188,
      "new_path": "core/installer/cmd/kube.go"
    },
    {
      "type": "modify",
      "old_id": "e671fe673c7399adb6b48837ba79b5e9c070faff",
      "old_mode": 33188,
      "old_path": "core/installer/cmd/launcher.go",
      "new_id": "85e811f5d4bf371d0384e840db8be741e40342bf",
      "new_mode": 33188,
      "new_path": "core/installer/cmd/launcher.go"
    },
    {
      "type": "modify",
      "old_id": "3e2961ba8b62a412e2e1cb46a61ae5def6018002",
      "old_mode": 33188,
      "old_path": "core/installer/cmd/rewrite.go",
      "new_id": "0f018e4d5ff468c638cbf4e90659f37ed11159ef",
      "new_mode": 33188,
      "new_path": "core/installer/cmd/rewrite.go"
    },
    {
      "type": "modify",
      "old_id": "0351b213865101aa7a44a2e3931d0da7175caa53",
      "old_mode": 33188,
      "old_path": "core/installer/derived.go",
      "new_id": "6c1305ccdcc2d7c664232ad5098bd465fc8d5bc0",
      "new_mode": 33188,
      "new_path": "core/installer/derived.go"
    },
    {
      "type": "modify",
      "old_id": "83e07ec15a7a7be3da4237c89d59464e0f15f085",
      "old_mode": 33188,
      "old_path": "core/installer/derived_test.go",
      "new_id": "d9a873b046c2834b263ac706c97e67ddc8ea2e00",
      "new_mode": 33188,
      "new_path": "core/installer/derived_test.go"
    },
    {
      "type": "modify",
      "old_id": "7d3c334455bd8b1a81a560cd9150449216aa86ea",
      "old_mode": 33188,
      "old_path": "core/installer/helm.go",
      "new_id": "dc742d54ab6bd5c88d025dae70baedf0db9a48fe",
      "new_mode": 33188,
      "new_path": "core/installer/helm.go"
    },
    {
      "type": "modify",
      "old_id": "c8251ffc49aafba5d470985d4b6e0aab989ee0d6",
      "old_mode": 33188,
      "old_path": "core/installer/kube.go",
      "new_id": "7f861af814c3f23d26b92b30f0b4b063247bfc60",
      "new_mode": 33188,
      "new_path": "core/installer/kube.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc19eabd67c0c2bc79e47a3a033884602f03383c",
      "new_mode": 33188,
      "new_path": "core/installer/kube/client.go"
    },
    {
      "type": "modify",
      "old_id": "fcdebd48579e3f62cf3dcdb2ba16958a5d5a2eba",
      "old_mode": 33188,
      "old_path": "core/installer/schema.go",
      "new_id": "5a70519f33a19744cdc25cbc82b692b620b7a722",
      "new_mode": 33188,
      "new_path": "core/installer/schema.go"
    },
    {
      "type": "modify",
      "old_id": "458f6889d5010f45a3db4b8c7e4f007e99ab5efe",
      "old_mode": 33188,
      "old_path": "core/installer/soft/repoio.go",
      "new_id": "de2f75a73d459a5bd03ca5f48f4170ea498f739d",
      "new_mode": 33188,
      "new_path": "core/installer/soft/repoio.go"
    },
    {
      "type": "modify",
      "old_id": "3682533c65b4be2ae0f54ff7afdc7fa31f246052",
      "old_mode": 33188,
      "old_path": "core/installer/tasks/infra.go",
      "new_id": "3d39eea17d76463ff57d10c60e58359cb430a3ce",
      "new_mode": 33188,
      "new_path": "core/installer/tasks/infra.go"
    },
    {
      "type": "modify",
      "old_id": "8b5bef7117a30dd60bd89b2eb1a9ad2763133341",
      "old_mode": 33188,
      "old_path": "core/installer/tasks/install.go",
      "new_id": "6ff939bfb582f929b0ab10b14b94ca9153339e29",
      "new_mode": 33188,
      "new_path": "core/installer/tasks/install.go"
    },
    {
      "type": "modify",
      "old_id": "24d0d8d0935f30a03125004e172cee806ac109f5",
      "old_mode": 33188,
      "old_path": "core/installer/values-tmpl/appmanager.cue",
      "new_id": "1cd7dbffb366a2eb9d618a98145f8fc193cc8c6e",
      "new_mode": 33188,
      "new_path": "core/installer/values-tmpl/appmanager.cue"
    },
    {
      "type": "modify",
      "old_id": "8721e7f5add00412a98962b657bdade4e0c58827",
      "old_mode": 33188,
      "old_path": "core/installer/values-tmpl/certificate-issuer-custom.cue",
      "new_id": "469382d22745966e7792a21b4def8095caaba94f",
      "new_mode": 33188,
      "new_path": "core/installer/values-tmpl/certificate-issuer-custom.cue"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d470ff19322c50a8f7e61df071c45ec02cbfeae4",
      "new_mode": 33188,
      "new_path": "core/installer/values-tmpl/cluster-network.cue"
    },
    {
      "type": "modify",
      "old_id": "6f311d93432b5e06172147091bc62cf4d248716e",
      "old_mode": 33188,
      "old_path": "core/installer/values-tmpl/virtual-machine.cue",
      "new_id": "841cb8b33339e4bdd3ff140bba8a8b4d6a5545e0",
      "new_mode": 33188,
      "new_path": "core/installer/values-tmpl/virtual-machine.cue"
    },
    {
      "type": "modify",
      "old_id": "01161df45ed0f5186c24e2e60eb958a993a08763",
      "old_mode": 33188,
      "old_path": "core/installer/vpn.go",
      "new_id": "beeb8e4968c55666d1e39f7b31b3ea8bed3fb26d",
      "new_mode": 33188,
      "new_path": "core/installer/vpn.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "843381fc3d994926ab7052a8f37f45c730842163",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager-tmpl/all-clusters.html"
    },
    {
      "type": "modify",
      "old_id": "c6874cb49551b159d2d469980f6666a585eaec03",
      "old_mode": 33188,
      "old_path": "core/installer/welcome/appmanager-tmpl/app.html",
      "new_id": "c1387ad617f21b0e212c8390d410e2796e29530c",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager-tmpl/app.html"
    },
    {
      "type": "modify",
      "old_id": "4458485428b002d58cccfc681f8001ba96998496",
      "old_mode": 33188,
      "old_path": "core/installer/welcome/appmanager-tmpl/base.html",
      "new_id": "cb699708607be85e816878e55a4c5cc2b26c31d4",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager-tmpl/base.html"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ef2fbe407192c6be624f78cd3d049fbe42fed07",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager-tmpl/cluster.html"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "699a66006b27d3235f64ca4a78d68396ea7f204f",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager-tmpl/task.html"
    },
    {
      "type": "modify",
      "old_id": "7f168dcbed6b17c1ead407cb60a3cb675a6f5c36",
      "old_mode": 33188,
      "old_path": "core/installer/welcome/appmanager.go",
      "new_id": "30161903e1d663140f0eb78a09ebbc78641c5100",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/appmanager.go"
    },
    {
      "type": "modify",
      "old_id": "7f3d383d9ffd0f6b061155616c3d365fed21ecf9",
      "old_mode": 33188,
      "old_path": "core/installer/welcome/dodo_app.go",
      "new_id": "9a93afdac24220c9bbcb7ee597303110d37db684",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/dodo_app.go"
    },
    {
      "type": "modify",
      "old_id": "ee80e4ef35164b4765f4f0151e0b29b038309007",
      "old_mode": 33188,
      "old_path": "core/installer/welcome/env_test.go",
      "new_id": "439fdf26a61eb15d9caf371f1c47b191c9f80647",
      "new_mode": 33188,
      "new_path": "core/installer/welcome/env_test.go"
    }
  ]
}
