{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$ref": "#/definitions/RancherKubernetesEngineConfig",
  "definitions": {
    "AESConfiguration": {
      "required": [
        "keys"
      ],
      "properties": {
        "keys": {
          "items": {
            "$ref": "#/definitions/Key"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AWSCloudProvider": {
      "required": [
        "global"
      ],
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalAwsOpts"
        },
        "serviceOverride": {
          "patternProperties": {
            ".*": {
              "$ref": "#/definitions/ServiceOverride"
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AWSElasticBlockStoreVolumeSource": {
      "required": [
        "volumeID"
      ],
      "properties": {
        "volumeID": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "partition": {
          "type": "integer"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AciNetworkProvider": {
      "properties": {
        "systemId": {
          "type": "string"
        },
        "apicHosts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "token": {
          "type": "string"
        },
        "apicUserName": {
          "type": "string"
        },
        "apicUserKey": {
          "type": "string"
        },
        "apicUserCrt": {
          "type": "string"
        },
        "apicRefreshTime": {
          "type": "string"
        },
        "vmmDomain": {
          "type": "string"
        },
        "vmmController": {
          "type": "string"
        },
        "encapType": {
          "type": "string"
        },
        "nodeSubnet": {
          "type": "string"
        },
        "mcastRangeStart": {
          "type": "string"
        },
        "mcastRangeEnd": {
          "type": "string"
        },
        "aep": {
          "type": "string"
        },
        "vrfName": {
          "type": "string"
        },
        "vrfTenant": {
          "type": "string"
        },
        "l3out": {
          "type": "string"
        },
        "l3outExternalNetworks": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "externDynamic": {
          "type": "string"
        },
        "externStatic": {
          "type": "string"
        },
        "nodeSvcSubnet": {
          "type": "string"
        },
        "kubeApiVlan": {
          "type": "string"
        },
        "serviceVlan": {
          "type": "string"
        },
        "infraVlan": {
          "type": "string"
        },
        "tenant": {
          "type": "string"
        },
        "ovsMemoryLimit": {
          "type": "string"
        },
        "imagePullPolicy": {
          "type": "string"
        },
        "imagePullSecret": {
          "type": "string"
        },
        "serviceMonitorInterval": {
          "type": "string"
        },
        "pbrTrackingNonSnat": {
          "type": "string"
        },
        "installIstio": {
          "type": "string"
        },
        "istioProfile": {
          "type": "string"
        },
        "dropLogEnable": {
          "type": "string"
        },
        "controllerLogLevel": {
          "type": "string"
        },
        "hostAgentLogLevel": {
          "type": "string"
        },
        "opflexLogLevel": {
          "type": "string"
        },
        "useAciCniPriorityClass": {
          "type": "string"
        },
        "noPriorityClass": {
          "type": "string"
        },
        "maxNodesSvcGraph": {
          "type": "string"
        },
        "snatContractScope": {
          "type": "string"
        },
        "podSubnetChunkSize": {
          "type": "string"
        },
        "enableEndpointSlice": {
          "type": "string"
        },
        "snatNamespace": {
          "type": "string"
        },
        "epRegistry": {
          "type": "string"
        },
        "opflexMode": {
          "type": "string"
        },
        "snatPortRangeStart": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "snatPortRangeEnd": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "snatPortsPerNode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "opflexClientSsl": {
          "type": "string"
        },
        "usePrivilegedContainer": {
          "type": "string"
        },
        "useHostNetnsVolume": {
          "type": "string"
        },
        "useOpflexServerVolume": {
          "type": "string"
        },
        "subnetDomainName": {
          "type": "string"
        },
        "kafkaBrokers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "kafkaClientCrt": {
          "type": "string"
        },
        "kafkaClientKey": {
          "type": "string"
        },
        "capic": {
          "type": "string"
        },
        "useAciAnywhereCrd": {
          "type": "string"
        },
        "overlayVrfName": {
          "type": "string"
        },
        "gbpPodSubnet": {
          "type": "string"
        },
        "runGbpContainer": {
          "type": "string"
        },
        "runOpflexServerContainer": {
          "type": "string"
        },
        "opflexServerPort": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AdmissionConfiguration": {
      "required": [
        "TypeMeta",
        "plugins"
      ],
      "properties": {
        "TypeMeta": {
          "$ref": "#/definitions/TypeMeta"
        },
        "plugins": {
          "items": {
            "$ref": "#/definitions/AdmissionPluginConfiguration"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AdmissionPluginConfiguration": {
      "required": [
        "name",
        "path",
        "configuration"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "configuration": {
          "$ref": "#/definitions/Unknown"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AuditLog": {
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "configuration": {
          "$ref": "#/definitions/AuditLogConfig"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AuditLogConfig": {
      "properties": {
        "maxAge": {
          "type": "integer"
        },
        "maxBackup": {
          "type": "integer"
        },
        "maxSize": {
          "type": "integer"
        },
        "path": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "policy": {
          "$ref": "#/definitions/Policy"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AuthWebhookConfig": {
      "properties": {
        "configFile": {
          "type": "string",
          "description": "ConfigFile is a multiline string that represent a custom webhook config file"
        },
        "cacheTimeout": {
          "type": "string",
          "description": "CacheTimeout controls how long to cache authentication decisions"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AuthnConfig": {
      "properties": {
        "strategy": {
          "type": "string",
          "description": "Authentication strategy that will be used in kubernetes cluster"
        },
        "sans": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "List of additional hostnames and IPs to include in the api server PKI cert"
        },
        "webhook": {
          "$ref": "#/definitions/AuthWebhookConfig",
          "description": "Webhook configuration options"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AuthzConfig": {
      "properties": {
        "mode": {
          "type": "string",
          "description": "Authorization mode used by kubernetes"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "Authorization mode options"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AzureCloudProvider": {
      "required": [
        "cloud",
        "tenantId",
        "subscriptionId",
        "resourceGroup",
        "location",
        "vnetName",
        "vnetResourceGroup",
        "subnetName",
        "securityGroupName",
        "routeTableName",
        "primaryAvailabilitySetName",
        "vmType",
        "primaryScaleSetName",
        "aadClientId",
        "aadClientSecret",
        "aadClientCertPath",
        "aadClientCertPassword",
        "cloudProviderBackoff",
        "cloudProviderBackoffRetries",
        "cloudProviderBackoffExponent",
        "cloudProviderBackoffDuration",
        "cloudProviderBackoffJitter",
        "cloudProviderRateLimit",
        "cloudProviderRateLimitQPS",
        "cloudProviderRateLimitBucket",
        "useInstanceMetadata",
        "useManagedIdentityExtension",
        "maximumLoadBalancerRuleCount"
      ],
      "properties": {
        "cloud": {
          "type": "string",
          "description": "The cloud environment identifier. Takes values from https://github.com/Azure/go-autorest/blob/ec5f4903f77ed9927ac95b19ab8e44ada64c1356/autorest/azure/environments.go#L13"
        },
        "tenantId": {
          "type": "string",
          "description": "The AAD Tenant ID for the Subscription that the cluster is deployed in"
        },
        "subscriptionId": {
          "type": "string",
          "description": "The ID of the Azure Subscription that the cluster is deployed in"
        },
        "resourceGroup": {
          "type": "string",
          "description": "The name of the resource group that the cluster is deployed in"
        },
        "location": {
          "type": "string",
          "description": "The location of the resource group that the cluster is deployed in"
        },
        "vnetName": {
          "type": "string",
          "description": "The name of the VNet that the cluster is deployed in"
        },
        "vnetResourceGroup": {
          "type": "string",
          "description": "The name of the resource group that the Vnet is deployed in"
        },
        "subnetName": {
          "type": "string",
          "description": "The name of the subnet that the cluster is deployed in"
        },
        "securityGroupName": {
          "type": "string",
          "description": "The name of the security group attached to the cluster's subnet"
        },
        "routeTableName": {
          "type": "string",
          "description": "(Optional in 1.6) The name of the route table attached to the subnet that the cluster is deployed in"
        },
        "primaryAvailabilitySetName": {
          "type": "string",
          "description": "(Optional) The name of the availability set that should be used as the load balancer backend\nIf this is set, the Azure cloudprovider will only add nodes from that availability set to the load\nbalancer backend pool. If this is not set, and multiple agent pools (availability sets) are used, then\nthe cloudprovider will try to add all nodes to a single backend pool which is forbidden.\nIn other words, if you use multiple agent pools (availability sets), you MUST set this field."
        },
        "vmType": {
          "type": "string",
          "description": "The type of azure nodes. Candidate valudes are: vmss and standard.\nIf not set, it will be default to standard."
        },
        "primaryScaleSetName": {
          "type": "string",
          "description": "The name of the scale set that should be used as the load balancer backend.\nIf this is set, the Azure cloudprovider will only add nodes from that scale set to the load\nbalancer backend pool. If this is not set, and multiple agent pools (scale sets) are used, then\nthe cloudprovider will try to add all nodes to a single backend pool which is forbidden.\nIn other words, if you use multiple agent pools (scale sets), you MUST set this field."
        },
        "aadClientId": {
          "type": "string",
          "description": "The ClientID for an AAD application with RBAC access to talk to Azure RM APIs\nThis's used for service principal authentication: https://github.com/Azure/aks-engine/blob/master/docs/topics/service-principals.md"
        },
        "aadClientSecret": {
          "type": "string",
          "description": "The ClientSecret for an AAD application with RBAC access to talk to Azure RM APIs\nThis's used for service principal authentication: https://github.com/Azure/aks-engine/blob/master/docs/topics/service-principals.md"
        },
        "aadClientCertPath": {
          "type": "string",
          "description": "The path of a client certificate for an AAD application with RBAC access to talk to Azure RM APIs\nThis's used for client certificate authentication: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service"
        },
        "aadClientCertPassword": {
          "type": "string",
          "description": "The password of the client certificate for an AAD application with RBAC access to talk to Azure RM APIs\nThis's used for client certificate authentication: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service"
        },
        "cloudProviderBackoff": {
          "type": "boolean",
          "description": "Enable exponential backoff to manage resource request retries"
        },
        "cloudProviderBackoffRetries": {
          "type": "integer",
          "description": "Backoff retry limit"
        },
        "cloudProviderBackoffExponent": {
          "type": "integer",
          "description": "Backoff exponent"
        },
        "cloudProviderBackoffDuration": {
          "type": "integer",
          "description": "Backoff duration"
        },
        "cloudProviderBackoffJitter": {
          "type": "integer",
          "description": "Backoff jitter"
        },
        "cloudProviderRateLimit": {
          "type": "boolean",
          "description": "Enable rate limiting"
        },
        "cloudProviderRateLimitQPS": {
          "type": "integer",
          "description": "Rate limit QPS"
        },
        "cloudProviderRateLimitBucket": {
          "type": "integer",
          "description": "Rate limit Bucket Size"
        },
        "useInstanceMetadata": {
          "type": "boolean",
          "description": "Use instance metadata service where possible"
        },
        "useManagedIdentityExtension": {
          "type": "boolean",
          "description": "Use managed service identity for the virtual machine to access Azure ARM APIs\nThis's used for managed identity authentication: https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview\nFor user-assigned managed identity, need to set the below UserAssignedIdentityID"
        },
        "userAssignedIdentityID": {
          "type": "string",
          "description": "The Client ID of the user assigned MSI which is assigned to the underlying VMs\nThis's used for managed identity authentication: https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview"
        },
        "maximumLoadBalancerRuleCount": {
          "type": "integer",
          "description": "Maximum allowed LoadBalancer Rule Count is the limit enforced by Azure Load balancer, default(0) to 148"
        },
        "loadBalancerSku": {
          "type": "string",
          "description": "Sku of Load Balancer and Public IP: `basic` or `standard`, default(blank) to `basic`"
        },
        "excludeMasterFromStandardLB": {
          "type": "boolean",
          "description": "Excludes master nodes (labeled with `node-role.kubernetes.io/master`) from the backend pool of Azure standard loadbalancer, default(nil) to `true`\nIf want adding the master nodes to ALB, this should be set to `false` and remove the `node-role.kubernetes.io/master` label from master nodes"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AzureDiskVolumeSource": {
      "required": [
        "diskName",
        "diskURI"
      ],
      "properties": {
        "diskName": {
          "type": "string"
        },
        "diskURI": {
          "type": "string"
        },
        "cachingMode": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "kind": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "AzureFileVolumeSource": {
      "required": [
        "secretName",
        "shareName"
      ],
      "properties": {
        "secretName": {
          "type": "string"
        },
        "shareName": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "BackupConfig": {
      "required": [
        "s3BackupConfig"
      ],
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "intervalHours": {
          "type": "integer"
        },
        "retention": {
          "type": "integer"
        },
        "s3BackupConfig": {
          "$ref": "#/definitions/S3BackupConfig"
        },
        "safeTimestamp": {
          "type": "boolean"
        },
        "timeout": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "BastionHost": {
      "properties": {
        "address": {
          "type": "string",
          "description": "Address of Bastion Host"
        },
        "port": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "SSH Port of Bastion Host"
        },
        "user": {
          "type": "string",
          "description": "ssh User to Bastion Host"
        },
        "sshAgentAuth": {
          "type": "boolean",
          "description": "SSH Agent Auth enable"
        },
        "sshKey": {
          "type": "string",
          "description": "SSH Private Key"
        },
        "sshKeyPath": {
          "type": "string",
          "description": "SSH Private Key Path"
        },
        "sshCert": {
          "type": "string",
          "description": "SSH Certificate"
        },
        "sshCertPath": {
          "type": "string",
          "description": "SSH Certificate Path"
        },
        "ignoreProxyEnvVars": {
          "type": "boolean",
          "description": "Ignore proxy environment variables"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "BlockStorageOpenstackOpts": {
      "required": [
        "bs-version",
        "trust-device-path",
        "ignore-volume-az"
      ],
      "properties": {
        "bs-version": {
          "type": "string",
          "description": "overrides autodetection. v1 or v2. Defaults to auto"
        },
        "trust-device-path": {
          "type": "boolean",
          "description": "See Issue #33128"
        },
        "ignore-volume-az": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CSIVolumeSource": {
      "required": [
        "driver"
      ],
      "properties": {
        "driver": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "fsType": {
          "type": "string"
        },
        "volumeAttributes": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "nodePublishSecretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CalicoNetworkProvider": {
      "required": [
        "cloudProvider"
      ],
      "properties": {
        "cloudProvider": {
          "type": "string",
          "description": "Cloud provider type used with calico"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CanalNetworkProvider": {
      "required": [
        "iface"
      ],
      "properties": {
        "iface": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CephFSVolumeSource": {
      "required": [
        "monitors"
      ],
      "properties": {
        "monitors": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "path": {
          "type": "string"
        },
        "user": {
          "type": "string"
        },
        "secretFile": {
          "type": "string"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CinderVolumeSource": {
      "required": [
        "volumeID"
      ],
      "properties": {
        "volumeID": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "CloudProvider": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the Cloud Provider"
        },
        "awsCloudProvider": {
          "$ref": "#/definitions/AWSCloudProvider",
          "description": "AWSCloudProvider"
        },
        "azureCloudProvider": {
          "$ref": "#/definitions/AzureCloudProvider",
          "description": "AzureCloudProvider"
        },
        "openstackCloudProvider": {
          "$ref": "#/definitions/OpenstackCloudProvider",
          "description": "OpenstackCloudProvider"
        },
        "vsphereCloudProvider": {
          "$ref": "#/definitions/VsphereCloudProvider",
          "description": "VsphereCloudProvider"
        },
        "customCloudProvider": {
          "type": "string",
          "description": "CustomCloudProvider is a multiline string that represent a custom cloud config file"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapKeySelector": {
      "required": [
        "LocalObjectReference",
        "key"
      ],
      "properties": {
        "LocalObjectReference": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "key": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapProjection": {
      "required": [
        "LocalObjectReference"
      ],
      "properties": {
        "LocalObjectReference": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ConfigMapVolumeSource": {
      "required": [
        "LocalObjectReference"
      ],
      "properties": {
        "LocalObjectReference": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "defaultMode": {
          "type": "integer"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Configuration": {
      "required": [
        "TypeMeta",
        "limits"
      ],
      "properties": {
        "TypeMeta": {
          "$ref": "#/definitions/TypeMeta"
        },
        "limits": {
          "items": {
            "$ref": "#/definitions/Limit"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DNSConfig": {
      "properties": {
        "provider": {
          "type": "string",
          "description": "DNS provider"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "DNS config options"
        },
        "upstreamnameservers": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Upstream nameservers"
        },
        "reversecidrs": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "ReverseCIDRs"
        },
        "stubdomains": {
          "patternProperties": {
            ".*": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "description": "Stubdomains"
        },
        "nodeSelector": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "NodeSelector key pair"
        },
        "nodelocal": {
          "$ref": "#/definitions/Nodelocal",
          "description": "Nodelocal DNS"
        },
        "updateStrategy": {
          "$ref": "#/definitions/DeploymentStrategy",
          "description": "Update strategy"
        },
        "linearAutoscalerParams": {
          "$ref": "#/definitions/LinearAutoscalerParams",
          "description": "Autoscaler fields to determine number of dns replicas"
        },
        "tolerations": {
          "items": {
            "$ref": "#/definitions/Toleration"
          },
          "type": "array",
          "description": "Tolerations for Deployments"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DaemonSetUpdateStrategy": {
      "properties": {
        "strategy": {
          "type": "string"
        },
        "rollingUpdate": {
          "$ref": "#/definitions/RollingUpdateDaemonSet"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DeploymentStrategy": {
      "properties": {
        "strategy": {
          "type": "string"
        },
        "rollingUpdate": {
          "$ref": "#/definitions/RollingUpdateDeployment"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DiskVsphereOpts": {
      "properties": {
        "scsicontrollertype": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DownwardAPIProjection": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/definitions/DownwardAPIVolumeFile"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DownwardAPIVolumeFile": {
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "string"
        },
        "fieldRef": {
          "$ref": "#/definitions/ObjectFieldSelector"
        },
        "resourceFieldRef": {
          "$ref": "#/definitions/ResourceFieldSelector"
        },
        "mode": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "DownwardAPIVolumeSource": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/definitions/DownwardAPIVolumeFile"
          },
          "type": "array"
        },
        "defaultMode": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Duration": {
      "properties": {},
      "additionalProperties": false,
      "type": "object"
    },
    "ECRCredentialPlugin": {
      "properties": {
        "awsAccessKeyId": {
          "type": "string"
        },
        "awsSecretAccessKey": {
          "type": "string"
        },
        "awsAccessToken": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ETCDService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "externalUrls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "List of etcd urls"
        },
        "caCert": {
          "type": "string",
          "description": "External CA certificate"
        },
        "cert": {
          "type": "string",
          "description": "External Client certificate"
        },
        "key": {
          "type": "string",
          "description": "External Client key"
        },
        "path": {
          "type": "string",
          "description": "External etcd prefix"
        },
        "uid": {
          "type": "integer",
          "description": "UID to run etcd container as"
        },
        "gid": {
          "type": "integer",
          "description": "GID to run etcd container as"
        },
        "snapshot": {
          "type": "boolean",
          "description": "Etcd Recurring snapshot Service, used by rke only"
        },
        "retention": {
          "type": "string",
          "description": "Etcd snapshot Retention period"
        },
        "creation": {
          "type": "string",
          "description": "Etcd snapshot Creation period"
        },
        "backupConfig": {
          "$ref": "#/definitions/BackupConfig",
          "description": "Backup backend for etcd snapshots"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EmptyDirVolumeSource": {
      "properties": {
        "medium": {
          "type": "string"
        },
        "sizeLimit": {
          "$ref": "#/definitions/Quantity"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EncryptionConfiguration": {
      "required": [
        "resources"
      ],
      "properties": {
        "kind": {
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "resources": {
          "items": {
            "$ref": "#/definitions/ResourceConfiguration"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EnvVarSource": {
      "properties": {
        "fieldRef": {
          "$ref": "#/definitions/ObjectFieldSelector"
        },
        "resourceFieldRef": {
          "$ref": "#/definitions/ResourceFieldSelector"
        },
        "configMapKeyRef": {
          "$ref": "#/definitions/ConfigMapKeySelector"
        },
        "secretKeyRef": {
          "$ref": "#/definitions/SecretKeySelector"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EphemeralVolumeSource": {
      "properties": {
        "volumeClaimTemplate": {
          "$ref": "#/definitions/PersistentVolumeClaimTemplate"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "EventRateLimit": {
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "configuration": {
          "$ref": "#/definitions/Configuration"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ExtraEnv": {
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "valueFrom": {
          "$ref": "#/definitions/EnvVarSource"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ExtraVolume": {
      "required": [
        "name",
        "VolumeSource"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "VolumeSource": {
          "$ref": "#/definitions/VolumeSource"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ExtraVolumeMount": {
      "required": [
        "name",
        "mountPath"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "mountPath": {
          "type": "string"
        },
        "subPath": {
          "type": "string"
        },
        "mountPropagation": {
          "type": "string"
        },
        "subPathExpr": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FCVolumeSource": {
      "properties": {
        "targetWWNs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "lun": {
          "type": "integer"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "wwids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FieldsV1": {
      "properties": {},
      "additionalProperties": false,
      "type": "object"
    },
    "FlannelNetworkProvider": {
      "required": [
        "iface"
      ],
      "properties": {
        "iface": {
          "type": "string",
          "description": "Alternate cloud interface for flannel"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FlexVolumeSource": {
      "required": [
        "driver"
      ],
      "properties": {
        "driver": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "readOnly": {
          "type": "boolean"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "FlockerVolumeSource": {
      "properties": {
        "datasetName": {
          "type": "string"
        },
        "datasetUUID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GCEPersistentDiskVolumeSource": {
      "required": [
        "pdName"
      ],
      "properties": {
        "pdName": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "partition": {
          "type": "integer"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GitRepoVolumeSource": {
      "required": [
        "repository"
      ],
      "properties": {
        "repository": {
          "type": "string"
        },
        "revision": {
          "type": "string"
        },
        "directory": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GlobalAwsOpts": {
      "required": [
        "zone",
        "vpc",
        "subnet-id",
        "routetable-id",
        "role-arn",
        "kubernetes-cluster-tag",
        "kubernetes-cluster-id",
        "disable-security-group-ingress",
        "elb-security-group",
        "disable-strict-zone-check"
      ],
      "properties": {
        "zone": {
          "type": "string",
          "description": "TODO: Is there any use for this?  We can get it from the instance metadata service\nMaybe if we're not running on AWS, e.g. bootstrap; for now it is not very useful"
        },
        "vpc": {
          "type": "string",
          "description": "The AWS VPC flag enables the possibility to run the master components\non a different aws account, on a different cloud provider or on-premises.\nIf the flag is set also the KubernetesClusterTag must be provided"
        },
        "subnet-id": {
          "type": "string",
          "description": "SubnetID enables using a specific subnet to use for ELB's"
        },
        "routetable-id": {
          "type": "string",
          "description": "RouteTableID enables using a specific RouteTable"
        },
        "role-arn": {
          "type": "string",
          "description": "RoleARN is the IAM role to assume when interaction with AWS APIs."
        },
        "kubernetes-cluster-tag": {
          "type": "string",
          "description": "KubernetesClusterTag is the legacy cluster id we'll use to identify our cluster resources"
        },
        "kubernetes-cluster-id": {
          "type": "string",
          "description": "KubernetesClusterID is the cluster id we'll use to identify our cluster resources"
        },
        "disable-security-group-ingress": {
          "type": "boolean",
          "description": "The aws provider creates an inbound rule per load balancer on the node security\ngroup. However, this can run into the AWS security group rule limit of 50 if\nmany LoadBalancers are created.\n\nThis flag disables the automatic ingress creation. It requires that the user\nhas setup a rule that allows inbound traffic on kubelet ports from the\nlocal VPC subnet (so load balancers can access it). E.g. 10.82.0.0/16 30000-32000."
        },
        "elb-security-group": {
          "type": "string",
          "description": "AWS has a hard limit of 500 security groups. For large clusters creating a security group for each ELB\ncan cause the max number of security groups to be reached. If this is set instead of creating a new\nSecurity group for each ELB this security group will be used instead."
        },
        "disable-strict-zone-check": {
          "type": "boolean",
          "description": "During the instantiation of an new AWS cloud provider, the detected region\nis validated against a known set of regions.\n\nIn a non-standard, AWS like environment (e.g. Eucalyptus), this check may\nbe undesirable.  Setting this to true will disable the check and provide\na warning that the check was skipped.  Please note that this is an\nexperimental feature and work-in-progress for the moment.  If you find\nyourself in an non-AWS cloud and open an issue, please indicate that in the\nissue body."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GlobalOpenstackOpts": {
      "required": [
        "auth-url",
        "username",
        "user-id",
        "password",
        "tenant-id",
        "tenant-name",
        "trust-id",
        "domain-id",
        "domain-name",
        "region",
        "ca-file"
      ],
      "properties": {
        "auth-url": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "user-id": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "tenant-id": {
          "type": "string"
        },
        "tenant-name": {
          "type": "string"
        },
        "trust-id": {
          "type": "string"
        },
        "domain-id": {
          "type": "string"
        },
        "domain-name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "ca-file": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GlobalVsphereOpts": {
      "properties": {
        "user": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "server": {
          "type": "string"
        },
        "port": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "insecure-flag": {
          "type": "boolean"
        },
        "datacenter": {
          "type": "string"
        },
        "datacenters": {
          "type": "string"
        },
        "datastore": {
          "type": "string"
        },
        "working-dir": {
          "type": "string"
        },
        "soap-roundtrip-count": {
          "type": "integer"
        },
        "vm-uuid": {
          "type": "string"
        },
        "vm-name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GlusterfsVolumeSource": {
      "required": [
        "endpoints",
        "path"
      ],
      "properties": {
        "endpoints": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "GroupResources": {
      "properties": {
        "group": {
          "type": "string"
        },
        "resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resourceNames": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "HostPathVolumeSource": {
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ISCSIVolumeSource": {
      "required": [
        "targetPortal",
        "iqn",
        "lun"
      ],
      "properties": {
        "targetPortal": {
          "type": "string"
        },
        "iqn": {
          "type": "string"
        },
        "lun": {
          "type": "integer"
        },
        "iscsiInterface": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "portals": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "chapAuthDiscovery": {
          "type": "boolean"
        },
        "chapAuthSession": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "initiatorName": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "IdentityConfiguration": {
      "properties": {},
      "additionalProperties": false,
      "type": "object"
    },
    "IngressConfig": {
      "properties": {
        "provider": {
          "type": "string",
          "description": "Ingress controller type used by kubernetes"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "These options are NOT for configuring Ingress's addon template.\nThey are used for its ConfigMap options specifically."
        },
        "nodeSelector": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "NodeSelector key pair"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "Ingress controller extra arguments"
        },
        "dnsPolicy": {
          "type": "string",
          "description": "DNS Policy"
        },
        "extraEnvs": {
          "items": {
            "$ref": "#/definitions/ExtraEnv"
          },
          "type": "array",
          "description": "Extra Env vars"
        },
        "extraVolumes": {
          "items": {
            "$ref": "#/definitions/ExtraVolume"
          },
          "type": "array",
          "description": "Extra volumes"
        },
        "extraVolumeMounts": {
          "items": {
            "$ref": "#/definitions/ExtraVolumeMount"
          },
          "type": "array",
          "description": "Extra volume mounts"
        },
        "updateStrategy": {
          "$ref": "#/definitions/DaemonSetUpdateStrategy",
          "description": "nginx daemonset upgrade strategy"
        },
        "httpPort": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "Http port for ingress controller daemonset"
        },
        "httpsPort": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "Https port for ingress controller daemonset"
        },
        "networkMode": {
          "type": "string",
          "description": "NetworkMode selector for ingress controller pods. Default is HostNetwork"
        },
        "tolerations": {
          "items": {
            "$ref": "#/definitions/Toleration"
          },
          "type": "array",
          "description": "Tolerations for Deployments"
        },
        "defaultBackend": {
          "type": "boolean",
          "description": "Enable or disable nginx default-http-backend"
        },
        "defaultHttpBackendPriorityClassName": {
          "type": "string",
          "description": "Priority class name for Nginx-Ingress's \"default-http-backend\" deployment"
        },
        "nginxIngressControllerPriorityClassName": {
          "type": "string",
          "description": "Priority class name for Nginx-Ingress's \"nginx-ingress-controller\" daemonset"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "IntOrString": {
      "required": [
        "Type",
        "IntVal",
        "StrVal"
      ],
      "properties": {
        "Type": {
          "type": "integer"
        },
        "IntVal": {
          "type": "integer"
        },
        "StrVal": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KMSConfiguration": {
      "required": [
        "name",
        "endpoint"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "cachesize": {
          "type": "integer"
        },
        "endpoint": {
          "type": "string"
        },
        "timeout": {
          "$ref": "#/definitions/Duration"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Key": {
      "required": [
        "name",
        "secret"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "secret": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KeyToPath": {
      "required": [
        "key",
        "path"
      ],
      "properties": {
        "key": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "mode": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KubeAPIService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "serviceClusterIpRange": {
          "type": "string",
          "description": "Virtual IP range that will be used by Kubernetes services"
        },
        "serviceNodePortRange": {
          "type": "string",
          "description": "Port range for services defined with NodePort type"
        },
        "podSecurityPolicy": {
          "type": "boolean",
          "description": "Enabled/Disable PodSecurityPolicy"
        },
        "alwaysPullImages": {
          "type": "boolean",
          "description": "Enable/Disable AlwaysPullImages admissions plugin"
        },
        "secretsEncryptionConfig": {
          "$ref": "#/definitions/SecretsEncryptionConfig",
          "description": "Secrets encryption provider config"
        },
        "auditLog": {
          "$ref": "#/definitions/AuditLog",
          "description": "Audit Log Configuration"
        },
        "admissionConfiguration": {
          "$ref": "#/definitions/AdmissionConfiguration",
          "description": "AdmissionConfiguration"
        },
        "eventRateLimit": {
          "$ref": "#/definitions/EventRateLimit",
          "description": "Event Rate Limit configuration"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KubeControllerService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterCidr": {
          "type": "string",
          "description": "CIDR Range for Pods in cluster"
        },
        "serviceClusterIpRange": {
          "type": "string",
          "description": "Virtual IP range that will be used by Kubernetes services"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KubeletService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterDomain": {
          "type": "string",
          "description": "Domain of the cluster (default: \"cluster.local\")"
        },
        "infraContainerImage": {
          "type": "string",
          "description": "The image whose network/ipc namespaces containers in each pod will use"
        },
        "clusterDnsServer": {
          "type": "string",
          "description": "Cluster DNS service ip"
        },
        "failSwapOn": {
          "type": "boolean",
          "description": "Fail if swap is enabled"
        },
        "generateServingCertificate": {
          "type": "boolean",
          "description": "Generate per node kubelet serving certificates created using kube-ca"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "KubeproxyService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LabelSelector": {
      "properties": {
        "matchLabels": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "matchExpressions": {
          "items": {
            "$ref": "#/definitions/LabelSelectorRequirement"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LabelSelectorRequirement": {
      "required": [
        "key",
        "operator"
      ],
      "properties": {
        "key": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "values": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Limit": {
      "required": [
        "type",
        "qps",
        "burst"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "qps": {
          "type": "integer"
        },
        "burst": {
          "type": "integer"
        },
        "cacheSize": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LinearAutoscalerParams": {
      "properties": {
        "coresPerReplica": {
          "type": "number"
        },
        "nodesPerReplica": {
          "type": "number"
        },
        "min": {
          "type": "integer"
        },
        "max": {
          "type": "integer"
        },
        "preventSinglePointFailure": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LoadBalancerOpenstackOpts": {
      "required": [
        "lb-version",
        "use-octavia",
        "subnet-id",
        "floating-network-id",
        "lb-method",
        "lb-provider",
        "create-monitor",
        "monitor-delay",
        "monitor-timeout",
        "monitor-max-retries",
        "manage-security-groups"
      ],
      "properties": {
        "lb-version": {
          "type": "string",
          "description": "overrides autodetection. Only support v2."
        },
        "use-octavia": {
          "type": "boolean",
          "description": "uses Octavia V2 service catalog endpoint"
        },
        "subnet-id": {
          "type": "string",
          "description": "overrides autodetection."
        },
        "floating-network-id": {
          "type": "string",
          "description": "If specified, will create floating ip for loadbalancer, or do not create floating ip."
        },
        "lb-method": {
          "type": "string",
          "description": "default to ROUND_ROBIN."
        },
        "lb-provider": {
          "type": "string"
        },
        "create-monitor": {
          "type": "boolean"
        },
        "monitor-delay": {
          "type": "string"
        },
        "monitor-timeout": {
          "type": "string"
        },
        "monitor-max-retries": {
          "type": "integer"
        },
        "manage-security-groups": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "LocalObjectReference": {
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ManagedFieldsEntry": {
      "properties": {
        "manager": {
          "type": "string"
        },
        "operation": {
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        },
        "time": {
          "type": "string",
          "format": "date-time"
        },
        "fieldsType": {
          "type": "string"
        },
        "fieldsV1": {
          "$ref": "#/definitions/FieldsV1"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "MetadataOpenstackOpts": {
      "required": [
        "search-order",
        "request-timeout"
      ],
      "properties": {
        "search-order": {
          "type": "string"
        },
        "request-timeout": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "MonitoringConfig": {
      "properties": {
        "provider": {
          "type": "string",
          "description": "Monitoring server provider"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "These options are NOT for configuring the Metrics-Server's addon template.\nThey are used to pass command args to the metric-server's deployment containers specifically."
        },
        "nodeSelector": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "NodeSelector key pair"
        },
        "updateStrategy": {
          "$ref": "#/definitions/DeploymentStrategy",
          "description": "Update strategy"
        },
        "replicas": {
          "type": "integer",
          "description": "Number of monitoring addon pods"
        },
        "tolerations": {
          "items": {
            "$ref": "#/definitions/Toleration"
          },
          "type": "array",
          "description": "Tolerations for Deployments"
        },
        "metricsServerPriorityClassName": {
          "type": "string",
          "description": "Priority class name for Metrics-Server's \"metrics-server\" deployment"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NFSVolumeSource": {
      "required": [
        "server",
        "path"
      ],
      "properties": {
        "server": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NetworkConfig": {
      "properties": {
        "plugin": {
          "type": "string",
          "description": "Network Plugin That will be used in kubernetes cluster"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "Plugin options to configure network properties"
        },
        "mtu": {
          "type": "integer",
          "description": "Set MTU for CNI provider"
        },
        "calicoNetworkProvider": {
          "$ref": "#/definitions/CalicoNetworkProvider",
          "description": "CalicoNetworkProvider"
        },
        "canalNetworkProvider": {
          "$ref": "#/definitions/CanalNetworkProvider",
          "description": "CanalNetworkProvider"
        },
        "flannelNetworkProvider": {
          "$ref": "#/definitions/FlannelNetworkProvider",
          "description": "FlannelNetworkProvider"
        },
        "weaveNetworkProvider": {
          "$ref": "#/definitions/WeaveNetworkProvider",
          "description": "WeaveNetworkProvider"
        },
        "aciNetworkProvider": {
          "$ref": "#/definitions/AciNetworkProvider",
          "description": "AciNetworkProvider"
        },
        "nodeSelector": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "NodeSelector key pair"
        },
        "updateStrategy": {
          "$ref": "#/definitions/DaemonSetUpdateStrategy",
          "description": "Network plugin daemonset upgrade strategy"
        },
        "tolerations": {
          "items": {
            "$ref": "#/definitions/Toleration"
          },
          "type": "array",
          "description": "Tolerations for Deployments"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NetworkVshpereOpts": {
      "properties": {
        "public-network": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NodeDrainInput": {
      "required": [
        "timeout"
      ],
      "properties": {
        "force": {
          "type": "boolean",
          "description": "Drain node even if there are pods not managed by a ReplicationController, Job, or DaemonSet\nDrain will not proceed without Force set to true if there are such pods"
        },
        "ignoreDaemonSets": {
          "type": "boolean",
          "description": "If there are DaemonSet-managed pods, drain will not proceed without IgnoreDaemonSets set to true\n(even when set to true, kubectl won't delete pods - so setting default to true)"
        },
        "deleteLocalData": {
          "type": "boolean",
          "description": "Continue even if there are pods using emptyDir"
        },
        "gracePeriod": {
          "type": "integer",
          "description": "Period of time in seconds given to each pod to terminate gracefully.\nIf negative, the default value specified in the pod will be used"
        },
        "timeout": {
          "type": "integer",
          "description": "Time to wait (in seconds) before giving up for one try"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "NodeUpgradeStrategy": {
      "properties": {
        "maxUnavailableWorker": {
          "type": "string",
          "description": "MaxUnavailableWorker input can be a number of nodes or a percentage of nodes (example, max_unavailable_worker: 2 OR max_unavailable_worker: 20%)"
        },
        "maxUnavailableControlplane": {
          "type": "string",
          "description": "MaxUnavailableControlplane input can be a number of nodes or a percentage of nodes"
        },
        "drain": {
          "type": "boolean"
        },
        "nodeDrainInput": {
          "$ref": "#/definitions/NodeDrainInput"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Nodelocal": {
      "properties": {
        "ipAddress": {
          "type": "string",
          "description": "link-local IP for nodelocal DNS"
        },
        "updateStrategy": {
          "$ref": "#/definitions/DaemonSetUpdateStrategy",
          "description": "Nodelocal DNS daemonset upgrade strategy"
        },
        "nodeSelector": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "NodeSelector key pair"
        },
        "nodeLocalDnsPriorityClassName": {
          "type": "string",
          "description": "Priority class name for NodeLocal's \"node-local-dns\" daemonset"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ObjectFieldSelector": {
      "required": [
        "fieldPath"
      ],
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "fieldPath": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ObjectMeta": {
      "properties": {
        "name": {
          "type": "string"
        },
        "generateName": {
          "type": "string"
        },
        "namespace": {
          "type": "string"
        },
        "selfLink": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "resourceVersion": {
          "type": "string"
        },
        "generation": {
          "type": "integer"
        },
        "creationTimestamp": {
          "$ref": "#/definitions/Time"
        },
        "deletionTimestamp": {
          "type": "string",
          "format": "date-time"
        },
        "deletionGracePeriodSeconds": {
          "type": "integer"
        },
        "labels": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "annotations": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "ownerReferences": {
          "items": {
            "$ref": "#/definitions/OwnerReference"
          },
          "type": "array"
        },
        "finalizers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "clusterName": {
          "type": "string"
        },
        "managedFields": {
          "items": {
            "$ref": "#/definitions/ManagedFieldsEntry"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "OpenstackCloudProvider": {
      "required": [
        "global",
        "loadBalancer",
        "blockStorage",
        "route",
        "metadata"
      ],
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalOpenstackOpts"
        },
        "loadBalancer": {
          "$ref": "#/definitions/LoadBalancerOpenstackOpts"
        },
        "blockStorage": {
          "$ref": "#/definitions/BlockStorageOpenstackOpts"
        },
        "route": {
          "$ref": "#/definitions/RouteOpenstackOpts"
        },
        "metadata": {
          "$ref": "#/definitions/MetadataOpenstackOpts"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "OwnerReference": {
      "required": [
        "apiVersion",
        "kind",
        "name",
        "uid"
      ],
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "controller": {
          "type": "boolean"
        },
        "blockOwnerDeletion": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PersistentVolumeClaimSpec": {
      "properties": {
        "accessModes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "selector": {
          "$ref": "#/definitions/LabelSelector"
        },
        "resources": {
          "$ref": "#/definitions/ResourceRequirements"
        },
        "volumeName": {
          "type": "string"
        },
        "storageClassName": {
          "type": "string"
        },
        "volumeMode": {
          "type": "string"
        },
        "dataSource": {
          "$ref": "#/definitions/TypedLocalObjectReference"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PersistentVolumeClaimTemplate": {
      "required": [
        "spec"
      ],
      "properties": {
        "metadata": {
          "$ref": "#/definitions/ObjectMeta"
        },
        "spec": {
          "$ref": "#/definitions/PersistentVolumeClaimSpec"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PersistentVolumeClaimVolumeSource": {
      "required": [
        "claimName"
      ],
      "properties": {
        "claimName": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PhotonPersistentDiskVolumeSource": {
      "required": [
        "pdID"
      ],
      "properties": {
        "pdID": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Policy": {
      "required": [
        "TypeMeta",
        "rules"
      ],
      "properties": {
        "TypeMeta": {
          "$ref": "#/definitions/TypeMeta"
        },
        "metadata": {
          "$ref": "#/definitions/ObjectMeta"
        },
        "rules": {
          "items": {
            "$ref": "#/definitions/PolicyRule"
          },
          "type": "array"
        },
        "omitStages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PolicyRule": {
      "required": [
        "level"
      ],
      "properties": {
        "level": {
          "type": "string"
        },
        "users": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "userGroups": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "verbs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "resources": {
          "items": {
            "$ref": "#/definitions/GroupResources"
          },
          "type": "array"
        },
        "namespaces": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "nonResourceURLs": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "omitStages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PortworxVolumeSource": {
      "required": [
        "volumeID"
      ],
      "properties": {
        "volumeID": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "PrivateRegistry": {
      "properties": {
        "url": {
          "type": "string",
          "description": "URL for the registry"
        },
        "user": {
          "type": "string",
          "description": "User name for registry acces"
        },
        "password": {
          "type": "string",
          "description": "Password for registry access"
        },
        "isDefault": {
          "type": "boolean",
          "description": "Default registry"
        },
        "ecrCredentialPlugin": {
          "$ref": "#/definitions/ECRCredentialPlugin",
          "description": "ECRCredentialPlugin"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ProjectedVolumeSource": {
      "required": [
        "sources"
      ],
      "properties": {
        "sources": {
          "items": {
            "$ref": "#/definitions/VolumeProjection"
          },
          "type": "array"
        },
        "defaultMode": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ProviderConfiguration": {
      "properties": {
        "aesgcm": {
          "$ref": "#/definitions/AESConfiguration"
        },
        "aescbc": {
          "$ref": "#/definitions/AESConfiguration"
        },
        "secretbox": {
          "$ref": "#/definitions/SecretboxConfiguration"
        },
        "identity": {
          "$ref": "#/definitions/IdentityConfiguration"
        },
        "kms": {
          "$ref": "#/definitions/KMSConfiguration"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Quantity": {
      "properties": {},
      "additionalProperties": false,
      "type": "object"
    },
    "QuobyteVolumeSource": {
      "required": [
        "registry",
        "volume"
      ],
      "properties": {
        "registry": {
          "type": "string"
        },
        "volume": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "user": {
          "type": "string"
        },
        "group": {
          "type": "string"
        },
        "tenant": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RBDVolumeSource": {
      "required": [
        "monitors",
        "image"
      ],
      "properties": {
        "monitors": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "image": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "pool": {
          "type": "string"
        },
        "user": {
          "type": "string"
        },
        "keyring": {
          "type": "string"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RKEConfigNode": {
      "properties": {
        "nodeName": {
          "type": "string",
          "description": "Name of the host provisioned via docker machine"
        },
        "address": {
          "type": "string",
          "description": "IP or FQDN that is fully resolvable and used for SSH communication"
        },
        "port": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "description": "Port used for SSH communication"
        },
        "internalAddress": {
          "type": "string",
          "description": "Optional - Internal address that will be used for components communication"
        },
        "role": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Node role in kubernetes cluster (controlplane, worker, or etcd)"
        },
        "hostnameOverride": {
          "type": "string",
          "description": "Optional - Hostname of the node"
        },
        "user": {
          "type": "string",
          "description": "SSH usesr that will be used by RKE"
        },
        "dockerSocket": {
          "type": "string",
          "description": "Optional - Docker socket on the node that will be used in tunneling"
        },
        "sshAgentAuth": {
          "type": "boolean",
          "description": "SSH Agent Auth enable"
        },
        "sshKey": {
          "type": "string",
          "description": "SSH Private Key"
        },
        "sshKeyPath": {
          "type": "string",
          "description": "SSH Private Key Path"
        },
        "sshCert": {
          "type": "string",
          "description": "SSH Certificate"
        },
        "sshCertPath": {
          "type": "string",
          "description": "SSH Certificate Path"
        },
        "labels": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object",
          "description": "Node Labels"
        },
        "taints": {
          "items": {
            "$ref": "#/definitions/RKETaint"
          },
          "type": "array",
          "description": "Node Taints"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RKEConfigServices": {
      "properties": {
        "etcd": {
          "$ref": "#/definitions/ETCDService",
          "description": "Etcd Service"
        },
        "kubeApi": {
          "$ref": "#/definitions/KubeAPIService",
          "description": "KubeAPI Service"
        },
        "kubeController": {
          "$ref": "#/definitions/KubeControllerService",
          "description": "KubeController Service"
        },
        "scheduler": {
          "$ref": "#/definitions/SchedulerService",
          "description": "Scheduler Service"
        },
        "kubelet": {
          "$ref": "#/definitions/KubeletService",
          "description": "Kubelet Service"
        },
        "kubeproxy": {
          "$ref": "#/definitions/KubeproxyService",
          "description": "KubeProxy Service"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RKESystemImages": {
      "properties": {
        "etcd": {
          "type": "string",
          "description": "etcd image"
        },
        "alpine": {
          "type": "string",
          "description": "Alpine image"
        },
        "nginxProxy": {
          "type": "string",
          "description": "rke-nginx-proxy image"
        },
        "certDownloader": {
          "type": "string",
          "description": "rke-cert-deployer image"
        },
        "kubernetesServicesSidecar": {
          "type": "string",
          "description": "rke-service-sidekick image"
        },
        "kubedns": {
          "type": "string",
          "description": "KubeDNS image"
        },
        "dnsmasq": {
          "type": "string",
          "description": "DNSMasq image"
        },
        "kubednsSidecar": {
          "type": "string",
          "description": "KubeDNS side car image"
        },
        "kubednsAutoscaler": {
          "type": "string",
          "description": "KubeDNS autoscaler image"
        },
        "coredns": {
          "type": "string",
          "description": "CoreDNS image"
        },
        "corednsAutoscaler": {
          "type": "string",
          "description": "CoreDNS autoscaler image"
        },
        "nodelocal": {
          "type": "string",
          "description": "Nodelocal image"
        },
        "kubernetes": {
          "type": "string",
          "description": "Kubernetes image"
        },
        "flannel": {
          "type": "string",
          "description": "Flannel image"
        },
        "flannelCni": {
          "type": "string",
          "description": "Flannel CNI image"
        },
        "calicoNode": {
          "type": "string",
          "description": "Calico Node image"
        },
        "calicoCni": {
          "type": "string",
          "description": "Calico CNI image"
        },
        "calicoControllers": {
          "type": "string",
          "description": "Calico Controllers image"
        },
        "calicoCtl": {
          "type": "string",
          "description": "Calicoctl image"
        },
        "calicoFlexVol": {
          "type": "string",
          "description": "CalicoFlexVol image"
        },
        "canalNode": {
          "type": "string",
          "description": "Canal Node Image"
        },
        "canalCni": {
          "type": "string",
          "description": "Canal CNI image"
        },
        "canalControllers": {
          "type": "string",
          "description": "Canal Controllers Image needed for Calico/Canal v3.14.0+"
        },
        "canalFlannel": {
          "type": "string",
          "description": "CanalFlannel image"
        },
        "canalFlexVol": {
          "type": "string",
          "description": "CanalFlexVol image"
        },
        "weaveNode": {
          "type": "string",
          "description": "Weave Node image"
        },
        "weaveCni": {
          "type": "string",
          "description": "Weave CNI image"
        },
        "podInfraContainer": {
          "type": "string",
          "description": "Pod infra container image"
        },
        "ingress": {
          "type": "string",
          "description": "Ingress Controller image"
        },
        "ingressBackend": {
          "type": "string",
          "description": "Ingress Controller Backend image"
        },
        "ingressWebhook": {
          "type": "string",
          "description": "Ingress Webhook image"
        },
        "metricsServer": {
          "type": "string",
          "description": "Metrics Server image"
        },
        "windowsPodInfraContainer": {
          "type": "string",
          "description": "Pod infra container image for Windows"
        },
        "aciCniDeployContainer": {
          "type": "string",
          "description": "Cni deployer container image for Cisco ACI"
        },
        "aciHostContainer": {
          "type": "string",
          "description": "host container image for Cisco ACI"
        },
        "aciOpflexContainer": {
          "type": "string",
          "description": "opflex agent container image for Cisco ACI"
        },
        "aciMcastContainer": {
          "type": "string",
          "description": "mcast daemon container image for Cisco ACI"
        },
        "aciOvsContainer": {
          "type": "string",
          "description": "OpenvSwitch container image for Cisco ACI"
        },
        "aciControllerContainer": {
          "type": "string",
          "description": "Controller container image for Cisco ACI"
        },
        "aciGbpServerContainer": {
          "type": "string",
          "description": "GBP Server container image for Cisco ACI"
        },
        "aciOpflexServerContainer": {
          "type": "string",
          "description": "Opflex Server container image for Cisco ACI"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RKETaint": {
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "effect": {
          "type": "string"
        },
        "timeAdded": {
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RancherKubernetesEngineConfig": {
      "properties": {
        "nodes": {
          "items": {
            "$ref": "#/definitions/RKEConfigNode"
          },
          "type": "array",
          "description": "Kubernetes nodes"
        },
        "services": {
          "$ref": "#/definitions/RKEConfigServices",
          "description": "Kubernetes components"
        },
        "network": {
          "$ref": "#/definitions/NetworkConfig",
          "description": "Network configuration used in the kubernetes cluster (flannel, calico)"
        },
        "authentication": {
          "$ref": "#/definitions/AuthnConfig",
          "description": "Authentication configuration used in the cluster (default: x509)"
        },
        "addons": {
          "type": "string",
          "description": "YAML manifest for user provided addons to be deployed on the cluster"
        },
        "addonsInclude": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "List of urls or paths for addons"
        },
        "systemImages": {
          "$ref": "#/definitions/RKESystemImages",
          "description": "List of images used internally for proxy, cert download and kubedns"
        },
        "sshKeyPath": {
          "type": "string",
          "description": "SSH Private Key Path"
        },
        "sshCertPath": {
          "type": "string",
          "description": "SSH Certificate Path"
        },
        "sshAgentAuth": {
          "type": "boolean",
          "description": "SSH Agent Auth enable"
        },
        "authorization": {
          "$ref": "#/definitions/AuthzConfig",
          "description": "Authorization mode configuration used in the cluster"
        },
        "ignoreDockerVersion": {
          "type": "boolean",
          "description": "Enable/disable strict docker version checking"
        },
        "enableCriDockerd": {
          "type": "boolean",
          "description": "Enable/disable using cri-dockerd"
        },
        "kubernetesVersion": {
          "type": "string",
          "description": "Kubernetes version to use (if kubernetes image is specified, image version takes precedence)"
        },
        "privateRegistries": {
          "items": {
            "$ref": "#/definitions/PrivateRegistry"
          },
          "type": "array",
          "description": "List of private registries and their credentials"
        },
        "ingress": {
          "$ref": "#/definitions/IngressConfig",
          "description": "Ingress controller used in the cluster"
        },
        "clusterName": {
          "type": "string",
          "description": "Cluster Name used in the kube config"
        },
        "cloudProvider": {
          "$ref": "#/definitions/CloudProvider",
          "description": "Cloud Provider options"
        },
        "prefixPath": {
          "type": "string",
          "description": "kubernetes directory path"
        },
        "winPrefixPath": {
          "type": "string",
          "description": "kubernetes directory path for windows"
        },
        "addonJobTimeout": {
          "type": "integer",
          "description": "Timeout in seconds for status check on addon deployment jobs"
        },
        "bastionHost": {
          "$ref": "#/definitions/BastionHost",
          "description": "Bastion/Jump Host configuration"
        },
        "monitoring": {
          "$ref": "#/definitions/MonitoringConfig",
          "description": "Monitoring Config"
        },
        "restore": {
          "$ref": "#/definitions/RestoreConfig",
          "description": "RestoreCluster flag"
        },
        "rotateCertificates": {
          "$ref": "#/definitions/RotateCertificates",
          "description": "Rotating Certificates Option"
        },
        "rotateEncryptionKey": {
          "type": "boolean",
          "description": "Rotate Encryption Key Option"
        },
        "dns": {
          "$ref": "#/definitions/DNSConfig",
          "description": "DNS Config"
        },
        "upgradeStrategy": {
          "$ref": "#/definitions/NodeUpgradeStrategy",
          "description": "Upgrade Strategy for the cluster"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ResourceConfiguration": {
      "required": [
        "resources",
        "providers"
      ],
      "properties": {
        "resources": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "providers": {
          "items": {
            "$ref": "#/definitions/ProviderConfiguration"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ResourceFieldSelector": {
      "required": [
        "resource"
      ],
      "properties": {
        "containerName": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "divisor": {
          "$ref": "#/definitions/Quantity"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ResourceRequirements": {
      "properties": {
        "limits": {
          "patternProperties": {
            ".*": {
              "$ref": "#/definitions/Quantity"
            }
          },
          "type": "object"
        },
        "requests": {
          "patternProperties": {
            ".*": {
              "$ref": "#/definitions/Quantity"
            }
          },
          "type": "object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RestoreConfig": {
      "properties": {
        "restore": {
          "type": "boolean"
        },
        "snapshotName": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RollingUpdateDaemonSet": {
      "properties": {
        "maxUnavailable": {
          "$ref": "#/definitions/IntOrString"
        },
        "maxSurge": {
          "$ref": "#/definitions/IntOrString"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RollingUpdateDeployment": {
      "properties": {
        "maxUnavailable": {
          "$ref": "#/definitions/IntOrString"
        },
        "maxSurge": {
          "$ref": "#/definitions/IntOrString"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RotateCertificates": {
      "properties": {
        "caCertificates": {
          "type": "boolean",
          "description": "Rotate CA Certificates"
        },
        "services": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Services to rotate their certs"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "RouteOpenstackOpts": {
      "required": [
        "router-id"
      ],
      "properties": {
        "router-id": {
          "type": "string",
          "description": "required"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "S3BackupConfig": {
      "required": [
        "endpoint"
      ],
      "properties": {
        "accessKey": {
          "type": "string"
        },
        "secretKey": {
          "type": "string"
        },
        "bucketName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "endpoint": {
          "type": "string"
        },
        "customCa": {
          "type": "string"
        },
        "folder": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ScaleIOVolumeSource": {
      "required": [
        "gateway",
        "system",
        "secretRef"
      ],
      "properties": {
        "gateway": {
          "type": "string"
        },
        "system": {
          "type": "string"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "sslEnabled": {
          "type": "boolean"
        },
        "protectionDomain": {
          "type": "string"
        },
        "storagePool": {
          "type": "string"
        },
        "storageMode": {
          "type": "string"
        },
        "volumeName": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SchedulerService": {
      "properties": {
        "image": {
          "type": "string"
        },
        "extraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "extraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "extraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraArgs": {
          "patternProperties": {
            ".*": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "type": "object"
        },
        "winExtraBinds": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "winExtraEnv": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretKeySelector": {
      "required": [
        "LocalObjectReference",
        "key"
      ],
      "properties": {
        "LocalObjectReference": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "key": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretProjection": {
      "required": [
        "LocalObjectReference"
      ],
      "properties": {
        "LocalObjectReference": {
          "$ref": "#/definitions/LocalObjectReference"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretVolumeSource": {
      "properties": {
        "secretName": {
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/KeyToPath"
          },
          "type": "array"
        },
        "defaultMode": {
          "type": "integer"
        },
        "optional": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretboxConfiguration": {
      "required": [
        "keys"
      ],
      "properties": {
        "keys": {
          "items": {
            "$ref": "#/definitions/Key"
          },
          "type": "array"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "SecretsEncryptionConfig": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable/disable secrets encryption provider config"
        },
        "customConfig": {
          "$ref": "#/definitions/EncryptionConfiguration",
          "description": "Custom Encryption Provider configuration object"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ServiceAccountTokenProjection": {
      "required": [
        "path"
      ],
      "properties": {
        "audience": {
          "type": "string"
        },
        "expirationSeconds": {
          "type": "integer"
        },
        "path": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ServiceOverride": {
      "required": [
        "service",
        "region",
        "url",
        "signing-region",
        "signing-method",
        "signing-name"
      ],
      "properties": {
        "service": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "signing-region": {
          "type": "string"
        },
        "signing-method": {
          "type": "string"
        },
        "signing-name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "StorageOSVolumeSource": {
      "properties": {
        "volumeName": {
          "type": "string"
        },
        "volumeNamespace": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean"
        },
        "secretRef": {
          "$ref": "#/definitions/LocalObjectReference"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Time": {
      "properties": {},
      "additionalProperties": false,
      "type": "object"
    },
    "Toleration": {
      "properties": {
        "key": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "value": {
          "type": "string"
        },
        "effect": {
          "type": "string"
        },
        "tolerationSeconds": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "TypeMeta": {
      "properties": {
        "kind": {
          "type": "string"
        },
        "apiVersion": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "TypedLocalObjectReference": {
      "required": [
        "apiGroup",
        "kind",
        "name"
      ],
      "properties": {
        "apiGroup": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "Unknown": {
      "required": [
        "TypeMeta",
        "Raw",
        "ContentEncoding",
        "ContentType"
      ],
      "properties": {
        "TypeMeta": {
          "$ref": "#/definitions/TypeMeta"
        },
        "Raw": {
          "type": "string"
        },
        "ContentEncoding": {
          "type": "string"
        },
        "ContentType": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VirtualCenterConfig": {
      "properties": {
        "user": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "port": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ]
        },
        "datacenters": {
          "type": "string"
        },
        "soap-roundtrip-count": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VolumeProjection": {
      "properties": {
        "secret": {
          "$ref": "#/definitions/SecretProjection"
        },
        "downwardAPI": {
          "$ref": "#/definitions/DownwardAPIProjection"
        },
        "configMap": {
          "$ref": "#/definitions/ConfigMapProjection"
        },
        "serviceAccountToken": {
          "$ref": "#/definitions/ServiceAccountTokenProjection"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VolumeSource": {
      "properties": {
        "hostPath": {
          "$ref": "#/definitions/HostPathVolumeSource"
        },
        "emptyDir": {
          "$ref": "#/definitions/EmptyDirVolumeSource"
        },
        "gcePersistentDisk": {
          "$ref": "#/definitions/GCEPersistentDiskVolumeSource"
        },
        "awsElasticBlockStore": {
          "$ref": "#/definitions/AWSElasticBlockStoreVolumeSource"
        },
        "gitRepo": {
          "$ref": "#/definitions/GitRepoVolumeSource"
        },
        "secret": {
          "$ref": "#/definitions/SecretVolumeSource"
        },
        "nfs": {
          "$ref": "#/definitions/NFSVolumeSource"
        },
        "iscsi": {
          "$ref": "#/definitions/ISCSIVolumeSource"
        },
        "glusterfs": {
          "$ref": "#/definitions/GlusterfsVolumeSource"
        },
        "persistentVolumeClaim": {
          "$ref": "#/definitions/PersistentVolumeClaimVolumeSource"
        },
        "rbd": {
          "$ref": "#/definitions/RBDVolumeSource"
        },
        "flexVolume": {
          "$ref": "#/definitions/FlexVolumeSource"
        },
        "cinder": {
          "$ref": "#/definitions/CinderVolumeSource"
        },
        "cephfs": {
          "$ref": "#/definitions/CephFSVolumeSource"
        },
        "flocker": {
          "$ref": "#/definitions/FlockerVolumeSource"
        },
        "downwardAPI": {
          "$ref": "#/definitions/DownwardAPIVolumeSource"
        },
        "fc": {
          "$ref": "#/definitions/FCVolumeSource"
        },
        "azureFile": {
          "$ref": "#/definitions/AzureFileVolumeSource"
        },
        "configMap": {
          "$ref": "#/definitions/ConfigMapVolumeSource"
        },
        "vsphereVolume": {
          "$ref": "#/definitions/VsphereVirtualDiskVolumeSource"
        },
        "quobyte": {
          "$ref": "#/definitions/QuobyteVolumeSource"
        },
        "azureDisk": {
          "$ref": "#/definitions/AzureDiskVolumeSource"
        },
        "photonPersistentDisk": {
          "$ref": "#/definitions/PhotonPersistentDiskVolumeSource"
        },
        "projected": {
          "$ref": "#/definitions/ProjectedVolumeSource"
        },
        "portworxVolume": {
          "$ref": "#/definitions/PortworxVolumeSource"
        },
        "scaleIO": {
          "$ref": "#/definitions/ScaleIOVolumeSource"
        },
        "storageos": {
          "$ref": "#/definitions/StorageOSVolumeSource"
        },
        "csi": {
          "$ref": "#/definitions/CSIVolumeSource"
        },
        "ephemeral": {
          "$ref": "#/definitions/EphemeralVolumeSource"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VsphereCloudProvider": {
      "properties": {
        "global": {
          "$ref": "#/definitions/GlobalVsphereOpts"
        },
        "virtualCenter": {
          "patternProperties": {
            ".*": {
              "$ref": "#/definitions/VirtualCenterConfig"
            }
          },
          "type": "object"
        },
        "network": {
          "$ref": "#/definitions/NetworkVshpereOpts"
        },
        "disk": {
          "$ref": "#/definitions/DiskVsphereOpts"
        },
        "workspace": {
          "$ref": "#/definitions/WorkspaceVsphereOpts"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "VsphereVirtualDiskVolumeSource": {
      "required": [
        "volumePath"
      ],
      "properties": {
        "volumePath": {
          "type": "string"
        },
        "fsType": {
          "type": "string"
        },
        "storagePolicyName": {
          "type": "string"
        },
        "storagePolicyID": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "WeaveNetworkProvider": {
      "properties": {
        "password": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "WorkspaceVsphereOpts": {
      "properties": {
        "server": {
          "type": "string"
        },
        "datacenter": {
          "type": "string"
        },
        "folder": {
          "type": "string"
        },
        "default-datastore": {
          "type": "string"
        },
        "resourcepool-path": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "type": "object"
    }
  }
}