UNPKG

@apigeeks/fbl-k8s-plugin

Version:

fbl wrapper plugin for helm and kubectl cli utilities

72 lines 3.1 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const Joi = require("joi"); const typedi_1 = require("typedi"); const fbl_1 = require("fbl"); const services_1 = require("../../services"); class K8sApplyDockerRegistrySecretActionHandler extends fbl_1.ActionHandler { /* istanbul ignore next */ getMetadata() { return K8sApplyDockerRegistrySecretActionHandler.metadata; } getValidationSchema() { return K8sApplyDockerRegistrySecretActionHandler.schema; } execute(options, context, snapshot, parameters) { return __awaiter(this, void 0, void 0, function* () { const object = { apiVersion: 'v1', kind: 'Secret', metadata: { name: options.name, }, type: 'kubernetes.io/dockerconfigjson', data: { '.dockerconfigjson': Buffer.from(JSON.stringify({ auths: { [options.server]: { username: options.username, password: options.password, email: options.email, auth: Buffer.from(`${options.username}:${options.password}`).toString('base64'), }, }, })).toString('base64'), }, }; if (options.namespace) { object.metadata.namespace = options.namespace; } yield typedi_1.Container.get(services_1.K8sKubectlService).applyObject(object, context); }); } } K8sApplyDockerRegistrySecretActionHandler.metadata = { id: 'a6s.k8s.kubectl.apply.Secret.docker-registry', aliases: [ 'k8s.kubectl.apply.Secret.docker-registry', 'kubectl.apply.Secret.docker-registry', 'kubectl.Secret.docker-registry', 'kubectl.Secret.docker', ], }; K8sApplyDockerRegistrySecretActionHandler.schema = Joi.object().keys({ name: Joi.string() .required() .min(1), namespace: Joi.string().min(1), server: Joi.string().required(), username: Joi.string().required(), password: Joi.string().required(), email: Joi.string().required(), }); exports.K8sApplyDockerRegistrySecretActionHandler = K8sApplyDockerRegistrySecretActionHandler; //# sourceMappingURL=K8sApplyDockerRegistrySecretActionHandler.js.map