v2

package
v2.21.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AKSCloudSpec added in v2.19.0

type AKSCloudSpec struct {
	Name           string `json:"name"`
	TenantID       string `json:"tenantID,omitempty" required:"true"`
	SubscriptionID string `json:"subscriptionID,omitempty" required:"true"`
	ClientID       string `json:"clientID,omitempty" required:"true"`
	ClientSecret   string `json:"clientSecret,omitempty" required:"true"`
	ResourceGroup  string `json:"resourceGroup" required:"true"`
}

type AKSCluster added in v2.19.0

type AKSCluster struct {
	Name          string `json:"name"`
	ResourceGroup string `json:"resourceGroup"`
	IsImported    bool   `json:"imported"`
}

AKSCluster represents a object of AKS cluster. swagger:model AKSCluster

type AKSClusterList added in v2.19.0

type AKSClusterList []AKSCluster

AKSClusterList represents an list of AKS clusters. swagger:model AKSClusterList

type AKSClusterSpec added in v2.21.0

type AKSClusterSpec struct {
	// Location - Resource location
	Location string `json:"location" required:"true"`
	// The timestamp of resource creation (UTC).
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	// The identity that created the resource.
	CreatedBy *string `json:"createdBy,omitempty"`
	// KubernetesVersion - When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details.
	KubernetesVersion string `json:"kubernetesVersion"`
	// EnableRBAC - Whether Kubernetes Role-Based Access Control Enabled.
	EnableRBAC bool `json:"enableRBAC,omitempty"`
	// DNSPrefix - This cannot be updated once the Managed Cluster has been created.
	DNSPrefix string `json:"dnsPrefix,omitempty"`
	// FqdnSubdomain - This cannot be updated once the Managed Cluster has been created.
	FqdnSubdomain string `json:"fqdnSubdomain,omitempty"`
	// Fqdn - READ-ONLY; The FQDN of the master pool.
	Fqdn string `json:"fqdn,omitempty"`
	// PrivateFQDN - READ-ONLY; The FQDN of private cluster.
	PrivateFQDN string `json:"privateFQDN,omitempty"`
	// MachineDeploymentSpec - The agent pool properties.
	MachineDeploymentSpec *AKSMachineDeploymentCloudSpec `json:"machineDeploymentSpec,omitempty"`
	// NetworkProfile - The network configuration profile.
	NetworkProfile AKSNetworkProfile `json:"networkProfile,omitempty"`
	// Resource tags.
	Tags map[string]*string `json:"tags,omitempty"`
}

AKSClusterSpec Azure Kubernetes Service cluster.

type AKSLocation added in v2.21.0

type AKSLocation struct {
	// The location name.
	Name string `json:"name,omitempty"`
	// READ-ONLY; The category of the region.
	RegionCategory string `json:"regionCategory,omitempty"`
}

AKSLocation is the object representing Azure Location. swagger:model AKSLocation

type AKSLocationList added in v2.21.0

type AKSLocationList []AKSLocation

AKSLocationList represents a list of AKS Location object for node group. swagger:model AKSLocationList

type AKSMachineDeploymentCloudSpec added in v2.19.0

type AKSMachineDeploymentCloudSpec struct {
	// Name - Node pool name must contain only lowercase letters and numbers. For Linux node pools must be 12 or fewer characters.
	Name string `json:"name"`
	// BasicSettings - Settings for creating the AKS agentpool
	BasicSettings AgentPoolBasics `json:"basicSettings"`
	// OptionalSettings - Optional Settings for creating the AKS agentpool
	OptionalSettings AgentPoolOptionalSettings `json:"optionalSettings,omitempty"`
	// Configuration - Configuration of created AKS agentpool
	Configuration AgentPoolConfig `json:"configuration,omitempty"`
}

type AKSNetworkProfile added in v2.21.0

type AKSNetworkProfile struct {
	// PodCidr - A CIDR notation IP range from which to assign pod IPs when kubenet is used.
	PodCidr string `json:"podCidr,omitempty"`
	// ServiceCidr - A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges.
	ServiceCidr string `json:"serviceCidr,omitempty"`
	// DNSServiceIP - An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr.
	DNSServiceIP string `json:"dnsServiceIP,omitempty"`
	// DockerBridgeCidr - A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
	DockerBridgeCidr string `json:"dockerBridgeCidr,omitempty"`
	// NetworkPlugin - Network plugin used for building the Kubernetes network. Possible values include: 'Azure', 'Kubenet'
	NetworkPlugin string `json:"networkPlugin,omitempty"`
	// NetworkPolicy - Network policy used for building the Kubernetes network. Possible values include: 'Calico', 'Azure'
	NetworkPolicy string `json:"networkPolicy,omitempty"`
	// NetworkMode - This cannot be specified if networkPlugin is anything other than 'azure'. Possible values include: 'Transparent', 'Bridge'
	NetworkMode string `json:"networkMode,omitempty"`
	// OutboundType - This can only be set at cluster creation time and cannot be changed later. For more information see [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype). Possible values include: 'OutboundTypeLoadBalancer', 'OutboundTypeUserDefinedRouting', 'OutboundTypeManagedNATGateway', 'OutboundTypeUserAssignedNATGateway'
	OutboundType string `json:"outboundType,omitempty"`
	// LoadBalancerSku - The default is 'standard'. See [Azure Load Balancer SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load balancer SKUs. Possible values include: 'LoadBalancerSkuStandard', 'LoadBalancerSkuBasic'
	LoadBalancerSku string `json:"loadBalancerSku,omitempty"`
}

AKS NetworkProfile profile of network configuration.

type AKSNodePoolModes added in v2.21.0

type AKSNodePoolModes []string

AKSNodePoolModes represents nodepool modes. swagger:model AKSNodePoolModes

type AKSNodegroupScalingConfig added in v2.21.0

type AKSNodegroupScalingConfig struct {
	// MaxCount - The maximum number of nodes for auto-scaling
	MaxCount int32 `json:"maxCount,omitempty"`
	// MinCount - The minimum number of nodes for auto-scaling
	MinCount int32 `json:"minCount,omitempty"`
}

type AKSVMSize added in v2.21.0

type AKSVMSize struct {
	Name                 string `json:"name,omitempty"`
	NumberOfCores        int32  `json:"numberOfCores,omitempty"`
	NumberOfGPUs         int32  `json:"numberOfGPUs,omitempty"`
	OsDiskSizeInMB       int32  `json:"osDiskSizeInMB,omitempty"`
	ResourceDiskSizeInMB int32  `json:"resourceDiskSizeInMB,omitempty"`
	MemoryInMB           int32  `json:"memoryInMB,omitempty"`
	MaxDataDiskCount     int32  `json:"maxDataDiskCount,omitempty"`
}

AKSVMSize is the object representing Azure VM sizes. swagger:model AKSVMSize

type AKSVMSizeList added in v2.21.0

type AKSVMSizeList []AKSVMSize

AKSVMSizeList represents an array of AKS VM sizes. swagger:model AKSVMSizeList

type AgentPoolBasics added in v2.19.0

type AgentPoolBasics struct {
	// Required: Count - Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1.
	Count int32 `json:"count" required:"true"`
	// Required: VMSize - VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions
	VMSize string `json:"vmSize" required:"true"`
	// Mode - Possible values include: 'System', 'User'.
	Mode string `json:"mode,omitempty"`
	// OrchestratorVersion - As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor version must be within two minor versions of the control plane version. The node pool version cannot be greater than the control plane version. For more information see [upgrading a node pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool).
	OrchestratorVersion string `json:"orchestratorVersion,omitempty"`
	// AvailabilityZones - The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType property is 'VirtualMachineScaleSets'.
	AvailabilityZones []string `json:"availabilityZones,omitempty"`
	// EnableAutoScaling - Whether to enable auto-scaler
	EnableAutoScaling bool `json:"enableAutoScaling,omitempty"`
	// The scaling configuration details for the Auto Scaling group that is created
	// for your node group.
	ScalingConfig AKSNodegroupScalingConfig `json:"scalingConfig,omitempty"`
	// The OSDiskSize for Agent agentpool cannot be less than 30GB or larger than 2048GB.
	OsDiskSizeGB int32 `json:"osDiskSizeGB,omitempty"`
}

type AgentPoolConfig added in v2.21.0

type AgentPoolConfig struct {
	// OsDiskType - Possible values include: 'Managed', 'Ephemeral'
	OsDiskType string `json:"osDiskType,omitempty"`
	// MaxPods - The maximum number of pods that can run on a node.
	MaxPods int32 `json:"maxPods,omitempty"`
	// OsType - Possible values include: 'Linux', 'Windows'. The default value is 'Linux'.
	// Windows node pools are not supported on kubenet clusters
	OsType string `json:"osType,omitempty"`
	// EnableNodePublicIP - Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For more information see [assigning a public IP per node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The default is false.
	EnableNodePublicIP bool `json:"enableNodePublicIP,omitempty"`
	// MaxSurgeUpgradeSetting - This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is 1. For more information, including best practices, see: https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade
	MaxSurgeUpgradeSetting string `json:"maxSurge,omitempty"`
	// VnetSubnetID - If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}
	VnetSubnetID string `json:"vnetSubnetID,omitempty"`
	// PodSubnetID - If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}
	PodSubnetID string `json:"podSubnetID,omitempty"`
}

type AgentPoolOptionalSettings added in v2.19.0

