@apigeeks/fbl-k8s-plugin
Version:
fbl wrapper plugin for helm and kubectl cli utilities
72 lines • 3.1 kB
JavaScript
;
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