Red Hat · Schema

Red Hat OpenShift Cluster

Schema for an OpenShift cluster managed through the Red Hat OpenShift Cluster Manager, representing a Kubernetes cluster deployed on a cloud provider.

CloudContainersEnterpriseHybrid CloudKubernetesLinuxOpen Source

Properties

Name Type Description
id string The unique identifier of the cluster assigned by the Cluster Manager.
name string The name of the cluster, used as a human-readable identifier.
display_name string The display name of the cluster shown in the Hybrid Cloud Console.
state string The current lifecycle state of the cluster.
cloud_provider object The cloud provider where the cluster is deployed.
region object The cloud provider region where the cluster is deployed.
multi_az boolean Whether the cluster spans multiple availability zones for high availability.
openshift_version string The OpenShift version running on the cluster.
nodes object The node configuration of the cluster.
api object The cluster API server configuration.
console object The OpenShift web console configuration.
network object The network configuration of the cluster.
subscription object The subscription associated with this cluster.
creation_timestamp string The date and time when the cluster was created in ISO 8601 format.
expiration_timestamp stringnull The date and time when the cluster is set to expire, if applicable.
View JSON Schema on GitHub

JSON Schema

red-hat-openshift-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.openshift.com/schemas/red-hat/openshift-cluster.json",
  "title": "Red Hat OpenShift Cluster",
  "description": "Schema for an OpenShift cluster managed through the Red Hat OpenShift Cluster Manager, representing a Kubernetes cluster deployed on a cloud provider.",
  "type": "object",
  "required": ["id", "name", "state"],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier of the cluster assigned by the Cluster Manager."
    },
    "name": {
      "type": "string",
      "description": "The name of the cluster, used as a human-readable identifier.",
      "minLength": 1,
      "maxLength": 54,
      "pattern": "^[a-z][a-z0-9-]*$"
    },
    "display_name": {
      "type": "string",
      "description": "The display name of the cluster shown in the Hybrid Cloud Console."
    },
    "state": {
      "type": "string",
      "description": "The current lifecycle state of the cluster.",
      "enum": [
        "error",
        "hibernating",
        "installing",
        "pending",
        "powering_down",
        "ready",
        "resuming",
        "uninstalling",
        "unknown",
        "validating",
        "waiting"
      ]
    },
    "cloud_provider": {
      "type": "object",
      "description": "The cloud provider where the cluster is deployed.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The cloud provider identifier.",
          "enum": ["aws", "gcp", "azure"]
        },
        "display_name": {
          "type": "string",
          "description": "The display name of the cloud provider."
        }
      },
      "required": ["id"]
    },
    "region": {
      "type": "object",
      "description": "The cloud provider region where the cluster is deployed.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The region identifier (e.g., us-east-1, europe-west1)."
        },
        "display_name": {
          "type": "string",
          "description": "The human-readable region name."
        }
      },
      "required": ["id"]
    },
    "multi_az": {
      "type": "boolean",
      "description": "Whether the cluster spans multiple availability zones for high availability.",
      "default": false
    },
    "openshift_version": {
      "type": "string",
      "description": "The OpenShift version running on the cluster.",
      "pattern": "^\\d+\\.\\d+\\.\\d+$"
    },
    "nodes": {
      "type": "object",
      "description": "The node configuration of the cluster.",
      "properties": {
        "master": {
          "type": "integer",
          "description": "The number of master nodes.",
          "minimum": 1
        },
        "compute": {
          "type": "integer",
          "description": "The number of compute (worker) nodes.",
          "minimum": 0
        },
        "infra": {
          "type": "integer",
          "description": "The number of infrastructure nodes.",
          "minimum": 0
        },
        "compute_machine_type": {
          "type": "object",
          "description": "The instance type for compute nodes.",
          "properties": {
            "id": {
              "type": "string",
              "description": "The machine type identifier."
            }
          }
        }
      }
    },
    "api": {
      "type": "object",
      "description": "The cluster API server configuration.",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL of the cluster API server."
        },
        "listening": {
          "type": "string",
          "description": "The API server listening mode.",
          "enum": ["external", "internal"]
        }
      }
    },
    "console": {
      "type": "object",
      "description": "The OpenShift web console configuration.",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL of the OpenShift web console."
        }
      }
    },
    "network": {
      "type": "object",
      "description": "The network configuration of the cluster.",
      "properties": {
        "machine_cidr": {
          "type": "string",
          "description": "The CIDR block for machine network.",
          "pattern": "^\\d+\\.\\d+\\.\\d+\\.\\d+/\\d+$"
        },
        "service_cidr": {
          "type": "string",
          "description": "The CIDR block for Kubernetes services."
        },
        "pod_cidr": {
          "type": "string",
          "description": "The CIDR block for Kubernetes pods."
        },
        "host_prefix": {
          "type": "integer",
          "description": "The prefix length for per-node pod CIDR allocation."
        },
        "type": {
          "type": "string",
          "description": "The network plugin type.",
          "enum": ["OpenShiftSDN", "OVNKubernetes"]
        }
      }
    },
    "subscription": {
      "type": "object",
      "description": "The subscription associated with this cluster.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The subscription identifier."
        },
        "status": {
          "type": "string",
          "description": "The subscription status."
        }
      }
    },
    "creation_timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time when the cluster was created in ISO 8601 format."
    },
    "expiration_timestamp": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "The date and time when the cluster is set to expire, if applicable."
    }
  },
  "$defs": {
    "MachinePool": {
      "type": "object",
      "description": "A machine pool defining a group of compute nodes with shared configuration.",
      "required": ["id", "instance_type"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier of the machine pool."
        },
        "instance_type": {
          "type": "string",
          "description": "The cloud provider instance type for nodes in this pool."
        },
        "replicas": {
          "type": "integer",
          "description": "The fixed number of nodes.",
          "minimum": 0
        },
        "autoscaling": {
          "type": "object",
          "description": "Autoscaling configuration.",
          "properties": {
            "min_replicas": {
              "type": "integer",
              "minimum": 0
            },
            "max_replicas": {
              "type": "integer",
              "minimum": 1
            }
          }
        },
        "availability_zones": {
          "type": "array",
          "description": "The availability zones for node placement.",
          "items": {
            "type": "string"
          }
        },
        "labels": {
          "type": "object",
          "description": "Kubernetes labels applied to nodes.",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    }
  },
  "examples": [
    {
      "id": "1n2j3b4k5l6m7n8o9p0q",
      "name": "production-cluster",
      "display_name": "Production Cluster",
      "state": "ready",
      "cloud_provider": {
        "id": "aws",
        "display_name": "Amazon Web Services"
      },
      "region": {
        "id": "us-east-1",
        "display_name": "US East (N. Virginia)"
      },
      "multi_az": true,
      "openshift_version": "4.15.2",
      "nodes": {
        "master": 3,
        "compute": 6,
        "infra": 3,
        "compute_machine_type": {
          "id": "m5.2xlarge"
        }
      },
      "api": {
        "url": "https://api.production-cluster.example.com:6443",
        "listening": "external"
      },
      "console": {
        "url": "https://console-openshift-console.apps.production-cluster.example.com"
      },
      "creation_timestamp": "2024-01-15T10:30:00Z",
      "expiration_timestamp": null
    }
  ]
}