@codingame/kubevirt-api
Version:
kubevirt OpenAPI automation for TypeScript
161 lines (160 loc) • 7.75 kB
TypeScript
/**
* KubeVirt API
* This is KubeVirt API an add-on for Kubernetes.
*
* The version of the OpenAPI document: 1.0.0
* Contact: kubevirt-dev@googlegroups.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { K8sIoApiCoreV1Affinity, K8sIoApiCoreV1PodDNSConfig, K8sIoApiCoreV1Toleration, K8sIoApiCoreV1TopologySpreadConstraint, V1AccessCredential, V1DomainSpec, V1Network, V1Probe, V1Volume } from './';
/**
* VirtualMachineInstanceSpec is a description of a VirtualMachineInstance.
* @export
* @interface V1VirtualMachineInstanceSpec
*/
export interface V1VirtualMachineInstanceSpec {
/**
* Specifies a set of public keys to inject into the vm guest
* @type {Array<V1AccessCredential>}
* @memberof V1VirtualMachineInstanceSpec
*/
accessCredentials?: Array<V1AccessCredential>;
/**
*
* @type {K8sIoApiCoreV1Affinity}
* @memberof V1VirtualMachineInstanceSpec
*/
affinity?: K8sIoApiCoreV1Affinity;
/**
* Specifies the architecture of the vm guest you are attempting to run. Defaults to the compiled architecture of the KubeVirt components
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
architecture?: string;
/**
*
* @type {K8sIoApiCoreV1PodDNSConfig}
* @memberof V1VirtualMachineInstanceSpec
*/
dnsConfig?: K8sIoApiCoreV1PodDNSConfig;
/**
* Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
*
* Possible enum values:
* - `"ClusterFirst"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.
* - `"ClusterFirstWithHostNet"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.
* - `"Default"` indicates that the pod should use the default (as determined by kubelet) DNS settings.
* - `"None"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
dnsPolicy?: V1VirtualMachineInstanceSpecDnsPolicyEnum;
/**
*
* @type {V1DomainSpec}
* @memberof V1VirtualMachineInstanceSpec
*/
domain: V1DomainSpec;
/**
* EvictionStrategy describes the strategy to follow when a node drain occurs. The possible options are: - "None": No action will be taken, according to the specified 'RunStrategy' the VirtualMachine will be restarted or shutdown. - "LiveMigrate": the VirtualMachineInstance will be migrated instead of being shutdown. - "LiveMigrateIfPossible": the same as "LiveMigrate" but only if the VirtualMachine is Live-Migratable, otherwise it will behave as "None". - "External": the VirtualMachineInstance will be protected by a PDB and `vmi.Status.EvacuationNodeName` will be set on eviction. This is mainly useful for cluster-api-provider-kubevirt (capk) which needs a way for VMI's to be blocked from eviction, yet signal capk that eviction has been called on the VMI so the capk controller can handle tearing the VMI down. Details can be found in the commit description https://github.com/kubevirt/kubevirt/commit/c1d77face705c8b126696bac9a3ee3825f27f1fa.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
evictionStrategy?: string;
/**
* Specifies the hostname of the vmi If not specified, the hostname will be set to the name of the vmi, if dhcp or cloud-init is configured properly.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
hostname?: string;
/**
*
* @type {V1Probe}
* @memberof V1VirtualMachineInstanceSpec
*/
livenessProbe?: V1Probe;
/**
* List of networks that can be attached to a vm's virtual interface.
* @type {Array<V1Network>}
* @memberof V1VirtualMachineInstanceSpec
*/
networks?: Array<V1Network>;
/**
* NodeSelector is a selector which must be true for the vmi to fit on a node. Selector which must match a node's labels for the vmi to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
* @type {{ [key: string]: string; }}
* @memberof V1VirtualMachineInstanceSpec
*/
nodeSelector?: {
[key: string]: string;
};
/**
* If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
priorityClassName?: string;
/**
*
* @type {V1Probe}
* @memberof V1VirtualMachineInstanceSpec
*/
readinessProbe?: V1Probe;
/**
* If specified, the VMI will be dispatched by specified scheduler. If not specified, the VMI will be dispatched by default scheduler.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
schedulerName?: string;
/**
* StartStrategy can be set to "Paused" if Virtual Machine should be started in paused state.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
startStrategy?: string;
/**
* If specified, the fully qualified vmi hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the vmi will not have a domainname at all. The DNS entry will resolve to the vmi, no matter if the vmi itself can pick up a hostname.
* @type {string}
* @memberof V1VirtualMachineInstanceSpec
*/
subdomain?: string;
/**
* Grace period observed after signalling a VirtualMachineInstance to stop after which the VirtualMachineInstance is force terminated.
* @type {number}
* @memberof V1VirtualMachineInstanceSpec
*/
terminationGracePeriodSeconds?: number;
/**
* If toleration is specified, obey all the toleration rules.
* @type {Array<K8sIoApiCoreV1Toleration>}
* @memberof V1VirtualMachineInstanceSpec
*/
tolerations?: Array<K8sIoApiCoreV1Toleration>;
/**
* TopologySpreadConstraints describes how a group of VMIs will be spread across a given topology domains. K8s scheduler will schedule VMI pods in a way which abides by the constraints.
* @type {Array<K8sIoApiCoreV1TopologySpreadConstraint>}
* @memberof V1VirtualMachineInstanceSpec
*/
topologySpreadConstraints?: Array<K8sIoApiCoreV1TopologySpreadConstraint>;
/**
* List of volumes that can be mounted by disks belonging to the vmi.
* @type {Array<V1Volume>}
* @memberof V1VirtualMachineInstanceSpec
*/
volumes?: Array<V1Volume>;
}
/**
* @export
* @enum {string}
*/
export declare enum V1VirtualMachineInstanceSpecDnsPolicyEnum {
ClusterFirst = "ClusterFirst",
ClusterFirstWithHostNet = "ClusterFirstWithHostNet",
Default = "Default",
None = "None"
}
export declare function V1VirtualMachineInstanceSpecFromJSON(json: any): V1VirtualMachineInstanceSpec;
export declare function V1VirtualMachineInstanceSpecFromJSONTyped(json: any, _ignoreDiscriminator: boolean): V1VirtualMachineInstanceSpec;
export declare function V1VirtualMachineInstanceSpecToJSON(value?: V1VirtualMachineInstanceSpec | null): any;