portainer/app/kubernetes/node/models.js

75 lines
1.4 KiB
JavaScript

export const KubernetesPortainerNodeDrainLabel = 'io.portainer/node-status-drain';
/**
* KubernetesNode Model
*/
const _KubernetesNode = Object.freeze({
Id: '',
Name: '',
Labels: {},
Role: '',
Status: '',
CPU: 0,
Memory: '',
Version: '',
IPAddress: '',
Api: false,
Taints: [],
Port: 0,
Availability: '',
});
export class KubernetesNode {
constructor() {
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNode)));
}
}
/**
* KubernetesNodeDetails Model
*/
const _KubernetesNodeDetails = Object.freeze({
CreationDate: '',
OS: {
Architecture: '',
Platform: '',
Image: '',
},
Conditions: [],
Yaml: '',
});
export class KubernetesNodeDetails {
constructor() {
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNode)));
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeDetails)));
}
}
/**
* KubernetesNodeTaint Model
*/
const _KubernetesNodeTaint = Object.freeze({
Key: '',
Value: '',
Effect: '',
});
export class KubernetesNodeTaint {
constructor() {
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesNodeTaint)));
}
}
export const KubernetesNodeAvailabilities = Object.freeze({
ACTIVE: 'Active',
PAUSE: 'Pause',
DRAIN: 'Drain',
});
export const KubernetesNodeTaintEffects = Object.freeze({
NOSCHEDULE: 'NoSchedule',
PREFERNOSCHEDULE: 'PreferNoSchedule',
NOEXECUTE: 'NoExecute',
});