type AgentPoolOptionalSettings struct {
	// NodeLabels - The node labels to be persisted across all nodes in agent pool.
	NodeLabels map[string]*string `json:"nodeLabels,omitempty"`
	// NodeTaints - The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
	// Placing custom taints on system pool is not supported(except 'CriticalAddonsOnly' taint or taint effect is 'PreferNoSchedule'). Please refer to https://aka.ms/aks/system-taints for detail
	NodeTaints []string `json:"nodeTaints,omitempty"`
}

type Alertmanager added in v2.18.0

type Alertmanager struct {
	Spec AlertmanagerSpec `json:"spec"`
}

Alertmanager represents an Alertmanager Configuration swagger:model Alertmanager

type AlertmanagerSpec added in v2.18.0

type AlertmanagerSpec struct {
	// Config contains the alertmanager configuration in YAML
	Config []byte `json:"config"`
}

type AllowedRegistry added in v2.18.0

type AllowedRegistry struct {
	Name string `json:"name"`

	Spec kubermaticv1.AllowedRegistrySpec `json:"spec"`
}

AllowedRegistry represents a object containing a allowed image registry prefix swagger:model AllowedRegistry

type ApplicationDefinition added in v2.21.0

type ApplicationDefinition struct {
	apiv1.ObjectMeta

	Spec *appskubermaticv1.ApplicationDefinitionSpec `json:"spec"`
}

ApplicationDefinition is the object representing an ApplicationDefinition. swagger:model ApplicationDefinition

type ApplicationInstallation added in v2.21.0

type ApplicationInstallation struct {
	apiv1.ObjectMeta

	Namespace string `json:"namespace,omitempty"`

	Spec *ApplicationInstallationSpec `json:"spec"`

	Status *ApplicationInstallationStatus `json:"status"`
}

ApplicationInstallation is the object representing an ApplicationInstallation. swagger:model ApplicationInstallation

type ApplicationInstallationBody added in v2.21.0

type ApplicationInstallationBody struct {
	apiv1.ObjectMeta

	Namespace string `json:"namespace,omitempty"`

	Spec *ApplicationInstallationSpec `json:"spec"`
}

ApplicationInstallationBody is the object representing the POST/PUT payload of an ApplicationInstallation swagger:model ApplicationInstallationBody

type ApplicationInstallationCondition added in v2.21.0

