Repository navigation
Expand file tree
/
Copy pathnodePools.ts
More file actions
130 lines (121 loc) · 2.88 KB
/
Copy pathnodePools.ts
File metadata and controls
130 lines (121 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import { CreateNodePoolSchema, EditNodePoolSchema } from '@linode/validation';
import { API_ROOT, BETA_API_ROOT } from '../constants';
import Request, {
setData,
setMethod,
setParams,
setURL,
setXFilter,
} from '../request';
import type { Filter, ResourcePage as Page, Params } from '../types';
import type {
CreateNodePoolData,
KubeNodePoolResponse,
UpdateNodePoolData,
} from './types';
/**
* getNodePools
*
* Gets a list of all node pools associated with the specified cluster
*/
export const getNodePools = (
clusterID: number,
params?: Params,
filters?: Filter,
) =>
Request<Page<KubeNodePoolResponse>>(
setMethod('GET'),
setParams(params),
setXFilter(filters),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`,
),
);
/**
* getNodePool
*
* Returns a single node pool
*/
export const getNodePool = (clusterID: number, nodePoolID: number) =>
Request<KubeNodePoolResponse>(
setMethod('GET'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}`,
),
);
/**
* createNodePool
*
* Adds a node pool to the specified cluster.
*/
export const createNodePool = (clusterID: number, data: CreateNodePoolData) =>
Request<KubeNodePoolResponse>(
setMethod('POST'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(clusterID)}/pools`,
),
setData(data, CreateNodePoolSchema),
);
/**
* updateNodePool
*
* Change the type or count of a node pool
*/
export const updateNodePool = (
clusterID: number,
nodePoolID: number,
data: Partial<UpdateNodePoolData>,
) =>
Request<KubeNodePoolResponse>(
setMethod('PUT'),
setURL(
`${BETA_API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}`,
),
setData(data, EditNodePoolSchema),
);
/**
* deleteNodePool
*
* Delete a single node pool from the specified Cluster.
*/
export const deleteNodePool = (clusterID: number, nodePoolID: number) =>
Request<{}>(
setMethod('DELETE'),
setURL(
`${API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}`,
),
);
/**
* recycleAllNodes
*
* Recycles all nodes from the specified Node Pool.
*/
export const recycleAllNodes = (clusterID: number, nodePoolID: number) =>
Request<{}>(
setMethod('POST'),
setURL(
`${API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/pools/${encodeURIComponent(nodePoolID)}/recycle`,
),
);
/**
* recycleNode
*
* Recycles a single node by id.
*/
export const recycleNode = (clusterID: number, nodeID: string) =>
Request<{}>(
setMethod('POST'),
setURL(
`${API_ROOT}/lke/clusters/${encodeURIComponent(
clusterID,
)}/nodes/${encodeURIComponent(nodeID)}/recycle`,
),
);