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 ]

}
1

There are 1 best solutions below

0
sethu ram On BEST ANSWER

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.