type ApplicationInstallationCondition struct {
	// Type of ApplicationInstallation condition.
	Type appskubermaticv1.ApplicationInstallationConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	// +optional
	LastHeartbeatTime apiv1.Time `json:"lastHeartbeatTime,omitempty"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime apiv1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	Message string `json:"message,omitempty"`
}

type ApplicationInstallationSpec added in v2.21.2

type ApplicationInstallationSpec struct {
	// Namespace describe the desired state of the namespace where application will be created.
	Namespace NamespaceSpec `json:"namespace"`

	// ApplicationRef is a reference to identify which Application should be deployed
	ApplicationRef appskubermaticv1.ApplicationRef `json:"applicationRef"`

	// Values describe overrides for manifest-rendering. It's a free yaml field.
	// +kubebuilder:pruning:PreserveUnknownFields
	Values runtime.RawExtension `json:"values,omitempty"`
}

type ApplicationInstallationStatus added in v2.21.0

type ApplicationInstallationStatus struct {
	// Conditions contains conditions an installation is in, its primary use case is status signaling between controllers or between controllers and the API
	Conditions []ApplicationInstallationCondition `json:"conditions,omitempty"`

	// ApplicationVersion contains information installing / removing application
	ApplicationVersion *appskubermaticv1.ApplicationVersion `json:"applicationVersion,omitempty"`

	// Method used to install the application
	Method appskubermaticv1.TemplateMethod `json:"method"`
}

ApplicationInstallationStatus is the object representing the status of an Application. swagger:model ApplicationInstallationStatus it is needed because metav1.Time used by appsv1 confuses swaggers with apiv1.Time.

type BackupCredentials added in v2.18.0

type BackupCredentials struct {
	// S3BackupCredentials holds credentials for a S3 client compatible backup destination
	S3BackupCredentials S3BackupCredentials `json:"s3,omitempty"`
	// Destination corresponds to the Seeds Seed.Spec.EtcdBackupRestore.Destinations, it defines for which destination
	// the backup credentials will be created. If set, it updates the credentials ref in the related Seed BackupDestination
	Destination string `json:"destination,omitempty"`
}

BackupCredentials contains credentials for etcd backups swagger:model BackupCredentials

type BackupDestinationNames added in v2.19.0

type BackupDestinationNames []string

BackupDestinationNames represents an list of backup destination names. swagger:model BackupDestinationNames

type BackupStatus added in v2.18.0

type BackupStatus struct {
	// ScheduledTime will always be set when the BackupStatus is created, so it'll never be nil
	ScheduledTime      *apiv1.Time                    `json:"scheduledTime,omitempty"`
	BackupName         string                         `json:"backupName,omitempty"`
	JobName            string                         `json:"jobName,omitempty"`
	BackupStartTime    *apiv1.Time                    `json:"backupStartTime,omitempty"`
	BackupFinishedTime *apiv1.Time                    `json:"backupFinishedTime,omitempty"`
	BackupPhase        kubermaticv1.BackupStatusPhase `json:"backupPhase,omitempty"`
	BackupMessage      string                         `json:"backupMessage,omitempty"`
	DeleteJobName      string                         `json:"deleteJobName,omitempty"`
	DeleteStartTime    *apiv1.Time                    `json:"deleteStartTime,omitempty"`
	DeleteFinishedTime *apiv1.Time                    `json:"deleteFinishedTime,omitempty"`
	DeletePhase        kubermaticv1.BackupStatusPhase `json:"deletePhase,omitempty"`
	DeleteMessage      string                         `json:"deleteMessage,omitempty"`
}

type BringYourOwnSpec added in v2.21.0

type BringYourOwnSpec struct{}

type CNIVersions added in v2.19.0

type CNIVersions struct {
	// CNIPluginType represents the type of the CNI Plugin
	CNIPluginType string `json:"cniPluginType"`
	// Versions represents the list of the CNI Plugin versions that are supported
	Versions []string `json:"versions"`
}

CNIVersions is a list of versions for a CNI Plugin swagger:model CNIVersions

type ClusterTemplate added in v2.18.0

type ClusterTemplate struct {
	apiv1.ObjectMeta

	Name string `json:"name"`
	ID   string `json:"id,omitempty"`

	ProjectID      string                         `json:"projectID,omitempty"`
	User           string                         `json:"user,omitempty"`
	Scope          string                         `json:"scope"`
	UserSSHKeys    []ClusterTemplateSSHKey        `json:"userSshKeys,omitempty"`
	Cluster        *ClusterTemplateInfo           `json:"cluster,omitempty"`
	NodeDeployment *ClusterTemplateNodeDeployment `json:"nodeDeployment,omitempty"`
	Applications   []apiv1.Application            `json:"applications,omitempty"`
}

ClusterTemplate represents a ClusterTemplate object swagger:model ClusterTemplate

type ClusterTemplateInfo added in v2.21.0

type ClusterTemplateInfo struct {
	Labels          map[string]string `json:"labels,omitempty"`
	InheritedLabels map[string]string `json:"inheritedLabels,omitempty"`
	// indicates the preset name
	Credential string            `json:"credential,omitempty"`
	Spec       apiv1.ClusterSpec `json:"spec"`
}

ClusterTemplateInfo represents a ClusterTemplateInfo object.

type ClusterTemplateInstance added in v2.18.0

type ClusterTemplateInstance struct {
	Name string `json:"name"`

	Spec kubermaticv1.ClusterTemplateInstanceSpec `json:"spec"`
}

ClusterTemplateInstance represents a ClusterTemplateInstance object swagger:model ClusterTemplateInstance

type ClusterTemplateList added in v2.18.0

type ClusterTemplateList []ClusterTemplate

ClusterTemplateList represents a ClusterTemplate list swagger:model ClusterTemplateList

type ClusterTemplateNodeDeployment added in v2.21.0

type ClusterTemplateNodeDeployment struct {
	Spec apiv1.NodeDeploymentSpec `json:"spec"`
}

type ClusterTemplateSSHKey added in v2.18.0

type ClusterTemplateSSHKey struct {
	Name string `json:"name"`
	ID   string `json:"id"`
}

ClusterTemplateSSHKey represents SSH Key object for Cluster Template swagger:model ClusterTemplateSSHKey

type Constraint

type Constraint struct {
	Name   string            `json:"name"`
	Labels map[string]string `json:"labels,omitempty"`

	Spec   kubermaticv1.ConstraintSpec `json:"spec"`
	Status *ConstraintStatus           `json:"status,omitempty"`
}

Constraint represents a gatekeeper Constraint swagger:model Constraint

type ConstraintStatus

type ConstraintStatus struct {
	Enforcement    string      `json:"enforcement,omitempty"`
	AuditTimestamp string      `json:"auditTimestamp,omitempty"`
	Violations     []Violation `json:"violations,omitempty"`
	Synced         *bool       `json:"synced,omitempty"`
}

ConstraintStatus represents a constraint status which holds audit info.

type ConstraintTemplate

type ConstraintTemplate struct {
	Name string `json:"name"`

	Spec   kubermaticv1.ConstraintTemplateSpec            `json:"spec"`
	Status constrainttemplatesv1.ConstraintTemplateStatus `json:"status"`
}

ConstraintTemplate represents a gatekeeper ConstraintTemplate swagger:model ConstraintTemplate

type EKSAMITypeList added in v2.21.0

type EKSAMITypeList []string

EKSAMITypeList represents a list of EKS AMI Types for node group. swagger:model EKSAMITypeList

type EKSCapacityTypeList added in v2.21.0

type EKSCapacityTypeList []string

EKSCapacityTypeList represents a list of EKS Capacity Types for node group. swagger:model EKSCapacityTypeList

type EKSCloudSpec added in v2.19.0

type EKSCloudSpec struct {
	Name            string `json:"name"`
	AccessKeyID     string `json:"accessKeyID,omitempty" required:"true"`
	SecretAccessKey string `json:"secretAccessKey,omitempty" required:"true"`
	Region          string `json:"region" required:"true"`
}

type EKSCluster added in v2.19.0

type EKSCluster struct {
	Name       string `json:"name"`
	Region     string `json:"region"`
	IsImported bool   `json:"imported"`
}

EKSCluster represents a object of EKS cluster. swagger:model EKSCluster

type EKSClusterList added in v2.19.0

type EKSClusterList []EKSCluster

EKSClusterList represents a list of EKS clusters. swagger:model EKSClusterList

type EKSClusterSpec added in v2.21.0

type EKSClusterSpec struct {
	ResourcesVpcConfig VpcConfigRequest `json:"vpcConfigRequest" required:"true"`

	// The Kubernetes network configuration for the cluster.
	KubernetesNetworkConfig *EKSKubernetesNetworkConfigResponse `json:"kubernetesNetworkConfig,omitempty"`

	// The desired Kubernetes version for your cluster. If you don't specify a value
	// here, the latest version available in Amazon EKS is used.
	Version string `json:"version,omitempty"`

	// The Unix epoch timestamp in seconds for when the cluster was created.
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// The metadata that you apply to the cluster to assist with categorization
	// and organization. Each tag consists of a key and an optional value. You define
	// both. Cluster tags do not propagate to any other resources associated with
	// the cluster.
	Tags map[string]*string `json:"tags,omitempty"`

	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
	// for the Kubernetes control plane to make calls to AWS API operations on your
	// behalf. For more information, see Amazon EKS Service IAM Role (https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html)
	// in the Amazon EKS User Guide .
	//
	// RoleArn is a required field
	RoleArn string `json:"roleArn,omitempty" required:"true"`
}

type EKSInstanceType added in v2.21.0

type EKSInstanceType struct {
	Name       string  `json:"name"`
	PrettyName string  `json:"pretty_name,omitempty"`
	Memory     float32 `json:"memory,omitempty"`
	VCPUs      int     `json:"vcpus,omitempty"`
	GPUs       int     `json:"gpus,omitempty"`
}

EKSInstanceType is the object representing EKS nodegroup instancetype.. swagger:model EKSInstanceType

type EKSInstanceTypeList added in v2.21.0

type EKSInstanceTypeList []EKSInstanceType

EKSInstanceTypeList represents a list of EKS InstanceType object for node group. swagger:model EKSInstanceTypeList

type EKSKubernetesNetworkConfigResponse added in v2.21.0

type EKSKubernetesNetworkConfigResponse struct {
	// The IP family used to assign Kubernetes pod and service IP addresses. The
	// IP family is always ipv4, unless you have a 1.21 or later cluster running
	// version 1.10.1 or later of the Amazon VPC CNI add-on and specified ipv6 when
	// you created the cluster.
	IpFamily *string `json:"ipFamily,omitempty"`

	// The CIDR block that Kubernetes pod and service IP addresses are assigned
	// from. Kubernetes assigns addresses from an IPv4 CIDR block assigned to a
	// subnet that the node is in. If you didn't specify a CIDR block when you created
	// the cluster, then Kubernetes assigns addresses from either the 10.100.0.0/16
	// or 172.20.0.0/16 CIDR blocks. If this was specified, then it was specified
	// when the cluster was created and it can't be changed.
	ServiceIpv4Cidr *string `json:"serviceIpv4Cidr,omitempty"`

	// The CIDR block that Kubernetes pod and service IP addresses are assigned
	// from if you created a 1.21 or later cluster with version 1.10.1 or later
	// of the Amazon VPC CNI add-on and specified ipv6 for ipFamily when you created
	// the cluster. Kubernetes assigns service addresses from the unique local address
	// range (fc00::/7) because you can't specify a custom IPv6 CIDR block when
	// you create the cluster.
	ServiceIpv6Cidr *string `json:"serviceIpv6Cidr,omitempty"`
}

The Kubernetes network configuration for the cluster. The response contains a value for serviceIpv6Cidr or serviceIpv4Cidr, but not both.

type EKSMachineDeploymentCloudSpec added in v2.21.0

type EKSMachineDeploymentCloudSpec struct {
	// The Unix epoch timestamp in seconds for when the managed node group was created.
	CreatedAt time.Time `json:"createdAt,omitempty"`

	// The subnets to use for the Auto Scaling group that is created for your node
	// group. These subnets must have the tag key kubernetes.io/cluster/CLUSTER_NAME
	// with a value of shared, where CLUSTER_NAME is replaced with the name of your
	// cluster. If you specify launchTemplate, then don't specify SubnetId (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
	// in your launch template, or the node group deployment will fail. For more
	// information about using launch templates with Amazon EKS, see Launch template
	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	//
	// Subnets is a required field
	Subnets []*string `json:"subnets" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM role to associate with your node
	// group. The Amazon EKS worker node kubelet daemon makes calls to AWS APIs
	// on your behalf. Nodes receive permissions for these API calls through an
	// IAM instance profile and associated policies. Before you can launch nodes
	// and register them into a cluster, you must create an IAM role for those nodes
	// to use when they are launched. For more information, see Amazon EKS node
	// IAM role (https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html)
	// in the Amazon EKS User Guide . If you specify launchTemplate, then don't
	// specify IamInstanceProfile (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html)
	// in your launch template, or the node group deployment will fail. For more
	// information about using launch templates with Amazon EKS, see Launch template
	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	//
	// NodeRole is a required field
	NodeRole string `json:"nodeRole" required:"true"`

	// The AMI type for your node group. GPU instance types should use the AL2_x86_64_GPU
	// AMI type. Non-GPU instances should use the AL2_x86_64 AMI type. Arm instances
	// should use the AL2_ARM_64 AMI type. All types use the Amazon EKS optimized
	// Amazon Linux 2 AMI. If you specify launchTemplate, and your launch template
	// uses a custom AMI, then don't specify amiType, or the node group deployment
	// will fail. For more information about using launch templates with Amazon
	// EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	AmiType string `json:"amiType,omitempty"`

	// The capacity type for your node group. Possible values ON_DEMAND | SPOT
	CapacityType string `json:"capacityType,omitempty"`

	// The root device disk size (in GiB) for your node group instances. The default
	// disk size is 20 GiB. If you specify launchTemplate, then don't specify diskSize,
	// or the node group deployment will fail. For more information about using
	// launch templates with Amazon EKS, see Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	DiskSize int64 `json:"diskSize,omitempty"`

	// Specify the instance types for a node group. If you specify a GPU instance
	// type, be sure to specify AL2_x86_64_GPU with the amiType parameter. If you
	// specify launchTemplate, then you can specify zero or one instance type in
	// your launch template or you can specify 0-20 instance types for instanceTypes.
	// If however, you specify an instance type in your launch template and specify
	// any instanceTypes, the node group deployment will fail. If you don't specify
	// an instance type in a launch template or for instanceTypes, then t3.medium
	// is used, by default. If you specify Spot for capacityType, then we recommend
	// specifying multiple values for instanceTypes. For more information, see Managed
	// node group capacity types (https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types)
	// and Launch template support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	InstanceTypes []*string `json:"instanceTypes,omitempty"`

	// The Kubernetes labels to be applied to the nodes in the node group when they
	// are created.
	Labels map[string]*string `json:"labels,omitempty"`

	// The metadata applied to the node group to assist with categorization and
	// organization. Each tag consists of a key and an optional value. You define
	// both. Node group tags do not propagate to any other resources associated
	// with the node group, such as the Amazon EC2 instances or subnets.
	Tags map[string]*string `json:"tags,omitempty"`

	// The scaling configuration details for the Auto Scaling group that is created
	// for your node group.
	ScalingConfig EKSNodegroupScalingConfig `json:"scalingConfig,omitempty"`

	// The Kubernetes version to use for your managed nodes. By default, the Kubernetes
	// version of the cluster is used, and this is the only accepted specified value.
	// If you specify launchTemplate, and your launch template uses a custom AMI,
	// then don't specify version, or the node group deployment will fail. For more
	// information about using launch templates with Amazon EKS, see Launch template
	// support (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
	// in the Amazon EKS User Guide.
	Version string `json:"version,omitempty"`
}

type EKSNodegroupScalingConfig added in v2.21.0

type EKSNodegroupScalingConfig struct {
	// The current number of nodes that the managed node group should maintain.
	DesiredSize int64 `json:"desiredSize,omitempty"`

	// The maximum number of nodes that the managed node group can scale out to.
	// For information about the maximum number that you can specify, see Amazon
	// EKS service quotas (https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)
	// in the Amazon EKS User Guide.
	MaxSize int64 `json:"maxSize,omitempty"`

	// The minimum number of nodes that the managed node group can scale in to.
	// This number must be greater than zero.
	MinSize int64 `json:"minSize,omitempty"`
}

type EKSRegionList added in v2.21.0

type EKSRegionList []string

EKSRegionList represents a list of EKS regions. swagger:model EKSRegionList

type EKSSecurityGroup added in v2.21.0

type EKSSecurityGroup struct {
	// The ID of the security group.
	GroupId string `json:"groupId"`
	// [VPC only] The ID of the VPC for the security group.
	VpcId string `json:"vpcId"`
}

EKSSecurityGroup represents a object of EKS securityGroup. swagger:model EKSSecurityGroup

