@ask-ell/k8s 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.spec.swcrc ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "jsc": {
3
+ "target": "es2017",
4
+ "parser": {
5
+ "syntax": "typescript",
6
+ "decorators": true,
7
+ "dynamicImport": true
8
+ },
9
+ "transform": {
10
+ "decoratorMetadata": true,
11
+ "legacyDecorator": true
12
+ },
13
+ "keepClassNames": true,
14
+ "externalHelpers": true,
15
+ "loose": true
16
+ },
17
+ "module": {
18
+ "type": "es6"
19
+ },
20
+ "sourceMaps": true,
21
+ "exclude": []
22
+ }
@@ -0,0 +1 @@
1
+ {"version":"5.9.3"}
@@ -0,0 +1,22 @@
1
+ import baseConfig from '../../eslint.config.mjs';
2
+
3
+ export default [
4
+ ...baseConfig,
5
+ {
6
+ files: ['**/*.json'],
7
+ rules: {
8
+ '@nx/dependency-checks': [
9
+ 'error',
10
+ {
11
+ ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}'],
12
+ },
13
+ ],
14
+ },
15
+ languageOptions: {
16
+ parser: await import('jsonc-eslint-parser'),
17
+ },
18
+ },
19
+ {
20
+ ignores: ['**/out-tsc'],
21
+ },
22
+ ];
package/jest.config.ts ADDED
@@ -0,0 +1,21 @@
1
+ /* eslint-disable */
2
+ import { readFileSync } from 'fs';
3
+
4
+ // Reading the SWC compilation config for the spec files
5
+ const swcJestConfig = JSON.parse(
6
+ readFileSync(`${__dirname}/.spec.swcrc`, 'utf-8')
7
+ );
8
+
9
+ // Disable .swcrc look-up by SWC core because we're passing in swcJestConfig ourselves
10
+ swcJestConfig.swcrc = false;
11
+
12
+ export default {
13
+ displayName: '@ask-ell/k8s',
14
+ preset: '../../jest.preset.js',
15
+ testEnvironment: 'node',
16
+ transform: {
17
+ '^.+\\.[tj]s$': ['@swc/jest', swcJestConfig],
18
+ },
19
+ moduleFileExtensions: ['ts', 'js', 'html'],
20
+ coverageDirectory: 'test-output/jest/coverage',
21
+ };
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ask-ell/k8s",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
7
7
  "types": "./src/index.d.ts",
8
8
  "dependencies": {
9
- "@ask-ell/core": "^1.3.2",
10
- "@kubernetes/client-node": "^0.21.0",
11
- "tslib": "^2.8.1"
9
+ "@ask-ell/core": "*",
10
+ "@kubernetes/client-node": "*",
11
+ "tslib": "*"
12
12
  }
13
13
  }
package/project.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "k8s",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "packages/k8s/src",
5
+ "projectType": "library",
6
+ "tags": [],
7
+ "targets": {
8
+ "build": {
9
+ "executor": "@nx/js:tsc",
10
+ "dependsOn": ["^build"],
11
+ "outputs": [
12
+ "{options.outputPath}"
13
+ ],
14
+ "options": {
15
+ "outputPath": "dist/packages/k8s",
16
+ "main": "packages/k8s/src/index.ts",
17
+ "tsConfig": "packages/k8s/tsconfig.lib.json",
18
+ "assets": [
19
+ "packages/k8s/*.md"
20
+ ]
21
+ }
22
+ },
23
+ "test": {
24
+ "options": {
25
+ "passWithNoTests": true
26
+ }
27
+ }
28
+ }
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './k8s.cluster';
2
+ export * from './k8s.cluster.interface'
3
+ export * from './types'
@@ -1,4 +1,5 @@
1
1
  import { PersistClusterCustomObjectDTO, K8SSecret, K8SService, K8SCustomResource, DeleteClusterCustomObjectDTO, K8SCustomResourceDefinition, K8SNamespace, CreateDeploymentDTO, CreateServiceDTO, DeleteComponentDTO, K8SDeployment, K8SServiceAccount, CreateServiceAccountDTO, CreateServiceAccountTokenDTO, GetRolesDTO, K8SRole, CreateRoleDTO, K8SRoleBinding, GetRoleBindingsDTO, CreateRoleBindingDTO } from "./types";
2
+
2
3
  export interface IK8SCluster {
3
4
  getAllNamespaces(): Promise<K8SNamespace[]>;
4
5
  isNamespacePersisted(name: string): Promise<boolean>;
@@ -24,5 +25,4 @@ export interface IK8SCluster {
24
25
  createClusterCustomObject<CustomResource extends K8SCustomResource>(dto: PersistClusterCustomObjectDTO<CustomResource>): Promise<void>;
25
26
  patchClusterCustomObject<CustomResource extends K8SCustomResource>(dto: PersistClusterCustomObjectDTO<CustomResource>): Promise<void>;
26
27
  deleteClusterCustomObject<CustomResource extends K8SCustomResource>(dto: DeleteClusterCustomObjectDTO<CustomResource>): Promise<void>;
27
- }
28
- //# sourceMappingURL=k8s.cluster.interface.d.ts.map
28
+ }
@@ -0,0 +1,256 @@
1
+ import { ILogger } from "@ask-ell/core";
2
+ import { ApiextensionsV1Api, AppsV1Api, CoreV1Api, CustomObjectsApi, KubeConfig, RbacAuthorizationV1Api } from "@kubernetes/client-node";
3
+
4
+ import { K8SClusterParams, PersistClusterCustomObjectDTO, K8SSecret, K8SService, K8SCustomResource, DeleteClusterCustomObjectDTO, K8SCustomResourceDefinition, K8SNamespace, CreateDeploymentDTO, CreateServiceDTO, DeleteComponentDTO, K8SDeployment, K8SServiceAccount, CreateServiceAccountDTO, CreateServiceAccountTokenDTO, GetRolesDTO, K8SRole, CreateRoleDTO, K8SRoleBinding, GetRoleBindingsDTO, CreateRoleBindingDTO } from "./types";
5
+ import { getK8SConfig } from "./k8s.config";
6
+ import { IK8SCluster } from "./k8s.cluster.interface";
7
+ import { getItems, getVersionName } from "./utils";
8
+ import { MERGE_PATCH_MIDDLEWARE } from "./middlewares/merge-patch.middleware";
9
+
10
+
11
+ export class K8SCluster implements IK8SCluster {
12
+ private logger: ILogger;
13
+ private coreV1Api: CoreV1Api;
14
+ private appsV1Api: AppsV1Api;
15
+ private customObjectsApi: CustomObjectsApi;
16
+ private apiextensionsV1Api: ApiextensionsV1Api;
17
+ private rbacAuthorizationV1Api: RbacAuthorizationV1Api;
18
+
19
+ constructor({
20
+ configFilePath,
21
+ logger
22
+ }: K8SClusterParams) {
23
+ this.logger = logger;
24
+ const config: KubeConfig = getK8SConfig(configFilePath);
25
+ this.coreV1Api = config.makeApiClient(CoreV1Api);
26
+ this.appsV1Api = config.makeApiClient(AppsV1Api);
27
+ this.customObjectsApi = config.makeApiClient(CustomObjectsApi);
28
+ this.apiextensionsV1Api = config.makeApiClient(ApiextensionsV1Api);
29
+ this.rbacAuthorizationV1Api = config.makeApiClient(RbacAuthorizationV1Api);
30
+ }
31
+
32
+ getAllNamespaces(): Promise<K8SNamespace[]> {
33
+ return getItems(this.coreV1Api.listNamespace());
34
+ }
35
+
36
+ async isNamespacePersisted(name: string): Promise<boolean> {
37
+ const allNamespaces: K8SNamespace[] = await this.getAllNamespaces();
38
+ return allNamespaces.some((namespace: K8SNamespace): boolean => namespace.metadata?.name === name);
39
+ }
40
+
41
+ async createNamespace(name: string): Promise<void> {
42
+ await this.coreV1Api.createNamespace({
43
+ body: {
44
+ apiVersion: 'v1',
45
+ kind: 'Namespace',
46
+ metadata: {
47
+ name
48
+ }
49
+ }
50
+ });
51
+ }
52
+
53
+ async deleteNamespace(namespace: string): Promise<void> {
54
+ await this.coreV1Api.deleteNamespace({ name: namespace });
55
+ }
56
+
57
+ getDeploymentsFromNamespace(namespace: string): Promise<K8SDeployment[]> {
58
+ return getItems(this.appsV1Api.listNamespacedDeployment({ namespace }));
59
+ }
60
+
61
+ async createDeployment({ namespace, dto }: CreateDeploymentDTO): Promise<void> {
62
+ await this.appsV1Api.createNamespacedDeployment({ namespace, body: dto });
63
+ }
64
+
65
+ async deleteDeployment({ name, namespace }: DeleteComponentDTO): Promise<void> {
66
+ await this.appsV1Api.deleteNamespacedDeployment({ name, namespace })
67
+ }
68
+
69
+ getServicesFromNamespace(namespace: string): Promise<K8SService[]> {
70
+ return getItems(this.coreV1Api.listNamespacedService({ namespace }));
71
+ }
72
+
73
+ async getServiceAccountsFromNamespace(namespace: string): Promise<K8SServiceAccount[]> {
74
+ return getItems(this.coreV1Api.listNamespacedServiceAccount({ namespace }));
75
+ }
76
+
77
+ async createServiceAccount({ name, namespace }: CreateServiceAccountDTO): Promise<void> {
78
+ await this.coreV1Api.createNamespacedServiceAccount({
79
+ namespace,
80
+ body: {
81
+ apiVersion: 'v1',
82
+ kind: 'ServiceAccount',
83
+ metadata: {
84
+ name,
85
+ namespace
86
+ }
87
+ }
88
+ });
89
+ }
90
+
91
+ async createServiceAccountToken({ namespace, name }: CreateServiceAccountTokenDTO): Promise<void> {
92
+ await this.coreV1Api.createNamespacedSecret({
93
+ namespace,
94
+ body: {
95
+ apiVersion: 'v1',
96
+ kind: 'Secret',
97
+ metadata: {
98
+ annotations: {
99
+ 'kubernetes.io/service-account.name': namespace
100
+ },
101
+ name,
102
+ namespace
103
+ },
104
+ type: 'kubernetes.io/service-account-token'
105
+ }
106
+ });
107
+ }
108
+
109
+ async createService({ namespace, dto }: CreateServiceDTO): Promise<void> {
110
+ await this.coreV1Api.createNamespacedService({ namespace, body: dto });
111
+ }
112
+
113
+ async deleteService({ name, namespace }: DeleteComponentDTO): Promise<void> {
114
+ await this.coreV1Api.deleteNamespacedService({ name, namespace });
115
+ }
116
+
117
+ getSecretsFromNamespace(namespace: string): Promise<K8SSecret[]> {
118
+ return getItems(this.coreV1Api.listNamespacedSecret({ namespace }));
119
+ }
120
+
121
+ async getRoles({ namespace }: GetRolesDTO): Promise<K8SRole[]> {
122
+ return getItems(this.rbacAuthorizationV1Api.listNamespacedRole({ namespace }));
123
+ }
124
+
125
+ async createRole({ metadata: { name, namespace }, rules }: CreateRoleDTO): Promise<void> {
126
+ await this.rbacAuthorizationV1Api.createNamespacedRole({
127
+ namespace,
128
+ body: {
129
+ apiVersion: 'rbac.authorization.k8s.io/v1',
130
+ kind: 'Role',
131
+ metadata: {
132
+ name,
133
+ namespace
134
+ },
135
+ rules
136
+ }
137
+ });
138
+ }
139
+
140
+ async getRoleBindings({ namespace }: GetRoleBindingsDTO): Promise<K8SRoleBinding[]> {
141
+ return getItems(this.rbacAuthorizationV1Api.listNamespacedRoleBinding({ namespace }));
142
+ }
143
+
144
+ async createRoleBinding({ name, namespace, subjects }: CreateRoleBindingDTO): Promise<void> {
145
+ await this.rbacAuthorizationV1Api.createNamespacedRoleBinding({
146
+ namespace,
147
+ body: {
148
+ apiVersion: 'rbac.authorization.k8s.io/v1',
149
+ kind: 'RoleBinding',
150
+ metadata: {
151
+ name,
152
+ namespace
153
+ },
154
+ roleRef: {
155
+ apiGroup: 'rbac.authorization.k8s.io',
156
+ kind: 'Role',
157
+ name
158
+ },
159
+ subjects
160
+ }
161
+ });
162
+ }
163
+
164
+ async getAllCustomResourceDefinitions(): Promise<K8SCustomResourceDefinition[]> {
165
+ return getItems(this.apiextensionsV1Api.listCustomResourceDefinition());
166
+ }
167
+
168
+ async createCustomResourceDefinition(body: K8SCustomResourceDefinition): Promise<void> {
169
+ await this.apiextensionsV1Api.createCustomResourceDefinition({ body }).catch(this.logger.error);
170
+ }
171
+
172
+ async getAllClusterCustomObjectsFromResourceDefinition<CustomResource extends K8SCustomResource>({
173
+ spec: { group, names: { plural }, versions }
174
+ }: K8SCustomResourceDefinition): Promise<CustomResource[]> {
175
+ const versionName: string = getVersionName(versions[0]);
176
+ const result: any = await this.customObjectsApi.listClusterCustomObject({
177
+ group,
178
+ plural,
179
+ version: versionName,
180
+ });
181
+ return result['items'];
182
+ }
183
+
184
+ async createClusterCustomObject<CustomResource extends K8SCustomResource>({
185
+ resourceDefinition: {
186
+ spec: {
187
+ group,
188
+ versions,
189
+ names: {
190
+ plural,
191
+ kind
192
+ }
193
+ }
194
+ },
195
+ metadata,
196
+ spec
197
+ }: PersistClusterCustomObjectDTO<CustomResource>): Promise<void> {
198
+ const versionName: string = getVersionName(versions[0]);
199
+ const apiVersion = `${group}/${versionName}`;
200
+
201
+ await this.customObjectsApi.createClusterCustomObject({
202
+ group,
203
+ plural,
204
+ version: versionName,
205
+ body: {
206
+ apiVersion,
207
+ kind,
208
+ metadata,
209
+ spec
210
+ }
211
+ });
212
+ }
213
+
214
+ async patchClusterCustomObject<CustomResource extends K8SCustomResource>({
215
+ resourceDefinition: {
216
+ spec: {
217
+ group,
218
+ versions,
219
+ names: {
220
+ plural,
221
+ kind
222
+ }
223
+ }
224
+ },
225
+ metadata,
226
+ spec
227
+ }: PersistClusterCustomObjectDTO<CustomResource>): Promise<void> {
228
+ const versionName: string = getVersionName(versions[0]);
229
+ const apiVersion = `${group}/${versionName}`;
230
+
231
+ await this.customObjectsApi.patchClusterCustomObject({
232
+ name: metadata.name,
233
+ group,
234
+ plural,
235
+ version: versionName,
236
+ body: {
237
+ apiVersion,
238
+ kind,
239
+ metadata,
240
+ spec
241
+ }
242
+ }, {
243
+ middleware: [MERGE_PATCH_MIDDLEWARE],
244
+ middlewareMergeStrategy: 'append'
245
+ });
246
+ }
247
+
248
+ async deleteClusterCustomObject<CustomResource extends K8SCustomResource>({ resourceDefinition, metadata }: DeleteClusterCustomObjectDTO<CustomResource>): Promise<void> {
249
+ await this.customObjectsApi.deleteClusterCustomObject({
250
+ group: resourceDefinition.spec.group,
251
+ version: resourceDefinition.spec.versions[0].name,
252
+ plural: resourceDefinition.spec.names.plural,
253
+ name: metadata.name
254
+ });
255
+ }
256
+ }
@@ -0,0 +1,13 @@
1
+ import { KubeConfig } from "@kubernetes/client-node";
2
+ import { MaybeUndefined } from "@ask-ell/core";
3
+
4
+
5
+ export function getK8SConfig(configFilePath: MaybeUndefined<string>): KubeConfig {
6
+ const config: KubeConfig = new KubeConfig();
7
+ if (configFilePath) {
8
+ config.loadFromFile(configFilePath);
9
+ } else {
10
+ config.loadFromDefault()
11
+ }
12
+ return config;
13
+ }
@@ -0,0 +1,10 @@
1
+ import { Observable, ObservableMiddleware, RequestContext, ResponseContext } from "@kubernetes/client-node";
2
+
3
+
4
+ export const MERGE_PATCH_MIDDLEWARE: ObservableMiddleware = {
5
+ pre: (context: RequestContext): Observable<RequestContext> => {
6
+ context.setHeaderParam('Content-Type', 'application/merge-patch+json');
7
+ return new Observable(Promise.resolve(context));
8
+ },
9
+ post: (context: ResponseContext): Observable<ResponseContext> => new Observable(Promise.resolve(context))
10
+ };
@@ -1,43 +1,58 @@
1
1
  import { ILogger, MaybeUndefined } from "@ask-ell/core";
2
2
  import { RbacV1Subject, V1CustomResourceDefinition, V1Deployment, V1Namespace, V1PolicyRule, V1Role, V1RoleBinding, V1Secret, V1Service, V1ServiceAccount, V1ServicePort } from "@kubernetes/client-node";
3
+
3
4
  export type K8SClusterParams = {
4
5
  configFilePath: MaybeUndefined<string>;
5
6
  logger: ILogger;
6
7
  };
8
+
7
9
  export type ComponentsFetchingResponse<Item> = {
8
- body: {
9
- items: Item[];
10
- };
10
+ items: Item[];
11
11
  };
12
+
12
13
  type CreateComponentDTOWrapper<DTO> = {
13
14
  namespace: string;
14
15
  dto: DTO;
15
16
  };
17
+
16
18
  export type DeleteComponentDTO = {
17
19
  namespace: string;
18
20
  name: string;
19
21
  };
22
+
20
23
  export type K8SNamespace = V1Namespace;
24
+
21
25
  export type K8SDeployment = V1Deployment;
26
+
22
27
  export type CreateDeploymentDTO = CreateComponentDTOWrapper<K8SDeployment>;
28
+
23
29
  export type K8SService = V1Service;
30
+
24
31
  export type CreateServiceDTO = CreateComponentDTOWrapper<K8SService>;
32
+
25
33
  export type K8SServicePort = V1ServicePort;
34
+
26
35
  export type K8SServiceAccount = V1ServiceAccount;
36
+
27
37
  export type CreateServiceAccountDTO = {
28
38
  name: string;
29
39
  namespace: string;
30
40
  };
41
+
31
42
  export type CreateServiceAccountTokenDTO = {
32
43
  name: string;
33
44
  namespace: string;
34
45
  };
46
+
35
47
  export type K8SSecret = V1Secret;
48
+
36
49
  export type K8SRole = V1Role;
50
+
37
51
  export type GetRolesDTO = {
38
52
  name: string;
39
53
  namespace: string;
40
54
  };
55
+
41
56
  export type CreateRoleDTO = {
42
57
  metadata: {
43
58
  name: string;
@@ -45,30 +60,35 @@ export type CreateRoleDTO = {
45
60
  };
46
61
  rules: V1PolicyRule[];
47
62
  };
63
+
48
64
  export type K8SRoleBinding = V1RoleBinding;
65
+
49
66
  export type GetRoleBindingsDTO = {
50
67
  name: string;
51
68
  namespace: string;
52
69
  };
70
+
53
71
  export type CreateRoleBindingDTO = {
54
72
  name: string;
55
73
  namespace: string;
56
74
  subjects: RbacV1Subject[];
57
- };
75
+ }
76
+
58
77
  export type K8SCustomResourceDefinition = V1CustomResourceDefinition;
78
+
59
79
  export type K8SCustomResource<Spec = any> = {
60
80
  apiVersion: string;
61
81
  kind: string;
62
82
  metadata: {
63
83
  name: string;
64
- };
84
+ },
65
85
  spec: Spec;
66
86
  };
87
+
67
88
  export type PersistClusterCustomObjectDTO<CustomResource extends K8SCustomResource> = {
68
89
  resourceDefinition: K8SCustomResourceDefinition;
69
90
  metadata: CustomResource['metadata'];
70
91
  spec: CustomResource['spec'];
71
92
  };
72
- export type DeleteClusterCustomObjectDTO<CustomResource extends K8SCustomResource> = Omit<PersistClusterCustomObjectDTO<CustomResource>, 'spec'>;
73
- export {};
74
- //# sourceMappingURL=types.d.ts.map
93
+
94
+ export type DeleteClusterCustomObjectDTO<CustomResource extends K8SCustomResource> = Omit<PersistClusterCustomObjectDTO<CustomResource>, 'spec'>;
package/src/utils.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { MaybeUndefined } from "@ask-ell/core";
2
+ import { V1CustomResourceDefinitionVersion } from "@kubernetes/client-node";
3
+
4
+ import { ComponentsFetchingResponse } from "./types";
5
+
6
+
7
+ export async function getItems<T>(itemsFactory: Promise<ComponentsFetchingResponse<T>>): Promise<T[]> {
8
+ const { items } = await itemsFactory;
9
+ return items;
10
+ }
11
+
12
+ export function getVersionName(version: V1CustomResourceDefinitionVersion): string {
13
+ const versionName: MaybeUndefined<string> = version?.name;
14
+ if(!versionName){
15
+ throw new Error('No version specified');
16
+ }
17
+ return versionName;
18
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "./tsconfig.lib.json"
8
+ },
9
+ {
10
+ "path": "./tsconfig.spec.json"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "rootDir": "src",
6
+ "outDir": "dist",
7
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
8
+ "emitDeclarationOnly": false,
9
+ "module": "nodenext",
10
+ "moduleResolution": "nodenext",
11
+ "forceConsistentCasingInFileNames": true,
12
+ "types": ["node"]
13
+ },
14
+ "include": ["src/**/*.ts"],
15
+ "references": [],
16
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
17
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./out-tsc/jest",
5
+ "types": ["jest", "node"],
6
+ "module": "nodenext",
7
+ "moduleResolution": "nodenext",
8
+ "forceConsistentCasingInFileNames": true
9
+ },
10
+ "include": [
11
+ "jest.config.ts",
12
+ "src/**/*.test.ts",
13
+ "src/**/*.spec.ts",
14
+ "src/**/*.d.ts"
15
+ ],
16
+ "references": [
17
+ {
18
+ "path": "./tsconfig.lib.json"
19
+ }
20
+ ]
21
+ }
package/src/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './k8s.cluster';
2
- export * from './k8s.cluster.interface';
3
- export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAA;AACvC,cAAc,SAAS,CAAA"}
package/src/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./k8s.cluster"), exports);
5
- tslib_1.__exportStar(require("./k8s.cluster.interface"), exports);
6
- tslib_1.__exportStar(require("./types"), exports);
@@ -1,36 +0,0 @@
1
- import { K8SClusterParams, PersistClusterCustomObjectDTO, K8SSecret, K8SService, K8SCustomResource, DeleteClusterCustomObjectDTO, K8SCustomResourceDefinition, K8SNamespace, CreateDeploymentDTO, CreateServiceDTO, DeleteComponentDTO, K8SDeployment, K8SServiceAccount, CreateServiceAccountDTO, CreateServiceAccountTokenDTO, GetRolesDTO, K8SRole, CreateRoleDTO, K8SRoleBinding, GetRoleBindingsDTO, CreateRoleBindingDTO } from "./types";
2
- import { IK8SCluster } from "./k8s.cluster.interface";
3
- export declare class K8SCluster implements IK8SCluster {
4
- private logger;
5
- private coreV1Api;
6
- private appsV1Api;
7
- private customObjectsApi;
8
- private apiextensionsV1Api;
9
- private rbacAuthorizationV1Api;
10
- constructor({ configFilePath, logger }: K8SClusterParams);
11
- getAllNamespaces(): Promise<K8SNamespace[]>;
12
- isNamespacePersisted(name: string): Promise<boolean>;
13
- createNamespace(name: string): Promise<void>;
14
- deleteNamespace(namespace: string): Promise<void>;
15
- getDeploymentsFromNamespace(namespace: string): Promise<K8SDeployment[]>;
16
- createDeployment({ namespace, dto }: CreateDeploymentDTO): Promise<void>;
17
- deleteDeployment({ name, namespace }: DeleteComponentDTO): Promise<void>;
18
- getServicesFromNamespace(namespace: string): Promise<K8SService[]>;
19
- getServiceAccountsFromNamespace(namespace: string): Promise<K8SServiceAccount[]>;
20
- createServiceAccount({ name, namespace }: CreateServiceAccountDTO): Promise<void>;
21
- createServiceAccountToken({ namespace, name }: CreateServiceAccountTokenDTO): Promise<void>;
22
- createService({ namespace, dto }: CreateServiceDTO): Promise<void>;
23
- deleteService({ name, namespace }: DeleteComponentDTO): Promise<void>;
24
- getSecretsFromNamespace(namespace: string): Promise<K8SSecret[]>;
25
- getRoles({ name, namespace }: GetRolesDTO): Promise<K8SRole[]>;
26
- createRole({ metadata: { name, namespace }, rules }: CreateRoleDTO): Promise<void>;
27
- getRoleBindings({ name, namespace }: GetRoleBindingsDTO): Promise<K8SRoleBinding[]>;
28
- createRoleBinding({ name, namespace, subjects }: CreateRoleBindingDTO): Promise<void>;
29
- getAllCustomResourceDefinitions(): Promise<K8SCustomResourceDefinition[]>;
30
- createCustomResourceDefinition(dto: K8SCustomResourceDefinition): Promise<void>;
31
- getAllClusterCustomObjectsFromResourceDefinition<CustomResource extends K8SCustomResource>(dto: K8SCustomResourceDefinition): Promise<CustomResource[]>;
32
- createClusterCustomObject<CustomResource extends K8SCustomResource>({ resourceDefinition, metadata, spec }: PersistClusterCustomObjectDTO<CustomResource>): Promise<void>;
33
- patchClusterCustomObject<CustomResource extends K8SCustomResource>({ resourceDefinition, metadata, spec }: PersistClusterCustomObjectDTO<CustomResource>): Promise<void>;
34
- deleteClusterCustomObject<CustomResource extends K8SCustomResource>({ resourceDefinition, metadata }: DeleteClusterCustomObjectDTO<CustomResource>): Promise<void>;
35
- }
36
- //# sourceMappingURL=k8s.cluster.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"k8s.cluster.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/k8s.cluster.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"k8s.cluster.interface.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/k8s.cluster.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE9Z,MAAM,WAAW,WAAW;IACxB,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzE,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACjF,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,yBAAyB,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACpE,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,+BAA+B,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAC1E,8BAA8B,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,gDAAgD,CAAC,cAAc,SAAS,iBAAiB,EAAE,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACxJ,yBAAyB,CAAC,cAAc,SAAS,iBAAiB,EAAE,GAAG,EAAE,6BAA6B,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvI,wBAAwB,CAAC,cAAc,SAAS,iBAAiB,EAAE,GAAG,EAAE,6BAA6B,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtI,yBAAyB,CAAC,cAAc,SAAS,iBAAiB,EAAE,GAAG,EAAE,4BAA4B,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzI"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,157 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.K8SCluster = void 0;
4
- const client_node_1 = require("@kubernetes/client-node");
5
- const k8s_config_1 = require("./k8s.config");
6
- const utils_1 = require("./utils");
7
- class K8SCluster {
8
- logger;
9
- coreV1Api;
10
- appsV1Api;
11
- customObjectsApi;
12
- apiextensionsV1Api;
13
- rbacAuthorizationV1Api;
14
- constructor({ configFilePath, logger }) {
15
- this.logger = logger;
16
- const config = (0, k8s_config_1.getK8SConfig)(configFilePath);
17
- this.coreV1Api = config.makeApiClient(client_node_1.CoreV1Api);
18
- this.appsV1Api = config.makeApiClient(client_node_1.AppsV1Api);
19
- this.customObjectsApi = config.makeApiClient(client_node_1.CustomObjectsApi);
20
- this.apiextensionsV1Api = config.makeApiClient(client_node_1.ApiextensionsV1Api);
21
- this.rbacAuthorizationV1Api = config.makeApiClient(client_node_1.RbacAuthorizationV1Api);
22
- }
23
- getAllNamespaces() {
24
- return (0, utils_1.getItems)(this.coreV1Api.listNamespace());
25
- }
26
- async isNamespacePersisted(name) {
27
- const allNamespaces = await this.getAllNamespaces();
28
- return allNamespaces.some((namespace) => namespace.metadata?.name === name);
29
- }
30
- async createNamespace(name) {
31
- await this.coreV1Api.createNamespace({
32
- apiVersion: 'v1',
33
- kind: 'Namespace',
34
- metadata: {
35
- name
36
- }
37
- });
38
- }
39
- async deleteNamespace(namespace) {
40
- await this.coreV1Api.deleteNamespace(namespace);
41
- }
42
- getDeploymentsFromNamespace(namespace) {
43
- return (0, utils_1.getItems)(this.appsV1Api.listNamespacedDeployment(namespace));
44
- }
45
- async createDeployment({ namespace, dto }) {
46
- await this.appsV1Api.createNamespacedDeployment(namespace, dto);
47
- }
48
- async deleteDeployment({ name, namespace }) {
49
- await this.appsV1Api.deleteNamespacedDeployment(name, namespace);
50
- }
51
- getServicesFromNamespace(namespace) {
52
- return (0, utils_1.getItems)(this.coreV1Api.listNamespacedService(namespace));
53
- }
54
- async getServiceAccountsFromNamespace(namespace) {
55
- return (0, utils_1.getItems)(this.coreV1Api.listNamespacedServiceAccount(namespace));
56
- }
57
- async createServiceAccount({ name, namespace }) {
58
- await this.coreV1Api.createNamespacedServiceAccount(namespace, {
59
- apiVersion: 'v1',
60
- kind: 'ServiceAccount',
61
- metadata: {
62
- name,
63
- namespace
64
- }
65
- });
66
- }
67
- async createServiceAccountToken({ namespace, name }) {
68
- await this.coreV1Api.createNamespacedSecret(namespace, {
69
- apiVersion: 'v1',
70
- kind: 'Secret',
71
- metadata: {
72
- annotations: {
73
- 'kubernetes.io/service-account.name': namespace
74
- },
75
- name,
76
- namespace
77
- },
78
- type: 'kubernetes.io/service-account-token'
79
- });
80
- }
81
- async createService({ namespace, dto }) {
82
- await this.coreV1Api.createNamespacedService(namespace, dto);
83
- }
84
- async deleteService({ name, namespace }) {
85
- await this.coreV1Api.deleteNamespacedService(name, namespace);
86
- }
87
- getSecretsFromNamespace(namespace) {
88
- return (0, utils_1.getItems)(this.coreV1Api.listNamespacedSecret(namespace));
89
- }
90
- async getRoles({ name, namespace }) {
91
- return (0, utils_1.getItems)(this.rbacAuthorizationV1Api.listNamespacedRole(name, namespace));
92
- }
93
- async createRole({ metadata: { name, namespace }, rules }) {
94
- await this.rbacAuthorizationV1Api.createNamespacedRole(namespace, {
95
- apiVersion: 'rbac.authorization.k8s.io/v1',
96
- kind: 'Role',
97
- metadata: {
98
- name,
99
- namespace
100
- },
101
- rules
102
- });
103
- }
104
- async getRoleBindings({ name, namespace }) {
105
- return (0, utils_1.getItems)(this.rbacAuthorizationV1Api.listNamespacedRoleBinding(name, namespace));
106
- }
107
- async createRoleBinding({ name, namespace, subjects }) {
108
- await this.rbacAuthorizationV1Api.createNamespacedRoleBinding(namespace, {
109
- apiVersion: 'rbac.authorization.k8s.io/v1',
110
- kind: 'RoleBinding',
111
- metadata: {
112
- name,
113
- namespace
114
- },
115
- roleRef: {
116
- apiGroup: 'rbac.authorization.k8s.io',
117
- kind: 'Role',
118
- name
119
- },
120
- subjects
121
- });
122
- }
123
- async getAllCustomResourceDefinitions() {
124
- return (0, utils_1.getItems)(this.apiextensionsV1Api.listCustomResourceDefinition());
125
- }
126
- async createCustomResourceDefinition(dto) {
127
- await this.apiextensionsV1Api.createCustomResourceDefinition(dto).catch(this.logger.error);
128
- }
129
- async getAllClusterCustomObjectsFromResourceDefinition(dto) {
130
- const { body } = await this.customObjectsApi.listClusterCustomObject(dto.spec.group, dto.spec.versions[0].name, dto.spec.names.plural);
131
- return body['items'];
132
- }
133
- async createClusterCustomObject({ resourceDefinition, metadata, spec }) {
134
- await this.customObjectsApi.createClusterCustomObject(resourceDefinition.spec.group, resourceDefinition.spec.versions[0].name, resourceDefinition.spec.names.plural, {
135
- apiVersion: `${resourceDefinition.spec.group}/${resourceDefinition.spec.versions[0].name}`,
136
- kind: resourceDefinition.spec.names.kind,
137
- metadata,
138
- spec
139
- });
140
- }
141
- async patchClusterCustomObject({ resourceDefinition, metadata, spec }) {
142
- await this.customObjectsApi.patchClusterCustomObject(resourceDefinition.spec.group, resourceDefinition.spec.versions[0].name, resourceDefinition.spec.names.plural, metadata.name, {
143
- apiVersion: `${resourceDefinition.spec.group}/${resourceDefinition.spec.versions[0].name}`,
144
- kind: resourceDefinition.spec.names.kind,
145
- metadata,
146
- spec
147
- }, undefined, undefined, undefined, {
148
- headers: {
149
- 'Content-Type': 'application/merge-patch+json'
150
- }
151
- });
152
- }
153
- async deleteClusterCustomObject({ resourceDefinition, metadata }) {
154
- await this.customObjectsApi.deleteClusterCustomObject(resourceDefinition.spec.group, resourceDefinition.spec.versions[0].name, resourceDefinition.spec.names.plural, metadata.name);
155
- }
156
- }
157
- exports.K8SCluster = K8SCluster;
@@ -1,4 +0,0 @@
1
- import { KubeConfig } from "@kubernetes/client-node";
2
- import { MaybeUndefined } from "@ask-ell/core";
3
- export declare function getK8SConfig(configFilePath: MaybeUndefined<string>): KubeConfig;
4
- //# sourceMappingURL=k8s.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"k8s.config.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/k8s.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,wBAAgB,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,UAAU,CAQ/E"}
package/src/k8s.config.js DELETED
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getK8SConfig = getK8SConfig;
4
- const client_node_1 = require("@kubernetes/client-node");
5
- function getK8SConfig(configFilePath) {
6
- const config = new client_node_1.KubeConfig();
7
- if (configFilePath) {
8
- config.loadFromFile(configFilePath);
9
- }
10
- else {
11
- config.loadFromDefault();
12
- }
13
- return config;
14
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/types.ts"],"names":[],"mappings":"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"}
package/src/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
package/src/utils.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { ComponentsFetchingResponse } from "./types";
2
- export declare function getItems<T>(itemsFactory: Promise<ComponentsFetchingResponse<T>>): Promise<T[]>;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../packages/k8s/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAGpG"}
package/src/utils.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getItems = getItems;
4
- async function getItems(itemsFactory) {
5
- const { body: { items } } = await itemsFactory;
6
- return items;
7
- }