Clusters

Reconcile a cluster

Triggers reconciliation manually for a specific Kubernetes cluster. This operation checks and restores the desired state of the cluster, resolving drift between expected and actual configuration. Use this when your cluster is in an ERROR state or experiencing issues such as stalled provisioning or unresponsive components.

If reconciliation does not resolve the issue, delete the cluster and create a new one rather than retrying. Repeated reconciliation attempts are unlikely to fix underlying infrastructure or configuration problems.

Cluster status and reconciliation: Manual reconciliation is disabled while a cluster is already in the RECONCILING state. For what each cluster status means, see the cluster statuses guide.

post/core/clusters/{cluster_id}/reconcile

Request

  • Base URL: https://infrahub-api.nexgencloud.com/v1
  • URL: https://infrahub-api.nexgencloud.com/v1/core/clusters/{cluster_id}/reconcile
  • Auth: API key in header api_key

Path parameters

cluster_idinteger required

ID of the cluster.

Response

Success

messagestring

Human-readable description of the result.

statusstring

Current lifecycle state of the resource.

Example response

{
  "message": "Cluster 1617 is being reconciled",
  "cluster": {
    "id": 1402,
    "name": "example-c1",
    "environment_name": "example-environment",
    "kubernetes_version": "1.35.1",
    "api_address": "https://api.example-c1-8a1cf2.example-environment.hyperstackcustomers.cloud:6443",
    "kube_config": "YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSQ1ZFTkRRV1V5WjBGM1NVSkJaMGxKU0ZWVmFubzVTbEYwYmtsM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYZEdWRVZVVFVKRlIwRXhWVVVLUVhoTlMyRXpWbWxhV0VwMVdsaFNiR042UVdWR2R6QjVUbXBCTVUxRVkzaE9lbFY1VFZSQ1lVWjNNSHBPYWtFeFRVUlJlRTU2VlROTlZFSmhUVUpWZUFwRmVrRlNRbWRPVmtKQlRWUkRiWFF4V1cxV2VXSnRWakJhV0UxM1oyZEZhVTFCTUVkRFUzRkhVMGxpTTBSUlJVSkJVVlZCUVRSSlFrUjNRWGRuWjBWTENrRnZTVUpCVVVNM1JVdFNlamRsTjNSaUsxTjZWa2RoT1c1R1RrSklXR2hHSzFka2VYQkRiMGd6WjB4blpWQnZRbTlpZUM4d1RsWjZkSHBLYTJJMWJUUUtZbUl6ZGtSbE5VTmtiSFVyYkhWcFMzRllXbWhQV0hwV05taEdWR05aYTNwTGFrUlZjMlZRU0ZaWk5XZG5Na1pDTURsdFkwVk5iMnhzUkhaV1owWldSQXBWTjJ0YVNIaDZUVGwzWjBWeGVqQkRiM2RCYUZGcFJXaFdRVVpJVHpVNU16bEpjRnBtZVdkaFVXVmlZbGx5ZUdadmMyVldZaTlHT1hOdVZ6SXdVRE01Q2pWTVluUXJPR3hNVEdKRFFrTXdNMG93V0dGU1NVUlVRbXRYZURSWlZWbDRTM05QY0dOU01tbENhVkpKYWsxamJrdHdNVTkwV21sQ2EycHdUV3RxYkcwS2EzaDVZbk13ZFRkblFucElObHBZYVZoMVJYUTVSMVJPTHpVMmRrTTNZelZxY0c5TVIyWjFRbmhsV1RoUlltWlVTRUpVYW0xWVpXUk1keXRJTlRrelNRcEllRXAwTW1oSVJqRkJiRVk0UlUxUVMwZGpNR2h6ZEdoSldtdHFRV2ROUWtGQlIycFhWRUpZVFVFMFIwRXhWV1JFZDBWQ0wzZFJSVUYzU1VOd1JFRlFDa0puVGxaSVVrMUNRV1k0UlVKVVFVUkJVVWd2VFVJd1IwRXhWV1JFWjFGWFFrSlVMM0ZKT1doYWRDdFdOMVZXTWtORWEyRk1XRXBWT1VOM1JteEVRVllLUW1kT1ZraFNSVVZFYWtGTloyZHdjbVJYU214amJUVnNaRWRXZWsxQk1FZERVM0ZIVTBsaU0wUlJSVUpEZDFWQlFUUkpRa0ZSUVU1Q1puSTBUa2xYUndwa00xRjZVa04yUzJsd2VIQkxUemRXT1VwMldsUnBSRFZDUVZoUWVHbFpObVp2YUdGSlpFeFZRVGNyWVVGSk9USlpUbnBpTVVWTlFUaDVlbll3Yml0TkNteDBkR2xNYzFaU2VGaFdSVFVyU1dRNFFUSklORXN3ZVhoR2RVNTZNRmd4VlVONE5sRm9WM2xaTlZGamRreHVVbUYzUjB0a1VIVnZXRkpJTkdOWFRGY0tRV1ZuUjFSRk1Fa3hWV3d5ZG1wd1FsQnZWR0ZWY1RScmFqSmpSRGc1S3pkWFpGTlpSRmN5VXpoMWNIaFBaVkpQWjJkQ00wOXRZMVJ6VFROcWRYQjRXUXBhVkVKQlNpdEJVRmswTUU5Q05raFNRVWc1TnpORGIyOW9iSEpZZDFOVFJESlZWbkV4ZG5kTWIwczNhbkJKUm01R1psTXlVVUZNWVd0WmIycGpZVkJNQ2xFM2JYTk5ka1JqZDFWV01HTTBXRXhNYVZSNWFEZHhZa2RzYlU5YVIwY3lhVFp3TjNKTVlUSlJNVzFLSzNkTWRVVlBNVkJLV1VOQk16RXdOMDk1UkZrS2NFRkZVMDg0YzFSa1kwZEVDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsKICAgIHNlcnZlcjogaHR0cHM6Ly9hcGkuYXBpdGVzdC01NTJmODI2YS1jMS04YTFjZjIuYXBpdGVzdC01NTJmODI2YS1lbnYuaHlwZXJzdGFja2N1c3RvbWVycy5jbG91ZDo2NDQzCiAgbmFtZTogYXBpdGVzdC01NTJmODI2YS1jMS04YTFjZjIKY29udGV4dHM6Ci0gY29udGV4dDoKICAgIGNsdXN0ZXI6IGFwaXRlc3QtNTUyZjgyNmEtYzEtOGExY2YyCiAgICB1c2VyOiBrdWJlcm5ldGVzLWFkbWluCiAgbmFtZToga3ViZXJuZXRlcy1hZG1pbkBhcGl0ZXN0LTU1MmY4MjZhLWMxLThhMWNmMgpjdXJyZW50LWNvbnRleHQ6IGt1YmVybmV0ZXMtYWRtaW5AYXBpdGVzdC01NTJmODI2YS1jMS04YTFjZjIKa2luZDogQ29uZmlnCnVzZXJzOgotIG5hbWU6IGt1YmVybmV0ZXMtYWRtaW4KICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJMVkVORFFXaEhaMEYzU1VKQlowbEpXV05zY1d4b1dUUlFaR2QzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkR1ZFVlVUVUpGUjBFeFZVVUtRWGhOUzJFelZtbGFXRXAxV2xoU2JHTjZRV1ZHZHpCNVRtcEJNVTFFWTNoT2VsVjVUVlJDWVVaM01IbE9la0V4VFVSamVFNTZWVE5OVkVKaFRVUjNlQXBJZWtGa1FtZE9Wa0pCYjFSR2JYUXhXVzFXYUZwSE1EWlpNbmd4WXpOU2JHTnBNV2hhUnpGd1ltNU5lRWRVUVZoQ1owNVdRa0ZOVkVWSGRERlpiVlo1Q21KdFZqQmFXRTEwV1ZkU2RHRlhOSGRuWjBWcFRVRXdSME5UY1VkVFNXSXpSRkZGUWtGUlZVRkJORWxDUkhkQmQyZG5SVXRCYjBsQ1FWRkRkbWw2YUZVS1ZrMTNSMGx5UzBoTlRHeHJVVkp5S3psNGRIWlVXVWR5TW1WSWJqTTNXRU5MT1V0UlFUTlVTbVUyTUVzeE1VOURNMWR4YW1GblVHOVBkRlJNUzJGbmFncFNVVW9yYURKNVJFTktXbVExYmxKU2JGYzBRMmhIT0dacU1qZFZTMk5CZG0xdFduWklkVGRPVm5SaFQxVXJWM0E1ZEhScVNIQllOMFpwWTFSTVpUSXZDbnBaVHpSRVJYbHdVMDlIYTJkb1QxQjNUM05RY0VGU2MwdFpaVTlXWWxoM1RXVnlVbVZCUTNNM1dqVnJWVE4wV1hJd1kybzVVVkZqYmxGUFUwaE5TSFVLTld4clNtTjFSbmhpZWtwNWVWQllXVTlsTVM5cGNtdFliVmx3VVV0aGJGUlJSMVV6UmpsS05XcFFUR3hTTVhsMVNEZExWVkJWVW1aRVowa3hSRloxZHdwTFVsaGFUak5GYm14Q2NFcHpVR2Q2ZUV0NGJ5c3ZSa0p2TTAxd2FrOXZNRXRHY2tVcmVXSXdiVzQwT0hwS2MyUlhjbTFUU1VNeWVYRkZPRUpOZWxaMENqWkdlVzU2YUZwV01scFZPR3czVlZwQlowMUNRVUZIYWxacVFsVk5RVFJIUVRGVlpFUjNSVUl2ZDFGRlFYZEpSbTlFUVZSQ1owNVdTRk5WUlVSRVFVc0tRbWRuY2tKblJVWkNVV05FUVdwQlRVSm5UbFpJVWsxQ1FXWTRSVUZxUVVGTlFqaEhRVEZWWkVsM1VWbE5RbUZCUmxBcmIyb3lSbTB6TlZoMFVsaFpTUXBQVW05MFkyeFVNRXhCVjFWTlFUQkhRMU54UjFOSllqTkVVVVZDUTNkVlFVRTBTVUpCVVVFMVYyUnRTMVpLVm1SUWVHbHJSMEprVkZFclVXNUxaek0zQ2pSc1NUQjFkV1JrYkRFeWNqRjJPSGh5WldaR1YzRktXRXB2VFd0cU1XZ3hZazE1YjB4c2IzTkdTa2hSWmtSMWJsRnpUR1ExYkV4Skx6WjZORXhoYUdvS2R6ZzBjbGxSTmtwa05IRmFhVmhGWkU1WGNYbHpXRTFWY1hFME5uQlRVazVHV0doT1JEZ3ZZamhRWW04NE5XWTRVbTVuVG5FME0yMVRlR1pNZEdKRVRncElTblE1UlRseFMwSndXV3gwY25SU1VFRnhNMGt6TW5sTGJFUnZVR3hzTWswelNFOXhjRmRUT1V0QlNVZzFWVzAxWm1KRmJWbExNVk50VlhnMWFtOHhDakJKZW1aTGRrRnVabmRrYzB4WVJVY3dLM0o2VFRRelFuVXJUbEE1VlZFNVJVeEliRlZpY1hBeFYwdG5lbXN5ZUZoWU5ubFFhM05HY0d4Q09HMDVNUzhLUWxGSmNVWmlhbEJ0Wm5SQ1ZFWk1UbEpwVlVVM2RHeENjVGx2TTBwRWVEWkJiRkZhZEZOSlYzaDJOWHBTU0hVemQxTXlTMVY0UkZCTmNIcFhDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsKICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGY0VGSlFrRkJTME5CVVVWQmNqUnpORlpHVkUxQ2FVdDVhSHBETlZwRlJXRXZkbU5pWWpBeVFuRTVibWcxT1NzeGQybDJVMnRCVGpCNVdIVjBDa04wWkZSbmRERnhiekp2UkRaRWNsVjVlVzF2U1RCVlEyWnZaSE5uZDJsWFdHVmFNRlZhVm5WQmIxSjJTRFE1ZFRGRGJrRk1OWEJ0WW5nM2RYcFdZbGNLYW14UWJIRm1ZbUpaZURaV0szaFpia1Y1TTNSMk9ESkVkVUY0VFhGVmFtaHdTVWxVYWpoRWNrUTJVVVZpUTIxSWFteFhNVGhFU0hFd1dHZEJjazh5WlFwYVJrNDNWMHM1U0VrdlZVVklTakJFYTJoNlFqZDFXbHBEV0V4b1kxYzRlV056YWpFeVJHNTBaalJ4TlVZMWJVdFZRMjF3VlRCQ2JFNTRabE5sV1hwNUNqVlZaR055YUN0NWJFUXhSVmgzTkVOT1VURmljME5yVmpKVVpIaEtOVkZoVTJKRU5FMDRVM05oVUhaNFVXRk9la3RaZW5GT1EyaGhlRkJ6YlRsS2NDc0tVRTE1WWtoV2NUVnJhVUYwYzNGb1VFRlVUVEZpWldoamNEZzBWMVprYlZaUVNtVXhSMUZKUkVGUlFVSkJiMGxDUVVGbmNtRkpSekJQU2t0SmFIUndNd293UVdvd1duSmpOamxPU0c1UU5FOXdOMnBQUjFjNFZXWnRVSE5QZW1nMllWaFBSa2RUUTB0ekx6QjBMMjlhVEhKUFowRkRabXR4TVRaWWJrNHZObFJTQ21Zek16ZFFZWEZYVlRkd1YxRXpNbkZvVkZCdGFGbFZlRzlHWWtocU9FZExjWGN5VVhCbU1sVXJXSHBTWWxwV2VqUkliWEZDTkdsSWJtWjFkM2gwYVZNS1FtSTFUVTR6UkZoUU5XeEpkblJRZURCMFkzazRabUYwZGtGdWJtZG5WbUkzV1ZkRU4wRnJSM00zVEZKb2F6aE5WRk53VFhBNGVWTlhWRzV4UjJ0M2JncEtkR3BITTJkT1dqZDRRMDlrTW5aUFNWVXlaalpYV0dkSWFuQjRTVmd2WkhOSVJrTTBNR3RCTUhZclpXY3lNVUpwUWpBNVQyVjFPQ3RwUVcxNVlsSk1DalpXUjBWcFlsTkZUMVpXWWxNemExbGxOVlpETWs5emEwTlJNbkphTkVzeUsxQk5RbTlxZGxkYWR6WktOV0V5Tm5wME5HVjJabk5LTkVVeGMydEpTV1FLTHpNM1RXWjNSVU5uV1VWQmR6bFNRV1l6WkZOdk1VNTBVVmMzYmxkSGJWRTVla2h3YW5OalQyTjRaMEZQWW5FMlUwaDRiV1pTYlVWSFltWlJabVpTYVFwV1NFSTRjQ3MyTmtWUk5VczJlR3R0UjBsMVRrRjVOM2hNWjBoWE0wTlhkelJKTnprNFFuQkVTelo2VG5ZMFlsY3ZkbTVXV1dOdVlXTllUazFIYms1bkNrSmlUbnBFU1ZKU1dHNXhRMVJsWlZkclkzQmtablZoTjNweWNESmlWVXR0WmpJM2VqRlBNME5TWWpoNVJXRTJibHBGYjFFeVUydERaMWxGUVRWWWRGa0tZMDlTT1VkelF6QnVZWE15TTNrdmFqWlBaWFpoYURCWFdFMVhkM1kzUzA5Wk1WcDBMMUZJWTNaUGFYSlRkVlExVmpObVZYUkdkbGRFYzJoVldWQTVlQXBGVTI1NFFqSnpTRkJKVkZnNU1pdENVbkUzV1ZGM2VGZHJVRU1yU2s1NlpVNVpkMmxtYkVoeFlWTnBjV3ROVjBwMFUyMTJVVkpFTUhKd1pXNVFOWFpWQ25nNWNESjFiVkJyVm5kdWVHeE9TM05WVFVOamRFSTBaMGRtTUhaUWNUSjZWVXAxVTFOdVJVTm5XVUppZWpkc2JHbFpXQ3NyVUVGNVV6RkxMMmx6TjJrS1pHczBkMGRJWkZnd2NISlpaR2RyT0ZSellXMVNSRFZCTmtsTmFHRnRRbTVuYXpKUVZtdGtOa1UxT1dkV1pYZGpaV1ZFYXpaNU9EaERURk0xYUdod1JncFVaMVZWWlhSMVprMUhaRTlOYlU4clN6RmxNV1o2VDJoSFVrNUlSeko1WW1ZMlUyazJOalZUWnpGR2QxRlFTRUUzU1Zkc1NqTjRTakJtV1ZGQ056SlVDalZYYzBGSE0wTkllbkp2YTNaRFVGTjVlamRYT0ZGTFFtZFJRMGw1Tmxac04zQTJlRUYxZW05RVJHTjVhR3czU3paTmJVWmlVRGt5YjBKWlJIZENTRzRLU0RRclJGRmpablpEU21WTWJITkZXVXBuVDNrelFXWllWMmMwUzI5R2MzSlRlVUV5VG5SUWFXWkxTWFJEZEdjMldsZElabGhuZVVGaVJFazRNRlJxV2dwSVRXTXpSeXRsY21ScFZuWkdXVXBKWW5sbVkyeHdiakZPWTNaeFVFSTVNRmd3VG14VGMxUkZTMlJhVEhrcldWTlpVemxKYnpacGNFNVhZMnBoZGtrMENtVXZVMUl3VVV0Q1oxRkRRWFkxVlRBMldVb3hUazEyS3paVlkzQkVZVGhhVURjdlVubE5ZblZKWTB4S1pWZDRRVkV6VG05TE1saFZPWFpWVkVRdk5ta0thWFpKYVVrd2IwZFVjRmtySzJ0WWIxSndiMU0yUm1OQmRIZEdOSEJFZWxCSWIwRlBiMjlwVFZaaE5uUTBaVTgxWjJrdlpqUkJkVlZyWldoSlJWQkthQW94TlRaNVJHZFlObVJhT0U0eFJFUk9SR3AwVFd0b2JIZDRTbEprY2pSNFMyaE9SbGNyT1dKdlRsaEdXVTV3VjFJM2NFaGtVbmM5UFFvdExTMHRMVVZPUkNCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRbz0K",
    "status": "CREATING",
    "status_reason": "Bastion is ready",
    "node_groups": [
      {
        "id": 4501,
        "name": "default",
        "role": "worker",
        "flavor": {
          "id": 4501,
          "name": "n1-cpu-small",
          "cpu": 4,
          "ram": 4,
          "disk": 100
        },
        "count": 1,
        "min_count": 1,
        "max_count": 1,
        "created_at": "2026-05-07T09:21:55Z",
        "updated_at": "2026-05-07T09:21:55Z"
      }
    ],
    "master_flavor": {
      "id": 4501,
      "name": "n1-cpu-small",
      "cpu": 4,
      "ram": 4,
      "disk": 100
    },
    "nodes": [
      {
        "id": 3287,
        "role": "bastion",
        "instance": {
          "id": 7613,
          "name": "example-c1-bastion-0",
          "status": "CREATING",
          "fixed_ip": "192.0.2.42",
          "floating_ip": "192.0.2.91",
          "floating_ip_status": "ATTACHING",
          "image_id": 7613
        },
        "status": "CREATING",
        "status_reason": "VM is creating",
        "is_bastion": true,
        "requires_public_ip": true,
        "created_at": "2026-05-06T16:04:09Z",
        "updated_at": "2026-05-06T16:04:09Z"
      }
    ],
    "keypair_name": "example-keypair",
    "is_reconciling": true,
    "created_at": "2026-05-06T16:04:09Z"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.