type EKSSecurityGroupList added in v2.21.0

type EKSSecurityGroupList []EKSSecurityGroup

EKSSecurityGroupList represents an array of EKS securityGroup. swagger:model EKSSecurityGroupList

type EKSSubnet added in v2.21.0

type EKSSubnet struct {
	// The Availability Zone of the subnet.
	AvailabilityZone string `json:"availabilityZone"`
	// The ID of the subnet.
	SubnetId string `json:"subnetId"`
	// The ID of the VPC the subnet is in.
	VpcId string `json:"vpcId"`
}

EKSSubnet represents a object of EKS subnet. swagger:model EKSSubnet

type EKSSubnetList added in v2.21.0

type EKSSubnetList []EKSSubnet

EKSSubnetList represents an array of EKS subnet. swagger:model EKSSubnetList

type EKSVPC added in v2.21.0

type EKSVPC struct {
	ID        string `json:"id"`
	IsDefault bool   `json:"default"`
}

EKSVPC represents a object of EKS VpcId. swagger:model EKSVPC

type EKSVPCList added in v2.21.0

type EKSVPCList []EKSVPC

EKSVPCList represents an array of EKS VPC. swagger:model EKSVPCList

type EtcdBackupConfig added in v2.18.0

type EtcdBackupConfig struct {
	apiv1.ObjectMeta

	Spec   EtcdBackupConfigSpec   `json:"spec"`
	Status EtcdBackupConfigStatus `json:"status"`
}

EtcdBackupConfig represents an object holding the configuration for etcd backups swagger:model EtcdBackupConfig

type EtcdBackupConfigCondition added in v2.18.0

