0

I am deploying a AWS (ap-south-1) rancher setup with terraform version 1.1.9 :

Getting the below error while terraform apply : Used : Rancher version : Rocky-8.5-rancher-2.6.3 kubernetes_version : v1.21.7-rancher1-1 kubernetes : 2.11.0 helm : 2.5.1 rancher2 : 1.24.0 rancher/rke : 1.3.0 cert-manager : 1.5.0

╷
│ Error: Bad response statusCode [422]. Status [422 Unprocessable Entity]. Body: [baseType=error, code=InvalidBodyContent, message=cluster [c-xxgkz] status version is not available yet. Cannot validate kube version for template [system-library-rancher-monitoring-0.3.2]] from [https://ec2-13-232-176-25.ap-south-1.compute.amazonaws.com/v3/clusters/c-xxgkz?action=enableMonitoring]
│
│   with module.rke_custom_cluster.rancher2_cluster.rancher2-custom-cluster,
│   on .terraform/modules/rke_custom_cluster/rancher2_custom_cluster.tf line 20, in resource "rancher2_cluster" "rancher2-custom-cluster":
│   20: resource "rancher2_cluster" "rancher2-custom-cluster" {
│
╵

Help me to resolve the error :

cluster monitoring version tried : 0.1.0, 0.1.4, 0.3.1, 0.3.2

Code snippet :

resource "rancher2_cluster" "rancher2-custom-cluster" {
  name = var.rancher2_custom_cluster_name
  cluster_template_id = var.rke_template_id
  cluster_template_revision_id = var.rke_template_revisions_id
  enable_cluster_monitoring = var.enable_cluster_monitoring
  cluster_monitoring_input {
    answers = {
      "exporter-kubelets.https" = var.exporter_kubelets_https
      "exporter-node.enabled" = var.exporter_node_enabled
      "exporter-node.ports.metrics.port" = var.exporter_node_ports_metrics_port
      "exporter-node.resources.limits.cpu" = var.exporter_node_resources_limits_cpu
      "exporter-node.resources.limits.memory" = var.exporter_node_resources_limits_memory
      "grafana.persistence.enabled" = var.grafana_persistence_enabled
      "grafana.persistence.size" = var.grafana_persistence_size
      "grafana.persistence.storageClass" = var.grafana_persistence_storageClass
      "operator.resources.limits.memory" = var.operator_resources_limits_memory
      "prometheus.persistence.enabled" = var.prometheus_persistence_enabled
      "prometheus.persistence.size" = var.prometheus_persistence_size
      "prometheus.persistence.storageClass" = var.prometheus_persistence_storageClass
      "prometheus.persistent.useReleaseName" = var.prometheus_persistent_useReleaseName
      "prometheus.resources.core.limits.cpu" = var.prometheus_resources_core_limits_cpu,
      "prometheus.resources.core.limits.memory" = var.prometheus_resources_core_limits_memory
      "prometheus.resources.core.requests.cpu" = var.prometheus_resources_core_requests_cpu
      "prometheus.resources.core.requests.memory" = var.prometheus_resources_core_requests_memory
      "prometheus.retention" = var.prometheus_retention
      "grafana.nodeSelectors[0]" = var.node_selector
      "operator.nodeSelectors[0]" = var.node_selector
      "prometheus.nodeSelectors[0]" = var.node_selector
      "exporter-kube-state.nodeSelectors[0]" = var.node_selector
    }
    version = var.cluster_monitoring_version
  }

 #depends_on = [ null_resource.rke_custom_cluster_dependency_getter ]
  depends_on = [ null_resource.wait_for_rancher2 ]

}
sethu ram
  • 23
  • 1
  • 6
  • I'm guessing this is a race condition where you will have to use either implicit or explicit dependency to wait one resource to be created before the other. Can you add some code to the question? – Marko E Jul 07 '22 at 09:10
  • Wow, never ever ever paste you terrafrom state file anywhere. – Marko E Jul 07 '22 at 10:00
  • I wanted you to post the Terraform code not the state file. – Marko E Jul 07 '22 at 10:13
  • Oops !!! Added the code snippet now. @MarkoE – sethu ram Jul 07 '22 at 10:21
  • Have you seen this note: `Note Cluster monitoring version 0.2.0 or above, can't be enabled until cluster is fully deployed as kubeVersion requirement has been introduced to helm chart`? – Marko E Jul 07 '22 at 10:46
  • By sending the version as null, this can pass and deployed setup. – sethu ram Jul 27 '22 at 13:40

1 Answers1

0

Note Cluster monitoring version 0.2.0 or above, can't be enabled until cluster is fully deployed as kubeVersion requirement has been introduced to helm chart

By passing version as null in the mentioned code, Error passed and created setup.

        }
    version = ""
  }

We can install monitoring inside the Rancher API.

sethu ram
  • 23
  • 1
  • 6