@linode/api-v4
Version:
JavaScript wrapper around the Linode APIv4
100 lines • 2.61 kB
TypeScript
import type { EncryptionStatus } from '../linodes';
export type KubernetesTier = 'standard' | 'enterprise';
export type KubernetesTaintEffect = 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
export type Label = {
[key: string]: string;
};
export interface Taint {
effect: KubernetesTaintEffect;
key: string;
value: string | undefined;
}
export interface KubernetesCluster {
created: string;
updated: string;
region: string;
status: string;
label: string;
k8s_version: string;
id: number;
tags: string[];
control_plane: ControlPlaneOptions;
apl_enabled?: boolean;
/** Marked as 'optional' in this existing interface to prevent duplicated code for beta functionality, in line with the apl_enabled approach.
* @todo LKE-E - Make this field required once LKE-E is in GA. tier defaults to 'standard' in the API.
*/
tier?: KubernetesTier;
}
export interface KubeNodePoolResponse {
count: number;
id: number;
labels: Label;
nodes: PoolNodeResponse[];
tags: string[];
taints: Taint[];
type: string;
autoscaler: AutoscaleSettings;
disk_encryption?: EncryptionStatus;
}
export interface PoolNodeResponse {
id: string;
instance_id: number | null;
status: string;
}
export interface CreateNodePoolData {
type: string;
count: number;
}
export interface UpdateNodePoolData {
autoscaler: AutoscaleSettings;
count: number;
tags: string[];
labels: Label;
taints: Taint[];
}
export interface AutoscaleSettings {
enabled: boolean;
min: number;
max: number;
}
export interface KubeConfigResponse {
kubeconfig: string;
}
export interface KubernetesVersion {
id: string;
}
export interface KubernetesTieredVersion {
id: string;
tier: KubernetesTier;
}
export interface KubernetesEndpointResponse {
endpoint: string;
}
export interface KubernetesDashboardResponse {
url: string;
}
export interface KubernetesControlPlaneACLPayload {
acl: ControlPlaneACLOptions;
}
export interface ControlPlaneACLOptions {
enabled?: boolean;
'revision-id'?: string;
addresses?: null | {
ipv4?: null | string[];
ipv6?: null | string[];
};
}
export interface ControlPlaneOptions {
high_availability?: boolean;
acl?: ControlPlaneACLOptions;
}
export interface CreateKubeClusterPayload {
label?: string;
region?: string;
node_pools: CreateNodePoolData[];
k8s_version?: string;
control_plane?: ControlPlaneOptions;
apl_enabled?: boolean;
tier?: KubernetesTier;
}
//# sourceMappingURL=types.d.ts.map