type EtcdBackupConfigCondition struct {
	// Type of EtcdBackupConfig condition.
	Type kubermaticv1.EtcdBackupConfigConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time we got an update on a given condition.
	// +optional
	LastHeartbeatTime apiv1.Time `json:"lastHeartbeatTime,omitempty"`
	// Last time the condition transit from one status to another.
	// +optional
	LastTransitionTime apiv1.Time `json:"lastTransitionTime,omitempty"`
	// (brief) reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

type EtcdBackupConfigSpec added in v2.18.0

type EtcdBackupConfigSpec struct {
	// ClusterID is the id of the cluster which will be backed up
	ClusterID string `json:"clusterId"`
	// Schedule is a cron expression defining when to perform
	// the backup. If not set, the backup is performed exactly
	// once, immediately.
	Schedule string `json:"schedule,omitempty"`
	// Keep is the number of backups to keep around before deleting the oldest one
	// If not set, defaults to DefaultKeptBackupsCount. Only used if Schedule is set.
	Keep *int `json:"keep,omitempty"`
	// Destination indicates where the backup will be stored. The destination name should correspond to a destination in
	// the cluster's Seed.Spec.EtcdBackupRestore.
	Destination string `json:"destination,omitempty"`
}

EtcdBackupConfigSpec represents an object holding the etcd backup configuration specification swagger:model EtcdBackupConfigSpec

type EtcdBackupConfigStatus added in v2.18.0

type EtcdBackupConfigStatus struct {
	// CurrentBackups tracks the creation and deletion progress if all backups managed by the EtcdBackupConfig
	CurrentBackups []BackupStatus `json:"lastBackups,omitempty"`
	// Conditions contains conditions of the EtcdBackupConfig
	Conditions []EtcdBackupConfigCondition `json:"conditions,omitempty"`
	// If the controller was configured with a cleanupContainer, CleanupRunning keeps track of the corresponding job
	CleanupRunning bool `json:"cleanupRunning,omitempty"`
}

type EtcdRestore added in v2.18.0

type EtcdRestore struct {
	apiv1.ObjectMeta

	Name string `json:"name"`

	Spec   EtcdRestoreSpec   `json:"spec"`
	Status EtcdRestoreStatus `json:"status"`
}

EtcdRestore represents an object holding the configuration for etcd backup restore swagger:model EtcdRestore

type EtcdRestoreSpec added in v2.18.0

type EtcdRestoreSpec struct {
	// ClusterID is the id of the cluster which will be restored from the backup
	ClusterID string `json:"clusterId"`
	// BackupName is the name of the backup to restore from
	BackupName string `json:"backupName"`
	// BackupDownloadCredentialsSecret is the name of a secret in the cluster-xxx namespace containing
	// credentials needed to download the backup
	BackupDownloadCredentialsSecret string `json:"backupDownloadCredentialsSecret,omitempty"`
	// Destination indicates where the backup was stored. The destination name should correspond to a destination in
	// the cluster's Seed.Spec.EtcdBackupRestore.
	Destination string `json:"destination,omitempty"`
}

EtcdRestoreSpec represents an object holding the etcd backup restore configuration specification swagger:model EtcdRestoreSpec

type EtcdRestoreStatus added in v2.18.0

type EtcdRestoreStatus struct {
	Phase       kubermaticv1.EtcdRestorePhase `json:"phase"`
	RestoreTime *apiv1.Time                   `json:"restoreTime,omitempty"`
}

type ExternalCluster added in v2.19.0

type ExternalCluster struct {
	apiv1.ObjectMeta `json:",inline"`
	Labels           map[string]string         `json:"labels,omitempty"`
	Spec             ExternalClusterSpec       `json:"spec,omitempty"`
	Cloud            *ExternalClusterCloudSpec `json:"cloud,omitempty"`
	Status           ExternalClusterStatus     `json:"status"`
}

ExternalCluster represents an object holding cluster details swagger:model ExternalCluster

type ExternalClusterCloudSpec added in v2.19.0

type ExternalClusterCloudSpec struct {
	GKE          *GKECloudSpec     `json:"gke,omitempty"`
	EKS          *EKSCloudSpec     `json:"eks,omitempty"`
	AKS          *AKSCloudSpec     `json:"aks,omitempty"`
	KubeOne      *KubeOneSpec      `json:"kubeOne,omitempty"`
	BringYourOwn *BringYourOwnSpec `json:"bringYourOwn,omitempty"`
}

ExternalClusterCloudSpec represents an object holding cluster cloud details swagger:model ExternalClusterCloudSpec

type ExternalClusterMDPhase added in v2.21.0

type ExternalClusterMDPhase struct {
	State         ExternalClusterMDState `json:"state"`
	StatusMessage string                 `json:"statusMessage,omitempty"`
}

ExternalClusterMDPhase defines the external cluster machinedeployment phase.

type ExternalClusterMDState added in v2.21.0

type ExternalClusterMDState string
const (
	// ProvisioningExternalClusterMDState state indicates the cluster machine dedeployment is being created.
	ProvisioningExternalClusterMDState ExternalClusterMDState = "Provisioning"

	// RunningExternalClusterMDState state indicates the cluster machine dedeployment has been created and is fully usable.
	RunningExternalClusterMDState ExternalClusterMDState = "Running"

	// ReconcilingExternalClusterMDState state indicates that some work is actively being done on the machine dedeployment, such as upgrading the master or
	// node software. Details can be found in the `StatusMessage` field.
	ReconcilingExternalClusterMDState ExternalClusterMDState = "Reconciling"

	// DeletingExternalClusterMDState state indicates the machine dedeployment is being deleted.
	DeletingExternalClusterMDState ExternalClusterMDState = "Deleting"

	// UnknownExternalClusterMDState indicates undefined state.
	UnknownExternalClusterMDState ExternalClusterMDState = "Unknown"

	// ErrorExternalClusterMDState state indicates the machine dedeployment is unusable. It will be automatically deleted. Details can be found in the
	// `statusMessage` field.
	ErrorExternalClusterMDState ExternalClusterMDState = "Error"
)

type ExternalClusterMachineDeployment added in v2.19.0

type ExternalClusterMachineDeployment struct {
	apiv1.NodeDeployment `json:",inline"`
	Cloud                *ExternalClusterMachineDeploymentCloudSpec `json:"cloud,omitempty"`
	Phase                ExternalClusterMDPhase                     `json:"phase"`
}

ExternalClusterMachineDeployment represents an object holding external cluster machine deployment swagger:model ExternalClusterMachineDeployment

type ExternalClusterMachineDeploymentCloudSpec added in v2.19.0

type ExternalClusterMachineDeploymentCloudSpec struct {
	GKE *GKEMachineDeploymentCloudSpec `json:"gke,omitempty"`
	AKS *AKSMachineDeploymentCloudSpec `json:"aks,omitempty"`
	EKS *EKSMachineDeploymentCloudSpec `json:"eks,omitempty"`
}

ExternalClusterMachineDeploymentCloudSpec represents an object holding machine deployment cloud details. swagger:model ExternalClusterMachineDeploymentCloudSpec

type ExternalClusterNode added in v2.19.0

type ExternalClusterNode struct {
	apiv1.Node `json:",inline"`
}

ExternalClusterNode represents an object holding external cluster node swagger:model ExternalClusterNode

type ExternalClusterSpec added in v2.19.0

type ExternalClusterSpec struct {
	// Version desired version of the kubernetes master components
	Version ksemver.Semver `json:"version,omitempty"`

	GKEClusterSpec *GKEClusterSpec `json:"gkeclusterSpec,omitempty"`
	EKSClusterSpec *EKSClusterSpec `json:"eksclusterSpec,omitempty"`
	AKSClusterSpec *AKSClusterSpec `json:"aksclusterSpec,omitempty"`
}

ExternalClusterSpec defines the external cluster specification.

type ExternalClusterState added in v2.19.0

type ExternalClusterState string
const (
	// ProvisioningExternalClusterState state indicates the cluster is being created.
	ProvisioningExternalClusterState ExternalClusterState = "Provisioning"

	// StoppedExternalClusterState state indicates the cluster is stopped, this state is specific to AKS clusters.
	StoppedExternalClusterState ExternalClusterState = "Stopped"

	// StoppingExternalClusterState state indicates the cluster is stopping, this state is specific to AKS clusters.
	StoppingExternalClusterState ExternalClusterState = "Stopping"

	// RunningExternalClusterState state indicates the cluster has been created and is fully usable.
	RunningExternalClusterState ExternalClusterState = "Running"

	// ReconcilingExternalClusterState state indicates that some work is actively being done on the cluster, such as upgrading the master or
	// node software. Details can be found in the `StatusMessage` field.
	ReconcilingExternalClusterState ExternalClusterState = "Reconciling"

	// DeletingExternalClusterState state indicates the cluster is being deleted.
	DeletingExternalClusterState ExternalClusterState = "Deleting"

	// UnknownExternalClusterState indicates undefined state.
	UnknownExternalClusterState ExternalClusterState = "Unknown"

	// ErrorExternalClusterState state indicates the cluster is unusable. It will be automatically deleted. Details can be found in the
	// `statusMessage` field.
	ErrorExternalClusterState ExternalClusterState = "Error"
)

type ExternalClusterStatus added in v2.19.0

type ExternalClusterStatus struct {
	State         ExternalClusterState `json:"state"`
	StatusMessage string               `json:"statusMessage,omitempty"`
}

ExternalClusterStatus defines the external cluster status.

type FeatureGates added in v2.19.0

type FeatureGates struct {
	KonnectivityService    *bool `json:"konnectivityService,omitempty"`
	OIDCKubeCfgEndpoint    *bool `json:"oidcKubeCfgEndpoint,omitempty"`
	OperatingSystemManager *bool `json:"operatingSystemManager,omitempty"`
}

FeatureGates represents an object holding feature gate settings swagger:model FeatureGates

type GKEAutoprovisioningNodePoolDefaults added in v2.19.0

type GKEAutoprovisioningNodePoolDefaults struct {
	// BootDiskKmsKey: The Customer Managed Encryption Key used to encrypt
	// the boot disk attached to each node in the node pool. This should be
	// of the form
	// projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cr
	// yptoKeys/[KEY_NAME]. For more information about protecting resources
	// with Cloud KMS Keys please see:
	// https://cloud.google.com/compute/docs/disks/customer-managed-encryption
	BootDiskKmsKey string `json:"bootDiskKmsKey,omitempty"`

	// DiskSizeGb: Size of the disk attached to each node, specified in GB.
	// The smallest allowed disk size is 10GB. If unspecified, the default
	// disk size is 100GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`

	// DiskType: Type of the disk attached to each node (e.g. 'pd-standard',
	// 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is
	// 'pd-standard'
	DiskType string `json:"diskType,omitempty"`

	// Management: Specifies the node management options for NAP created
	// node-pools.
	Management *GKENodeManagement `json:"management,omitempty"`

	// MinCpuPlatform: Minimum CPU platform to be used for NAP created node
	// pools. The instance may be scheduled on the specified or newer CPU
	// platform. Applicable values are the friendly names of CPU platforms,
	// such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy
	// Bridge. For more information, read how to specify min CPU platform
	// (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
	// To unset the min cpu platform field pass "automatic" as field value.
	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`

	// OauthScopes: Scopes that are used by NAP when creating node pools.
	OauthScopes []string `json:"oauthScopes,omitempty"`

	// ServiceAccount: The Google Cloud Platform Service Account to be used
	// by the node VMs.
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// ShieldedInstanceConfig: Shielded Instance options.
	ShieldedInstanceConfig *GKEShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`

	// UpgradeSettings: Specifies the upgrade settings for NAP created node
	// pools
	UpgradeSettings *GKEUpgradeSettings `json:"upgradeSettings,omitempty"`
}

GKEAutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.

type GKECloudSpec added in v2.19.0

type GKECloudSpec struct {
	Name           string `json:"name"`
	ServiceAccount string `json:"serviceAccount,omitempty"`
	Zone           string `json:"zone"`
}

type GKECluster added in v2.19.0

type GKECluster struct {
	Name       string `json:"name"`
	IsImported bool   `json:"imported"`
	Zone       string `json:"zone"`
}

GKECluster represents a object of GKE cluster. swagger:model GKECluster

type GKEClusterAutoscaling added in v2.19.0

type GKEClusterAutoscaling struct {
	// AutoprovisioningLocations: The list of Google Compute Engine zones
	// (https://cloud.google.com/compute/docs/zones#available) in which the
	// NodePool's nodes can be created by NAP.
	AutoprovisioningLocations []string `json:"autoprovisioningLocations,omitempty"`

	// AutoprovisioningNodePoolDefaults: AutoprovisioningNodePoolDefaults
	// contains defaults for a node pool created by NAP.
	AutoprovisioningNodePoolDefaults *GKEAutoprovisioningNodePoolDefaults `json:"autoprovisioningNodePoolDefaults,omitempty"`

	// EnableNodeAutoprovisioning: Enables automatic node pool creation and
	// deletion.
	EnableNodeAutoprovisioning bool `json:"enableNodeAutoprovisioning,omitempty"`

	// ResourceLimits: Contains global constraints regarding minimum and
	// maximum amount of resources in the cluster.
	ResourceLimits []*GKEResourceLimit `json:"resourceLimits,omitempty"`
}

GKEClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs.

type GKEClusterList added in v2.19.0

type GKEClusterList []GKECluster

GKEClusterList represents an array of GKE clusters. swagger:model GKEClusterList

type GKEClusterSpec added in v2.19.0

type GKEClusterSpec struct {
	// Autopilot: Autopilot configuration for the cluster.
	Autopilot bool `json:"autopilot,omitempty"`

	// CreateTime: [Output only] The time the cluster was created, in
	// RFC3339 (https://www.ietf.org/rfc/rfc3339.txt) text format.
	CreateTime string `json:"createTime,omitempty"`

	// ReleaseChannel: channel specifies which release channel the cluster is
	// subscribed to.
	//
	// Possible values:
	//   "UNSPECIFIED" - No channel specified.
	//   "RAPID" - RAPID channel is offered on an early access basis for
	// customers who want to test new releases. WARNING: Versions available
	// in the RAPID Channel may be subject to unresolved issues with no
	// known workaround and are not subject to any SLAs.
	//   "REGULAR" - Clusters subscribed to REGULAR receive versions that
	// are considered GA quality. REGULAR is intended for production users
	// who want to take advantage of new features.
	//   "STABLE" - Clusters subscribed to STABLE receive versions that are
	// known to be stable and reliable in production.
	ReleaseChannel string `json:"releaseChannel,omitempty"`

	// GKEClusterAutoscaling: Cluster-level autoscaling configuration.
	Autoscaling *GKEClusterAutoscaling `json:"autoscaling,omitempty"`

	// ClusterIpv4Cidr: The IP address range of the container pods in this
	// cluster, in CIDR
	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
	// notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically
	// chosen or specify a `/14` block in `10.0.0.0/8`.
	ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`

	// DefaultMaxPodsConstraint: The default constraint on the maximum
	// number of pods that can be run simultaneously on a node in the node
	// pool of this cluster. Only honored if cluster created with IP Alias
	// support.
	DefaultMaxPodsConstraint *int64 `json:"defaultMaxPodsConstraint,omitempty"`

	// EnableKubernetesAlpha: Kubernetes alpha features are enabled on this
	// cluster. This includes alpha API groups (e.g. v1alpha1) and features
	// that may not be production ready in the kubernetes version of the
	// master and nodes. The cluster has no SLA for uptime and master/node
	// upgrades are disabled. Alpha enabled clusters are automatically
	// deleted thirty days after creation.
	EnableKubernetesAlpha bool `json:"enableKubernetesAlpha,omitempty"`

	// EnableTpu: Enable the ability to use Cloud TPUs in this cluster.
	EnableTpu bool `json:"enableTpu,omitempty"`

	// InitialClusterVersion: The initial Kubernetes version for this
	// cluster. Valid versions are those found in validMasterVersions
	// returned by getServerConfig. The version can be upgraded over time;
	// such upgrades are reflected in currentMasterVersion and
	// currentNodeVersion. Users may specify either explicit versions
	// offered by Kubernetes Engine or version aliases, which have the
	// following behavior: - "latest": picks the highest valid Kubernetes
	// version - "1.X": picks the highest valid patch+gke.N patch in the 1.X
	// version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y
	// version - "1.X.Y-gke.N": picks an explicit Kubernetes version -
	// "","-": picks the default Kubernetes version
	InitialClusterVersion string `json:"initialClusterVersion,omitempty"`

	// InitialNodeCount: The number of nodes to create in this cluster. You
	// must ensure that your Compute Engine resource quota
	// (https://cloud.google.com/compute/quotas) is sufficient for this
	// number of instances. You must also have available firewall and routes
	// quota. For requests, this field should only be used in lieu of a
	// "node_pool" object, since this configuration (along with the
	// "node_config") will be used to create a "NodePool" object with an
	// auto-generated name. Do not use this and a node_pool at the same
	// time. This field is deprecated, use node_pool.initial_node_count
	// instead.
	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`

	// Locations: The list of Google Compute Engine zones
	// (https://cloud.google.com/compute/docs/zones#available) in which the
	// cluster's nodes should be located. This field provides a default
	// value if NodePool.Locations
	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
	// are not specified during node pool creation. Warning: changing
	// cluster locations will update the NodePool.Locations
	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
	// of all node pools and will result in nodes being added and/or
	// removed.
	Locations []string `json:"locations,omitempty"`

	// Network: The name of the Google Compute Engine network
	// (https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
	// to which the cluster is connected. If left unspecified, the `default`
	// network will be used.
	Network string `json:"network,omitempty"`

	// NodeConfig: Parameters used in creating the cluster's nodes. For
	// requests, this field should only be used in lieu of a "node_pool"
	// object, since this configuration (along with the
	// "initial_node_count") will be used to create a "NodePool" object with
	// an auto-generated name. Do not use this and a node_pool at the same
	// time. For responses, this field will be populated with the node
	// configuration of the first node pool. (For configuration of each node
	// pool, see `node_pool.config`) If unspecified, the defaults are used.
	// This field is deprecated, use node_pool.config instead.
	NodeConfig *GKENodeConfig `json:"nodeConfig,omitempty"`

	// Subnetwork: The name of the Google Compute Engine subnetwork
	// (https://cloud.google.com/compute/docs/subnetworks) to which the
	// cluster is connected.
	Subnetwork string `json:"subnetwork,omitempty"`

	// TpuIpv4CidrBlock: [Output only] The IP address range of the Cloud
	// TPUs in this cluster, in CIDR
	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
	// notation (e.g. `1.2.3.4/29`).
	TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`

	// VerticalPodAutoscaling: Cluster-level Vertical Pod Autoscaling
	// configuration.
	VerticalPodAutoscaling bool `json:"verticalPodAutoscaling,omitempty"`
}

GKEClusterSpec A Google Kubernetes Engine cluster.

type GKEDiskType added in v2.21.0

type GKEDiskType struct {
	// Name of the resource.
	Name string `json:"name"`
	// Description: An optional description of this resource.
	Description string `json:"description,omitempty"`
	// DefaultDiskSizeGb: Server-defined default disk size in GB.
	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty"`
	// Kind: Type of the resource. Always compute#diskType for
	// disk types.
	Kind string `json:"kind,omitempty"`
}

GKEDiskType represents a object of GKE disk type. swagger:model GKEDiskType

type GKEDiskTypeList added in v2.21.0

type GKEDiskTypeList []GKEDiskType

GKEDiskTypeList represents an array of GKE disk types. swagger:model GKEDiskTypeList

type GKEImage added in v2.19.0

type GKEImage struct {
	Name      string `json:"name"`
	IsDefault bool   `json:"default,omitempty"`
}

GKEImage represents an object of GKE image. swagger:model GKEImage

type GKEImageList added in v2.19.0

type GKEImageList []GKEImage

GKEImageList represents an array of GKE images. swagger:model GKEImageList

type GKEMachineDeploymentCloudSpec added in v2.19.0

type GKEMachineDeploymentCloudSpec struct {
	// Autoscaling: Autoscaler configuration for this NodePool. Autoscaler
	// is enabled only if a valid configuration is present.
	Autoscaling *GKENodePoolAutoscaling `json:"autoscaling,omitempty"`

	// Config: The node configuration of the pool.
	Config *GKENodeConfig `json:"config,omitempty"`

	// Management: NodeManagement configuration for this NodePool.
	Management *GKENodeManagement `json:"management,omitempty"`

	// Locations: The list of Google Compute Engine zones
	// (https://cloud.google.com/compute/docs/zones#available) in which the
	// NodePool's nodes should be located. If this value is unspecified
	// during node pool creation, the Cluster.Locations
	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
	// value will be used, instead. Warning: changing node pool locations
	// will result in nodes being added and/or removed.
	Locations []string `json:"locations,omitempty"`
}

GKEMachineDeploymentCloudSpec represents an object holding GKE machine deployment cloud details.

type GKENodeConfig added in v2.19.0

type GKENodeConfig struct {
	// DiskSizeGb: Size of the disk attached to each node, specified in GB.
	// The smallest allowed disk size is 10GB. If unspecified, the default
	// disk size is 100GB.
	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`

	// DiskType: Type of the disk attached to each node (e.g. 'pd-standard',
	// 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is
	// 'pd-standard'
	DiskType string `json:"diskType,omitempty"`

	// ImageType: The image type to use for this node. Note that for a given
	// image type, the latest version of it will be used.
	ImageType string `json:"imageType,omitempty"`

	// LocalSsdCount: The number of local SSD disks to be attached to the
	// node. The limit for this value is dependent upon the maximum number
	// of disks available on a machine per zone. See:
	// https://cloud.google.com/compute/docs/disks/local-ssd for more
	// information.
	LocalSsdCount int64 `json:"localSsdCount,omitempty"`

	// MachineType: The name of a Google Compute Engine machine type
	// (https://cloud.google.com/compute/docs/machine-types) If unspecified,
	// the default machine type is `e2-medium`.
	MachineType string `json:"machineType,omitempty"`

	// Labels: The map of Kubernetes labels (key/value pairs) to be applied
	// to each node. These will added in addition to any default label(s)
	// that Kubernetes may apply to the node. In case of conflict in label
	// keys, the applied set may differ depending on the Kubernetes version
	// -- it's best to assume the behavior is undefined and conflicts should
	// be avoided. For more information, including usage and the valid
	// values, see:
	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	Labels map[string]string `json:"labels,omitempty"`

	// Preemptible: Whether the nodes are created as preemptible VM
	// instances. See:
	// https://cloud.google.com/compute/docs/instances/preemptible for more
	// information about preemptible VM instances.
	Preemptible bool `json:"preemptible,omitempty"`
}

GKENodeConfig Parameters that describe the nodes in a cluster.

type GKENodeManagement added in v2.19.0

type GKENodeManagement struct {
	// AutoRepair: A flag that specifies whether the node auto-repair is
	// enabled for the node pool. If enabled, the nodes in this node pool
	// will be monitored and, if they fail health checks too many times, an
	// automatic repair action will be triggered.
	AutoRepair bool `json:"autoRepair,omitempty"`

	// AutoUpgrade: A flag that specifies whether node auto-upgrade is
	// enabled for the node pool. If enabled, node auto-upgrade helps keep
	// the nodes in your node pool up to date with the latest release
	// version of Kubernetes.
	AutoUpgrade bool `json:"autoUpgrade,omitempty"`
}

GKENodeManagement defines the set of node management services turned on for the node pool.

type GKENodePoolAutoscaling added in v2.19.0

type GKENodePoolAutoscaling struct {
	// Autoprovisioned: Can this node pool be deleted automatically.
	Autoprovisioned bool `json:"autoprovisioned,omitempty"`

	// Enabled: Is autoscaling enabled for this node pool.
	Enabled bool `json:"enabled,omitempty"`

	// MaxNodeCount: Maximum number of nodes in the NodePool. Must be >=
	// min_node_count. There has to enough quota to scale up the cluster.
	MaxNodeCount int64 `json:"maxNodeCount,omitempty"`

	// MinNodeCount: Minimum number of nodes in the NodePool. Must be >= 1
	// and <= max_node_count.
	MinNodeCount int64 `json:"minNodeCount,omitempty"`
}

GKENodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.

type GKEResourceLimit added in v2.19.0

type GKEResourceLimit struct {
	// Maximum: Maximum amount of the resource in the cluster.
	Maximum int64 `json:"maximum,omitempty,string"`

	// Minimum: Minimum amount of the resource in the cluster.
	Minimum int64 `json:"minimum,omitempty,string"`

	// ResourceType: Resource name "cpu", "memory" or gpu-specific string.
	ResourceType string `json:"resourceType,omitempty"`
}

GKEResourceLimit Contains information about amount of some resource in the cluster. For memory, value should be in GB.

type GKEShieldedInstanceConfig added in v2.19.0

type GKEShieldedInstanceConfig struct {
	// EnableIntegrityMonitoring: Defines whether the instance has integrity
	// monitoring enabled. Enables monitoring and attestation of the boot
	// integrity of the instance. The attestation is performed against the
	// integrity policy baseline. This baseline is initially derived from
	// the implicitly trusted boot image when the instance is created.
	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`

	// EnableSecureBoot: Defines whether the instance has Secure Boot
	// enabled. Secure Boot helps ensure that the system only runs authentic
	// software by verifying the digital signature of all boot components,
	// and halting the boot process if signature verification fails.
	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
}

GKEShieldedInstanceConfig a set of Shielded Instance options.

type GKEUpgradeSettings added in v2.19.0

type GKEUpgradeSettings struct {
	// MaxSurge: The maximum number of nodes that can be created beyond the
	// current size of the node pool during the upgrade process.
	MaxSurge int64 `json:"maxSurge,omitempty"`

	// MaxUnavailable: The maximum number of nodes that can be
	// simultaneously unavailable during the upgrade process. A node is
	// considered available if its status is Ready.
	MaxUnavailable int64 `json:"maxUnavailable,omitempty"`
}

GKEUpgradeSettings These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available.

type GKEZone added in v2.19.0

type GKEZone struct {
	Name      string `json:"name"`
	IsDefault bool   `json:"default,omitempty"`
}

GKEZone represents a object of GKE zone. swagger:model GKEZone

type GKEZoneList added in v2.19.0

type GKEZoneList []GKEZone

GKEZoneList represents an array of GKE zones. swagger:model GKEZoneList

type GVK

type GVK struct {
	Group   string `json:"group,omitempty"`
	Version string `json:"version,omitempty"`
	Kind    string `json:"kind,omitempty"`
}

GVK group version kind of a resource.

type GatekeeperConfig

type GatekeeperConfig struct {
	Spec GatekeeperConfigSpec `json:"spec"`
}

GatekeeperConfig represents a gatekeeper config swagger:model GatekeeperConfig

type GatekeeperConfigSpec

type GatekeeperConfigSpec struct {
	// Configuration for syncing k8s objects
	Sync Sync `json:"sync,omitempty"`

	// Configuration for validation
	Validation Validation `json:"validation,omitempty"`

	// Configuration for namespace exclusion
	Match []MatchEntry `json:"match,omitempty"`

	// Configuration for readiness tracker
	Readiness ReadinessSpec `json:"readiness,omitempty"`
}

type GroupProjectBinding added in v2.21.0

type GroupProjectBinding struct {
	Name      string `json:"name"`
	Group     string `json:"group"`
	ProjectID string `json:"projectID"`
	Role      string `json:"role"`
}

swagger:model GroupProjectBinding

type IPAMPool added in v2.21.0

type IPAMPool struct {
	Name        string                                `json:"name"`
	Datacenters map[string]IPAMPoolDatacenterSettings `json:"datacenters"`
}

swagger:model IPAMPool

type IPAMPoolDatacenterSettings added in v2.21.0

type IPAMPoolDatacenterSettings struct {
	Type             kubermaticv1.IPAMPoolAllocationType `json:"type"`
	PoolCIDR         kubermaticv1.SubnetCIDR             `json:"poolCidr"`
	AllocationPrefix int                                 `json:"allocationPrefix,omitempty"`
	AllocationRange  int                                 `json:"allocationRange,omitempty"`
}

swagger:model IPAMPoolDatacenterSettings

type KubeOneAWSCloudSpec added in v2.21.0

type KubeOneAWSCloudSpec struct {
	AccessKeyID     string `json:"accessKeyID"`
	SecretAccessKey string `json:"secretAccessKey"`
}

KubeOneAWSCloudSpec specifies access data to Amazon Web Services.

type KubeOneAzureCloudSpec added in v2.21.0

type KubeOneAzureCloudSpec struct {
	TenantID       string `json:"tenantID"`
	SubscriptionID string `json:"subscriptionID"`
	ClientID       string `json:"clientID"`
	ClientSecret   string `json:"clientSecret"`
}

KubeOneAzureCloudSpec specifies access credentials to Azure cloud.

type KubeOneCloudSpec added in v2.21.0

type KubeOneCloudSpec struct {
	AWS                 *KubeOneAWSCloudSpec                 `json:"aws,omitempty"`
	GCP                 *KubeOneGCPCloudSpec                 `json:"gcp,omitempty"`
	Azure               *KubeOneAzureCloudSpec               `json:"azure,omitempty"`
	DigitalOcean        *KubeOneDigitalOceanCloudSpec        `json:"digitalocean,omitempty"`
	OpenStack           *KubeOneOpenStackCloudSpec           `json:"openstack,omitempty"`
	Equinix             *KubeOneEquinixCloudSpec             `json:"equinix,omitempty"`
	Hetzner             *KubeOneHetznerCloudSpec             `json:"hetzner,omitempty"`
	VSphere             *KubeOneVSphereCloudSpec             `json:"vsphere,omitempty"`
	VMwareCloudDirector *KubeOneVMwareCloudDirectorCloudSpec `json:"vmwareclouddirector,omitempty"`
	Nutanix             *KubeOneNutanixCloudSpec             `json:"nutanix,omitempty"`
}

type KubeOneDigitalOceanCloudSpec added in v2.21.0

type KubeOneDigitalOceanCloudSpec struct {
	// Token is used to authenticate with the DigitalOcean API.
	Token string `json:"token"`
}

KubeOneDigitalOceanCloudSpec specifies access data to DigitalOcean.

type KubeOneEquinixCloudSpec added in v2.21.0

type KubeOneEquinixCloudSpec struct {
	APIKey    string `json:"apiKey"`
	ProjectID string `json:"projectID"`
}

KubeOneEquinixCloudSpec specifies access data to a Equinix cloud.

type KubeOneGCPCloudSpec added in v2.21.0

type KubeOneGCPCloudSpec struct {
	ServiceAccount string `json:"serviceAccount"`
}

KubeOneGCPCloudSpec specifies access data to GCP.

type KubeOneHetznerCloudSpec added in v2.21.0

type KubeOneHetznerCloudSpec struct {
	// Token is used to authenticate with the Hetzner cloud API.
	Token string `json:"token"`
}

KubeOneHetznerCloudSpec specifies access data to hetzner cloud.

type KubeOneNutanixCloudSpec added in v2.21.0

type KubeOneNutanixCloudSpec struct {
	Username string `json:"username"`
	Password string `json:"password"`
	// Endpoint is the Nutanix API (Prism Central) endpoint
	Endpoint string `json:"endpoint"`
	// Port is the Nutanix API (Prism Central) port
	Port string `json:"port"`

	// PrismElementUsername to be used for the CSI driver
	PrismElementUsername string `json:"elementUsername"`
	// PrismElementPassword to be used for the CSI driver
	PrismElementPassword string `json:"elementPassword"`
	// PrismElementEndpoint to access Nutanix Prism Element for the CSI driver
	PrismElementEndpoint string `json:"elementEndpoint"`

	// ClusterName is the Nutanix cluster that this user cluster will be deployed to.
	// +optional
	ClusterName   string `json:"clusterName,omitempty"`
	AllowInsecure bool   `json:"allowInsecure,omitempty"`
	ProxyURL      string `json:"proxyURL,omitempty"`
}

KubeOneNutanixCloudSpec specifies the access data to Nutanix.

type KubeOneOpenStackCloudSpec added in v2.21.0

type KubeOneOpenStackCloudSpec struct {
	AuthURL  string `json:"authURL"`
	Username string `json:"username"`
	Password string `json:"password"`

	// Project, formally known as tenant.
	Project string `json:"project"`
	// ProjectID, formally known as tenantID.
	ProjectID string `json:"projectID"`

	Domain string `json:"domain"`
	Region string `json:"region"`
}

KubeOneOpenStackCloudSpec specifies access data to an OpenStack cloud.

type KubeOneSSHKey added in v2.21.0

type KubeOneSSHKey struct {
	// PrivateKey Base64 encoded privateKey
	PrivateKey string `json:"privateKey,omitempty"`
	Passphrase string `json:"passphrase,omitempty"`
}

SSHKeySpec represents the details of a ssh key.

type KubeOneSpec added in v2.21.0

type KubeOneSpec struct {
	// Manifest Base64 encoded manifest
	Manifest         string            `json:"manifest,omitempty"`
	SSHKey           KubeOneSSHKey     `json:"sshKey,omitempty"`
	ContainerRuntime string            `json:"containerRuntime,omitempty"`
	CloudSpec        *KubeOneCloudSpec `json:"cloudSpec,omitempty"`
}

type KubeOneVMwareCloudDirectorCloudSpec added in v2.21.0

type KubeOneVMwareCloudDirectorCloudSpec struct {
	URL          string `json:"url"`
	Username     string `json:"username"`
	Password     string `json:"password"`
	Organization string `json:"organization"`
	VDC          string `json:"vdc"`
}

KubeOneVMwareCloudDirectorCloudSpec represents credentials for accessing VMWare Cloud Director.

type KubeOneVSphereCloudSpec added in v2.21.0

type KubeOneVSphereCloudSpec struct {
	Server   string `json:"server"`
	Username string `json:"username"`
	Password string `json:"password"`
}

KubeOneVSphereCloudSpec credentials represents a credential for accessing vSphere.

type MLA added in v2.18.0

type MLA struct {
	// whether the user cluster MLA (Monitoring, Logging & Alerting) stack is enabled in the seed
	UserClusterMLAEnabled bool `json:"user_cluster_mla_enabled"`
}

type MLAAdminSetting added in v2.18.0

type MLAAdminSetting struct {
	// MonitoringRateLimits contains rate-limiting configuration for monitoring in the user cluster.
	MonitoringRateLimits *kubermaticv1.MonitoringRateLimitSettings `json:"monitoringRateLimits,omitempty"`
	// LoggingRateLimits contains rate-limiting configuration logging in the user cluster.
	LoggingRateLimits *kubermaticv1.LoggingRateLimitSettings `json:"loggingRateLimits,omitempty"`
}

MLAAdminSetting represents an object holding admin setting options for user cluster MLA (Monitoring, Logging and Alerting). swagger:model MLAAdminSetting

type MatchEntry

type MatchEntry struct {
	// Namespaces which will be excluded
	ExcludedNamespaces []string `json:"excludedNamespaces,omitempty"`
	// Processes which will be excluded in the given namespaces (sync, webhook, audit, *)
	Processes []string `json:"processes,omitempty"`
}

type NamespaceSpec added in v2.21.2

type NamespaceSpec struct {
	// Name is the namespace to deploy the Application into.
	// Should be a valid lowercase RFC1123 domain name
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Type=string
	Name string `json:"name"`

	// Create defines whether the namespace should be created if it does not exist. Defaults to true
	Create bool `json:"create"`

	// Labels of the namespace
	// More info: http://kubernetes.io/docs/user-guide/labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations of the namespace
	// More info: http://kubernetes.io/docs/user-guide/annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

NamespaceSpec describe the desired state of the namespace where application will be created.

type NetworkDefaults added in v2.21.0

type NetworkDefaults struct {
	// IPv4 contains cluster network default settings for IPv4 network family.
	IPv4 *NetworkDefaultsIPFamily `json:"ipv4,omitempty"`
	// IPv6 contains cluster network default settings for IPv6 network family.
	IPv6 *NetworkDefaultsIPFamily `json:"ipv6,omitempty"`
	// ProxyMode defines the default kube-proxy mode ("ipvs" / "iptables" / "ebpf").
	ProxyMode string `json:"proxyMode,omitempty"`
	// NodeLocalDNSCacheEnabled controls whether the NodeLocal DNS Cache feature is enabled.
	NodeLocalDNSCacheEnabled bool `json:"nodeLocalDNSCacheEnabled,omitempty"`
}

NetworkDefaults contains cluster network default settings. swagger:model NetworkDefaults

type NetworkDefaultsIPFamily added in v2.21.0

type NetworkDefaultsIPFamily struct {
	// PodsCIDR contains the default network range from which POD networks are allocated.
	PodsCIDR string `json:"podsCidr,omitempty"`
	// ServicesCIDR contains the default network range from which service VIPs are allocated.
	ServicesCIDR string `json:"servicesCidr,omitempty"`
	// NodeCIDRMaskSize contains the default mask size used to address the nodes within provided Pods CIDR.
	NodeCIDRMaskSize int32 `json:"nodeCidrMaskSize,omitempty"`
	// NodePortsAllowedIPRange defines the default IP range from which access to NodePort services is allowed for applicable cloud providers.
	NodePortsAllowedIPRange string `json:"nodePortsAllowedIPRange,omitempty"`
}

NetworkDefaultsIPFamily contains cluster network default settings for an IP family. swagger:model NetworkDefaultsIPFamily

type OIDCSpec added in v2.18.0

type OIDCSpec struct {
	IssuerURL    string `json:"issuerUrl,omitempty"`
	ClientID     string `json:"clientId,omitempty"`
	ClientSecret string `json:"clientSecret,omitempty"`
}

OIDCSpec contains OIDC params that can be used to access user cluster. swagger:model OIDCSpec

type OpenstackSubnetPool added in v2.21.0

type OpenstackSubnetPool struct {
	// Id uniquely identifies the subnet pool
	ID string `json:"id"`
	// Name is the name of the subnet pool
	Name string `json:"name"`
	// IPversion is the IP protocol version (4 or 6)
	IPversion int `json:"ipVersion"`
	// IsDefault indicates if the subnetpool is default pool or not
	IsDefault bool `json:"isDefault"`
	// Prefixes is the list of subnet prefixes
	Prefixes []string `json:"prefixes"`
}

OpenstackSubnetPool is the object representing a openstack subnet pool. swagger:model OpenstackSubnetPool

type OperatingSystemProfile added in v2.21.0

type OperatingSystemProfile struct {
	Name                    string   `json:"name"`
	OperatingSystem         string   `json:"operatingSystem"`
	SupportedCloudProviders []string `json:"supportedCloudProviders,omitempty"`
}

swagger:model OperatingSystemProfile

type Preset

type Preset struct {
	Name      string           `json:"name"`
	Enabled   bool             `json:"enabled"`
	Providers []PresetProvider `json:"providers"`
}

Preset represents a preset swagger:model Preset

type PresetBody added in v2.19.3

type PresetBody struct {
	PresetBodyMetadata `json:"metadata,omitempty"`
	Spec               kubermaticv1.PresetSpec `json:"spec"`
}

PresetBody represents the body of a created preset swagger:model PresetBody

type PresetBodyMetadata added in v2.19.3

type PresetBodyMetadata struct {
	Name string `json:"name,omitempty"`
}

PresetBodyMetadata represents metadata within the body of a created preset swagger:model PresetBodyMetadata

type PresetList

type PresetList struct {
	Items []Preset `json:"items"`
}

PresetList represents a list of presets swagger:model PresetList

type PresetProvider

type PresetProvider struct {
	Name    kubermaticv1.ProviderType `json:"name"`
	Enabled bool                      `json:"enabled"`
}

PresetProvider represents a preset provider swagger:model PresetProvider

type PresetStats added in v2.21.0

type PresetStats struct {
	AssociatedClusters         int `json:"associatedClusters"`
	AssociatedClusterTemplates int `json:"associatedClusterTemplates"`
}

PresetStats represents a preset statistics swagger:model PresetStats

type Quota added in v2.21.0

type Quota struct {
	// CPU holds the quantity of CPU.
	CPU *int64 `json:"cpu,omitempty"`
	// Memory represents the RAM amount. Denoted in GB, rounded to 2 decimal places.
	Memory *float64 `json:"memory,omitempty"`
	// Storage represents the disk size. Denoted in GB, rounded to 2 decimal places.
	Storage *float64 `json:"storage,omitempty"`
}

swagger:model Quota

type ReadinessSpec

type ReadinessSpec struct {
	// enables stats for gatekeeper audit
	StatsEnabled bool `json:"statsEnabled,omitempty"`
}

type ResourceQuota added in v2.21.0

type ResourceQuota struct {
	Name        string `json:"name"`
	SubjectName string `json:"subjectName"`
	SubjectKind string `json:"subjectKind"`
	// SubjectHumanReadableName contains the human-readable name for the subject(if applicable). Just filled as information in get/list.
	SubjectHumanReadableName string              `json:"subjectHumanReadableName,omitempty"`
	Quota                    Quota               `json:"quota"`
	Status                   ResourceQuotaStatus `json:"status"`
}

swagger:model ResourceQuota

type ResourceQuotaStatus added in v2.21.0

type ResourceQuotaStatus struct {
	// GlobalUsage is holds the current usage of resources for all seeds.
	GlobalUsage Quota `json:"globalUsage,omitempty"`
	// LocalUsage is holds the current usage of resources for the local seed.
	LocalUsage Quota `json:"localUsage,omitempty"`
}

swagger:model ResourceQuotaStatus

type RuleGroup added in v2.18.0

type RuleGroup struct {
	Name string `json:"name"`
	// IsDefault indicates whether the ruleGroup is default
	IsDefault bool `json:"isDefault,omitempty"`
	// contains the RuleGroup data. Ref: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group
	Data []byte `json:"data"`
	// the type of this ruleGroup applies to. It can be `Metrics`.
	Type kubermaticv1.RuleGroupType `json:"type"`
}

RuleGroup represents a rule group of recording and alerting rules. swagger:model RuleGroup

type S3BackupCredentials added in v2.18.0

type S3BackupCredentials struct {
	AccessKeyID     string `json:"accessKeyId,omitempty"`
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
}

S3BackupCredentials contains credentials for S3 etcd backups swagger:model S3BackupCredentials

type SeedSettings added in v2.18.0

type SeedSettings struct {
	// the Seed level MLA (Monitoring, Logging, and Alerting) stack settings
	MLA MLA `json:"mla"`
	// the Seed level metering settings
	Metering kubermaticv1.MeteringConfiguration `json:"metering"`
	// the Seed level seed dns overwrite
	SeedDNSOverwrite string `json:"seedDNSOverwrite,omitempty"`
}

SeedSettings represents settings for a Seed cluster swagger:model SeedSettings

type StorageClass added in v2.19.0

type StorageClass struct {
	Name string `json:"name"`
}

StorageClass represents a Kubernetes StorageClass swagger:model StorageClass

type StorageClassList added in v2.19.0

type StorageClassList []StorageClass

StorageClassList represents a list of Kubernetes StorageClass. swagger:model StorageClassList

type Sync

type Sync struct {
	// If non-empty, entries on this list will be replicated into OPA
	SyncOnly []GVK `json:"syncOnly,omitempty"`
}

type Trace

type Trace struct {
	// Only trace requests from the specified user
	User string `json:"user,omitempty"`
	// Only trace requests of the following GroupVersionKind
	Kind GVK `json:"kind,omitempty"`
	// Also dump the state of OPA with the trace. Set to `All` to dump everything.
	Dump string `json:"dump,omitempty"`
}

type Validation

type Validation struct {
	// List of requests to trace. Both "user" and "kinds" must be specified
	Traces []Trace `json:"traces,omitempty"`
}

type Violation

type Violation struct {
	EnforcementAction string `json:"enforcementAction,omitempty"`
	Kind              string `json:"kind,omitempty"`
	Message           string `json:"message,omitempty"`
	Name              string `json:"name,omitempty"`
	Namespace         string `json:"namespace,omitempty"`
}

Violation represents a gatekeeper constraint violation.

type VirtualMachineInstancePreset added in v2.19.0

type VirtualMachineInstancePreset struct {
	Name      string `json:"name,omitempty"`
	Namespace string `json:"namespace,omitempty"`
	// Spec contains the kubevirtv1.VirtualMachineInstancePreset.Spec object marshalled
	Spec string `json:"spec,omitempty"`
}

VirtualMachineInstancePreset represents a KubeVirt Virtual Machine Instance Preset swagger:model VirtualMachineInstancePreset

type VirtualMachineInstancePresetList added in v2.19.0

type VirtualMachineInstancePresetList []VirtualMachineInstancePreset

VirtualMachineInstancePresetList represents a list of VirtualMachineInstancePreset. swagger:model VirtualMachineInstancePresetList

type VpcConfigRequest added in v2.21.0

type VpcConfigRequest struct {
	// The VPC associated with your cluster.
	VpcId *string `json:"vpcId,omitempty"`

	// Specify one or more security groups for the cross-account elastic network
	// interfaces that Amazon EKS creates to use to allow communication between
	// your nodes and the Kubernetes control plane.
	// For more information, see Amazon EKS security group considerations (https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
	// in the Amazon EKS User Guide .
	SecurityGroupIds []*string `json:"securityGroupIds" required:"true"`

	// Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account
	// elastic network interfaces in these subnets to allow communication between
	// your nodes and the Kubernetes control plane.
	SubnetIds []*string `json:"subnetIds" required:"true"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL