UNPKG

@mittwald/kubernetes

Version:

Kubernetes client library

152 lines 6.91 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.KubernetesAPI = void 0; const resource_1 = require("./resource"); const resourceAppsV1beta1 = __importStar(require("./apis/apps/v1beta1")); const resourceExtensionsV1beta1 = __importStar(require("./apis/extensions/v1beta1")); const admregv1 = __importStar(require("./types/admissionregistration/v1")); const prom_client_1 = require("prom-client"); class KubernetesAPI { constructor(restClient, registry = prom_client_1.register) { this.restClient = restClient; this.registry = registry; } nc(apiBaseURL, resourceBaseURL) { return new resource_1.NamespacedResourceClient(this.restClient, apiBaseURL, resourceBaseURL, this.registry); } c(apiBaseURL, resourceBaseURL) { return new resource_1.ResourceClient(this.restClient, apiBaseURL, resourceBaseURL, this.registry); } extend(name, customResourceAPI) { this[name] = () => customResourceAPI[name](); return this; } admissionRegistration() { return { v1: () => ({ validatingWebhookConfigurations: () => this.c(`/apis/${admregv1.apiGroup}`, "/validatingwebhookconfigurations"), }), }; } apiextensions() { return { v1beta1: () => ({ customResourceDefinitions: () => this.c("/apis/apiextensions.k8s.io/v1beta1", "/customresourcedefinitions"), }), v1: () => ({ customResourceDefinitions: () => this.c("/apis/apiextensions.k8s.io/v1", "/customresourcedefinitions"), }), }; } certificates() { return { v1beta1: () => ({ certificateSigningRequests: () => this.c("/apis/certificates.k8s.io/v1beta1", "/certificatesigningrequests"), }), }; } core() { return { v1: () => ({ configMaps: () => this.nc("/api/v1", "/configmaps"), endpoints: () => this.nc("/api/v1", "/endpoints"), namespaces: () => this.c("/api/v1", "/namespaces"), nodes: () => this.c("/api/v1", "/nodes"), pods: () => this.nc("/api/v1", "/pods"), persistentVolumes: () => this.c("/api/v1", "/persistentvolumes"), persistentVolumeClaims: () => this.nc("/api/v1", "/persistentvolumeclaims"), services: () => { const client = new resource_1.NamespacedResourceClient(this.restClient, "/api/v1", "/services", this.registry); client.supportsCollectionDeletion = false; return client; }, secrets: () => this.nc("/api/v1", "/secrets"), serviceAccounts: () => this.nc("/api/v1", "/serviceaccounts"), }), }; } apps() { return { v1: () => ({ daemonSets: () => this.nc("/apis/apps/v1", "/daemonsets"), deployments: () => this.nc("/apis/apps/v1", "/deployments"), replicaSets: () => this.nc("/apis/apps/v1", "/replicasets"), statefulSets: () => this.nc("/apis/apps/v1", "/statefulsets"), }), v1beta1: () => ({ deployments: () => new resourceAppsV1beta1.DeploymentResourceClient(this.restClient, this.registry), statefulSets: () => new resourceAppsV1beta1.StatefulSetResourceClient(this.restClient, this.registry), }), }; } batch() { return { v1: () => ({ jobs: () => this.nc("/apis/batch/v1", "/jobs"), }), v1beta1: () => ({ cronJobs: () => this.nc("/apis/batch/v1beta1", "/cronjobs"), }), }; } extensions() { return { v1beta1: () => ({ daemonSets: () => this.nc("/apis/extensions/v1beta1", "/daemonsets"), deployments: () => new resourceExtensionsV1beta1.DeploymentResourceClient(this.restClient, this.registry), ingresses: () => this.nc("/apis/extensions/v1beta1", "/ingresses"), networkPolicies: () => this.nc("/apis/extensions/v1beta1", "/networkpolicies"), replicaSets: () => this.nc("/apis/extensions/v1beta1", "/replicasets"), }), }; } rbac() { return { v1: () => ({ clusterRoles: () => new resource_1.ResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1", "/clusterroles", this.registry), clusterRoleBindings: () => new resource_1.ResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1", "/clusterrolebindings", this.registry), roles: () => new resource_1.NamespacedResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1", "/roles", this.registry), roleBindings: () => new resource_1.NamespacedResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1", "/rolebindings", this.registry), }), v1beta1: () => ({ roles: () => new resource_1.NamespacedResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1beta1", "/roles", this.registry), roleBindings: () => new resource_1.NamespacedResourceClient(this.restClient, "/apis/rbac.authorization.k8s.io/v1beta1", "/rolebindings", this.registry), }), }; } policy() { return { v1beta1: () => ({ podDisruptionBudgets: () => new resource_1.NamespacedResourceClient(this.restClient, "/apis/policy/v1beta1", "/poddisruptionbudgets", this.registry), }), }; } autoscaling() { return { v1: () => ({ horizontalPodAutoscalers: () => this.nc("/apis/autoscaling/v1", "/horizontalpodautoscalers"), }), }; } } exports.KubernetesAPI = KubernetesAPI; //# sourceMappingURL=api.js.map