@provisioner/appengine
Version:
CodeZero provisioner for appengine
1,378 lines (1,332 loc) • 165 kB
JavaScript
(() => {
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __reExport = (target, module, desc) => {
if (module && typeof module === "object" || typeof module === "function") {
for (let key of __getOwnPropNames(module))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
}
return target;
};
var __toModule = (module) => {
return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
};
var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
if (kind && result)
__defProp(target, key, result);
return result;
};
// ../appengine-contracts/lib/app.js
var require_app = __commonJS({
"../appengine-contracts/lib/app.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPortNumber = exports.isGenerateOptions = void 0;
exports.isGenerateOptions = (value) => !!value.generate;
exports.isPortNumber = (value) => typeof value === "number";
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/annotations.js
var require_annotations = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/annotations.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Annotations = void 0;
var Annotations = class {
};
exports.Annotations = Annotations;
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/attempt.js
var require_attempt = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/attempt.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/cluster.js
var require_cluster = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/cluster.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/helpers.js
var require_helpers = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/helpers.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/if.js
var require_if = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/if.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/labels.js
var require_labels = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/labels.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Labels = void 0;
var Labels = class {
};
exports.Labels = Labels;
Labels.K8SAppCreatedBy = "app.kubernetes.io/created-by";
Labels.K8SAppComponent = "app.kubernetes.io/component";
Labels.K8SAppInstance = "app.kubernetes.io/instance";
Labels.K8SAppManagedBy = "app.kubernetes.io/managed-by";
Labels.K8SAppName = "app.kubernetes.io/name";
Labels.K8SAppPartOf = "app.kubernetes.io/part-of";
Labels.K8SAppVersion = "app.kubernetes.io/version";
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/markers.js
var require_markers = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/markers.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setAnnotation = exports.setLabel = void 0;
exports.setLabel = (resource, key, value, override = true) => {
var _a2;
if (!override && ((_a2 = resource.metadata) === null || _a2 === void 0 ? void 0 : _a2.labels[key]))
return resource;
resource.metadata = resource.metadata || {};
resource.metadata.labels = {
...resource.metadata.labels,
[key]: value
};
return resource;
};
exports.setAnnotation = (resource, key, value, override = true) => {
var _a2;
if (!override && ((_a2 = resource.metadata) === null || _a2 === void 0 ? void 0 : _a2.annotations[key]))
return resource;
resource.metadata = resource.metadata || {};
resource.metadata.annotations = {
...resource.metadata.annotations,
[key]: value
};
return resource;
};
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/options.js
var require_options = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/options.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/processor.js
var require_processor = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/processor.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/resource.js
var require_resource = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/resource.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toResourceId = exports.ResourceAddress = void 0;
var ResourceAddress = class {
};
exports.ResourceAddress = ResourceAddress;
exports.toResourceId = (resource) => {
var _a2, _b, _c, _d, _e, _f;
return {
apiVersion: resource.apiVersion,
kind: resource.kind,
metadata: {
...((_a2 = resource.metadata) === null || _a2 === void 0 ? void 0 : _a2.namespace) ? { namespace: (_b = resource.metadata) === null || _b === void 0 ? void 0 : _b.namespace } : void 0,
...((_c = resource.metadata) === null || _c === void 0 ? void 0 : _c.name) ? { name: (_d = resource.metadata) === null || _d === void 0 ? void 0 : _d.name } : void 0,
...((_e = resource.metadata) === null || _e === void 0 ? void 0 : _e.labels) ? { labels: (_f = resource.metadata) === null || _f === void 0 ? void 0 : _f.labels } : void 0
}
};
};
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/resourceHelper.js
var require_resourceHelper = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/resourceHelper.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResourceHelper = void 0;
var markers_1 = require_markers();
var ResourceHelper = class {
constructor(resource = {}) {
this.resource = resource;
this.resource.apiVersion = this.resource.apiVersion || "v1";
this.resource.metadata = this.resource.metadata || {};
}
get isNew() {
return !!this.resource.metadata.uid;
}
get name() {
return this.resource.metadata.name;
}
get namespace() {
return this.resource.metadata.namespace;
}
get spec() {
return this.resource.spec;
}
get metadata() {
return this.resource.metadata;
}
get ownerReferences() {
return this.resource.metadata.ownerReferences;
}
setLabel(key, value, override = true) {
markers_1.setLabel(this.resource, key, value, override);
return this;
}
setAnnotation(key, value, override = true) {
markers_1.setAnnotation(this.resource, key, value, override);
return this;
}
toString() {
var _a2, _b, _c;
return ((_a2 = this.resource.metadata) === null || _a2 === void 0 ? void 0 : _a2.namespace) ? `${this.resource.kind} ${((_b = this.resource.metadata) === null || _b === void 0 ? void 0 : _b.name) || ""} in namespace ${this.resource.metadata.namespace}` : `${this.resource.kind} ${((_c = this.resource.metadata) === null || _c === void 0 ? void 0 : _c.name) || ""}`;
}
*each(kind) {
if (!this.resource.items)
return;
for (const item of this.resource.items)
yield {
apiVersion: this.resource.apiVersion,
kind,
...item
};
}
};
exports.ResourceHelper = ResourceHelper;
ResourceHelper.isResource = (object) => typeof object === "object" && "kind" in object;
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/request.js
var require_request = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/request.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/ts-try/dist/index.js
var require_dist = __commonJS({
"../../node_modules/ts-try/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function isPromise(obj) {
return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
}
function tryify(p) {
return p.then((x) => x, (err) => err);
}
function tryF(input) {
if (isPromise(input)) {
return tryify(input);
}
const block = input;
try {
const v = block();
if (isPromise(v)) {
return tryify(v);
}
return v;
} catch (err) {
return err;
}
}
exports.tryF = tryF;
function isError(e) {
return e instanceof Error;
}
exports.isError = isError;
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/result.js
var require_result = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/result.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Result = void 0;
var ts_try_1 = require_dist();
var Result = class {
constructor(result) {
if (ts_try_1.isError(result)) {
this.error = result;
if (this.error.error && typeof this.error.error != "string")
this.error = this.error.error;
} else if (result != void 0) {
if (result.kind)
this.object = result;
else
this.other = result;
}
}
get errorMessage() {
return this.error ? this.error.message : void 0;
}
get errorCode() {
return this.error ? this.error.statusCode || this.error.code : void 0;
}
get hasItems() {
var _a2, _b;
return (_b = (_a2 = this.object) === null || _a2 === void 0 ? void 0 : _a2.items) === null || _b === void 0 ? void 0 : _b.length;
}
static async from(fn) {
if (fn) {
const result = await ts_try_1.tryF(fn);
return new Result(result);
}
return Result.undefined;
}
as() {
return this.object;
}
*each(kind) {
var _a2;
if (!((_a2 = this.object) === null || _a2 === void 0 ? void 0 : _a2.items))
return;
for (const item of this.object.items)
yield {
apiVersion: this.object.apiVersion,
kind,
...item
};
}
throwIfError(message) {
if (this.error) {
if (message)
throw new Error(message);
else if (this.errorCode)
throw this.error;
else
throw new Error(this.errorMessage);
}
}
otherAs() {
return this.other;
}
};
exports.Result = Result;
Result.undefined = new Result(void 0);
}
});
// ../../node_modules/ulid/stubs/crypto.js
var require_crypto = __commonJS({
"../../node_modules/ulid/stubs/crypto.js"() {
}
});
// ../../node_modules/ulid/dist/index.umd.js
var require_index_umd = __commonJS({
"../../node_modules/ulid/dist/index.umd.js"(exports, module) {
(function(global, factory) {
typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : factory(global.ULID = {});
})(exports, function(exports2) {
"use strict";
function createError(message) {
var err = new Error(message);
err.source = "ulid";
return err;
}
var ENCODING = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
var ENCODING_LEN = ENCODING.length;
var TIME_MAX = Math.pow(2, 48) - 1;
var TIME_LEN = 10;
var RANDOM_LEN = 16;
function replaceCharAt(str, index, char) {
if (index > str.length - 1) {
return str;
}
return str.substr(0, index) + char + str.substr(index + 1);
}
function incrementBase32(str) {
var done = void 0;
var index = str.length;
var char = void 0;
var charIndex = void 0;
var maxCharIndex = ENCODING_LEN - 1;
while (!done && index-- >= 0) {
char = str[index];
charIndex = ENCODING.indexOf(char);
if (charIndex === -1) {
throw createError("incorrectly encoded string");
}
if (charIndex === maxCharIndex) {
str = replaceCharAt(str, index, ENCODING[0]);
continue;
}
done = replaceCharAt(str, index, ENCODING[charIndex + 1]);
}
if (typeof done === "string") {
return done;
}
throw createError("cannot increment this string");
}
function randomChar(prng) {
var rand = Math.floor(prng() * ENCODING_LEN);
if (rand === ENCODING_LEN) {
rand = ENCODING_LEN - 1;
}
return ENCODING.charAt(rand);
}
function encodeTime(now, len) {
if (isNaN(now)) {
throw new Error(now + " must be a number");
}
if (now > TIME_MAX) {
throw createError("cannot encode time greater than " + TIME_MAX);
}
if (now < 0) {
throw createError("time must be positive");
}
if (Number.isInteger(now) === false) {
throw createError("time must be an integer");
}
var mod = void 0;
var str = "";
for (; len > 0; len--) {
mod = now % ENCODING_LEN;
str = ENCODING.charAt(mod) + str;
now = (now - mod) / ENCODING_LEN;
}
return str;
}
function encodeRandom(len, prng) {
var str = "";
for (; len > 0; len--) {
str = randomChar(prng) + str;
}
return str;
}
function decodeTime(id) {
if (id.length !== TIME_LEN + RANDOM_LEN) {
throw createError("malformed ulid");
}
var time = id.substr(0, TIME_LEN).split("").reverse().reduce(function(carry, char, index) {
var encodingIndex = ENCODING.indexOf(char);
if (encodingIndex === -1) {
throw createError("invalid character found: " + char);
}
return carry += encodingIndex * Math.pow(ENCODING_LEN, index);
}, 0);
if (time > TIME_MAX) {
throw createError("malformed ulid, timestamp too large");
}
return time;
}
function detectPrng() {
var allowInsecure = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
var root = arguments[1];
if (!root) {
root = typeof window !== "undefined" ? window : null;
}
var browserCrypto = root && (root.crypto || root.msCrypto);
if (browserCrypto) {
return function() {
var buffer = new Uint8Array(1);
browserCrypto.getRandomValues(buffer);
return buffer[0] / 255;
};
} else {
try {
var nodeCrypto = require_crypto();
return function() {
return nodeCrypto.randomBytes(1).readUInt8() / 255;
};
} catch (e) {
}
}
if (allowInsecure) {
try {
console.error("secure crypto unusable, falling back to insecure Math.random()!");
} catch (e) {
}
return function() {
return Math.random();
};
}
throw createError("secure crypto unusable, insecure Math.random not allowed");
}
function factory(currPrng) {
if (!currPrng) {
currPrng = detectPrng();
}
return function ulid2(seedTime) {
if (isNaN(seedTime)) {
seedTime = Date.now();
}
return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, currPrng);
};
}
function monotonicFactory(currPrng) {
if (!currPrng) {
currPrng = detectPrng();
}
var lastTime = 0;
var lastRandom = void 0;
return function ulid2(seedTime) {
if (isNaN(seedTime)) {
seedTime = Date.now();
}
if (seedTime <= lastTime) {
var incrementedRandom = lastRandom = incrementBase32(lastRandom);
return encodeTime(lastTime, TIME_LEN) + incrementedRandom;
}
lastTime = seedTime;
var newRandom = lastRandom = encodeRandom(RANDOM_LEN, currPrng);
return encodeTime(seedTime, TIME_LEN) + newRandom;
};
}
var ulid = factory();
exports2.replaceCharAt = replaceCharAt;
exports2.incrementBase32 = incrementBase32;
exports2.randomChar = randomChar;
exports2.encodeTime = encodeTime;
exports2.encodeRandom = encodeRandom;
exports2.decodeTime = decodeTime;
exports2.detectPrng = detectPrng;
exports2.factory = factory;
exports2.monotonicFactory = monotonicFactory;
exports2.ulid = ulid;
Object.defineProperty(exports2, "__esModule", { value: true });
});
}
});
// (disabled):../../node_modules/util/util.js
var require_util = __commonJS({
"(disabled):../../node_modules/util/util.js"() {
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/status.js
var require_status = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/status.js"(exports) {
"use strict";
var __importDefault = exports && exports.__importDefault || function(mod) {
return mod && mod.__esModule ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Status = exports.Stage = exports.Event = exports.isStage = void 0;
var ulid_1 = require_index_umd();
var util_1 = __importDefault(require_util());
exports.isStage = (item) => {
return item.is === "s";
};
var Event = class {
constructor() {
this.is = "e";
}
};
exports.Event = Event;
var Stage = class {
constructor() {
this.is = "s";
this.depth = 0;
this.events = [];
}
get isRoot() {
return !this.parentId;
}
begin() {
this.condition = "running";
this.startTime = new Date();
}
end() {
this.endTime = new Date();
}
toJSON() {
return {
is: this.is,
id: this.id,
parentId: this.parentId,
depth: this.depth,
condition: this.condition,
name: this.name,
startTime: this.startTime,
endTime: this.endTime,
events: this.events
};
}
add(event) {
if (!event.id) {
event.id = ulid_1.ulid();
event.timestamp = new Date();
event.stageId = this.id;
}
this.latestEvent = event;
this.events.push(event);
}
};
exports.Stage = Stage;
var Status = class {
constructor() {
this.stages = [];
this.warnings = [];
this.errors = [];
this.findStage = (id) => this.stages.find((stage) => id === stage.id);
this.newStage = () => new Stage();
}
mutated(...items) {
}
begin() {
this.condition = "running";
}
end() {
if (this.condition === "running")
this.condition = "done";
}
toJSON() {
return {
condition: this.condition,
stages: this.stages.map((s) => s.toJSON())
};
}
fromPartial(status) {
const { stages, ...rest } = status;
Object.assign(this, rest);
this.stages = stages.map((s) => Object.assign(this.newStage(), s));
}
push(stageName, stageIdOrMeta, meta = void 0) {
if (this.condition !== "running")
this.begin();
if (typeof stageIdOrMeta === "object")
meta = stageIdOrMeta;
else if (stageIdOrMeta && this.findStage(stageIdOrMeta))
throw new Error(`Stage Id ${stageIdOrMeta} already exists`);
const stage = this.newStage();
stage.id = stageIdOrMeta || ulid_1.ulid();
stage.name = stageName;
stage.meta = meta;
this.addStage(stage);
}
pop(skipped, mutants = []) {
if (!this.currentStage)
throw new Error("Pop called without a current stage");
mutants.push(this.currentStage);
if (this.currentStage.condition === "running")
this.currentStage.condition = skipped === true ? "skipped" : "done";
this.currentStage.end();
if (this.currentStage.parentId)
this.currentStage = this.findStage(this.currentStage.parentId);
else {
this.currentStage = null;
this.end();
}
this.mutated(...mutants);
}
info(message, ...args) {
const event = new Event();
event.type = "info";
event.message = util_1.default.format(message, ...args);
this.addEvent(event);
}
warn(message, ...args) {
const event = new Event();
event.type = "warn";
event.message = util_1.default.format(message, ...args);
this.addEvent(event);
}
error(ex, message, ...args) {
const event = new Event();
event.type = "error";
if (ex) {
event.exception = ex;
event.message = ex.message;
}
if (message)
event.message = util_1.default.format(message, ...args);
this.addEvent(event);
}
addStage(stage) {
const lastStage = this.currentStage;
if (this.currentStage) {
if (!stage.parentId) {
stage.depth = this.currentStage.depth + 1;
stage.parentId = this.currentStage.id;
}
delete this.currentStage.latestEvent;
}
this.stages.push(stage);
this.currentStage = stage;
this.currentStage.begin();
this.mutated(lastStage, stage);
}
addEvent(event) {
var _a2;
const mutations = [];
if (event.stageId) {
if (event.stageId === ((_a2 = this.currentStage) === null || _a2 === void 0 ? void 0 : _a2.id)) {
this.currentStage.add(event);
mutations.push(this.currentStage);
} else {
const stage = this.findStage(event.stageId);
stage.add(event);
mutations.push(stage);
}
} else if (this.currentStage) {
event.stageId = this.currentStage.id;
this.currentStage.add(event);
mutations.push(this.currentStage);
}
if (event.type === "warn")
this.warnings.push(event);
else if (event.type === "error") {
this.errors.push(event);
let current = this.currentStage;
while (current) {
current.condition = "error";
mutations.push(current);
current = current.parentId ? this.findStage(current.parentId) : void 0;
}
this.condition = "error";
}
mutations.push(event);
this.mutated(...mutations);
}
update(stage, update) {
const popIt = stage === this.currentStage && update.condition !== "running";
Object.assign(stage, update);
if (popIt)
this.pop();
}
received(items) {
for (const item of items) {
if (!item)
continue;
if (exports.isStage(item)) {
const stage = this.findStage(item.id);
if (stage)
this.update(stage, item);
else
this.addStage(Object.assign(this.newStage(), item));
} else
this.addEvent(Object.assign(new Event(), item));
}
}
};
exports.Status = Status;
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/version.js
var require_version = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/version.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/@c6o/kubeclient-contracts/lib/index.js
var require_lib = __commonJS({
"../../node_modules/@c6o/kubeclient-contracts/lib/index.js"(exports) {
"use strict";
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() {
return m[k];
} });
} : function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
o[k2] = m[k];
});
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
for (var p in m)
if (p !== "default" && !exports2.hasOwnProperty(p))
__createBinding(exports2, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require_annotations(), exports);
__exportStar(require_attempt(), exports);
__exportStar(require_cluster(), exports);
__exportStar(require_helpers(), exports);
__exportStar(require_if(), exports);
__exportStar(require_labels(), exports);
__exportStar(require_markers(), exports);
__exportStar(require_options(), exports);
__exportStar(require_processor(), exports);
__exportStar(require_resource(), exports);
__exportStar(require_resourceHelper(), exports);
__exportStar(require_request(), exports);
__exportStar(require_result(), exports);
__exportStar(require_status(), exports);
__exportStar(require_version(), exports);
}
});
// ../contracts/lib/annotations.js
var require_annotations2 = __commonJS({
"../contracts/lib/annotations.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Annotations = void 0;
var kubeclient_contracts_1 = require_lib();
var Annotations = class extends kubeclient_contracts_1.Annotations {
};
exports.Annotations = Annotations;
}
});
// ../contracts/lib/codezero.js
var require_codezero = __commonJS({
"../contracts/lib/codezero.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CodeZeroHelper = void 0;
var kubeclient_contracts_1 = require_lib();
var CodeZeroHelper = class extends kubeclient_contracts_1.ResourceHelper {
get displayName() {
var _a2;
return ((_a2 = this.resource.metadata.annotations) === null || _a2 === void 0 ? void 0 : _a2["system.codezero.io/display"]) || this.name;
}
get iconUrl() {
var _a2;
return (_a2 = this.resource.metadata.annotations) === null || _a2 === void 0 ? void 0 : _a2["system.codezero.io/iconUrl"];
}
get componentLabels() {
return {
"app.kubernetes.io/managed-by": "codezero"
};
}
};
exports.CodeZeroHelper = CodeZeroHelper;
}
});
// ../contracts/lib/app.js
var require_app2 = __commonJS({
"../contracts/lib/app.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppHelper = exports.AppStatuses = void 0;
var codezero_1 = require_codezero();
exports.AppStatuses = {
create: {
Pending: "Installing",
Completed: "Running",
Error: "Error"
},
update: {
Pending: "Configuring",
Completed: "Running",
Error: "Degraded"
},
remove: {
Pending: "Terminating",
Completed: "Terminated",
Error: "Degraded"
}
};
var AppHelper = class extends codezero_1.CodeZeroHelper {
constructor() {
super(...arguments);
this.getServiceName = (serviceObject) => Object.keys(serviceObject)[0];
}
get services() {
var _a2;
if (this._services)
return this._services;
this.resource.spec.provisioner = this.resource.spec.provisioner || {};
const appProvisioner = this.resource.metadata.name;
const services = ((_a2 = this.resource.spec.provisioner) === null || _a2 === void 0 ? void 0 : _a2.services) || [];
return this._services = [
...services,
{ [appProvisioner]: this.resource.spec.provisioner }
];
}
get appId() {
return this.resource.metadata.name;
}
get instanceId() {
return `${this.namespace}-${this.name}`;
}
get tag() {
var _a2;
return (_a2 = this.resource.spec.provisioner) === null || _a2 === void 0 ? void 0 : _a2.tag;
}
get description() {
var _a2;
return ((_a2 = this.resource.metadata.annotations) === null || _a2 === void 0 ? void 0 : _a2["system.codezero.io/description"]) || this.appId;
}
get edition() {
var _a2;
return ((_a2 = this.resource.metadata.labels) === null || _a2 === void 0 ? void 0 : _a2["system.codezero.io/edition"]) || "latest";
}
get provisioner() {
return this.spec.provisioner;
}
get routes() {
return this.spec.routes;
}
get hasRoutes() {
var _a2;
return (_a2 = this.routes) === null || _a2 === void 0 ? void 0 : _a2.length;
}
get httpRoute() {
var _a2;
return (_a2 = this.routes) === null || _a2 === void 0 ? void 0 : _a2.find((item) => item.type === "http");
}
get spec() {
return this.resource.spec;
}
get appEdition() {
return this.edition;
}
get appName() {
return this.resource.metadata.name;
}
get appNamespace() {
return this.resource.metadata.namespace;
}
get isNew() {
return !!this.resource.metadata.uid;
}
get serviceNames() {
return this.services.map((serviceObject) => this.getServiceName(serviceObject));
}
get componentLabels() {
return {
...super.componentLabels,
"system.codezero.io/app": this.name,
"system.codezero.io/id": this.instanceId,
"system.codezero.io/edition": this.edition,
"app.kubernetes.io/name": this.name
};
}
get appComponentMergeDocument() {
return {
metadata: {
labels: this.componentLabels
}
};
}
get volumes() {
var _a2, _b;
return (_b = (_a2 = this.spec) === null || _a2 === void 0 ? void 0 : _a2.provisioner) === null || _b === void 0 ? void 0 : _b.volumes;
}
static volumesPath() {
return "/spec/provisioner/volumes";
}
getServiceSpec(serviceName) {
return this.getServiceObject(serviceName)[serviceName];
}
getServicePackage(serviceName) {
const serviceSpec = this.getServiceSpec(serviceName);
return serviceSpec.package;
}
getServiceTagPrefix(serviceName) {
const serviceSpec = this.getServiceSpec(serviceName);
return serviceSpec["tag-prefix"] || serviceName;
}
getServiceObject(serviceName) {
return this.services.find((serviceObject) => this.getServiceName(serviceObject) === serviceName) || {};
}
upsertLabel(labelName, labelValue) {
this.resource.metadata.labels[labelName] = labelValue;
}
insertOnlyLabel(labelName, labelValue) {
if (!this.resource.metadata.labels[labelName])
this.resource.metadata.labels[labelName] = labelValue;
}
};
exports.AppHelper = AppHelper;
}
});
// ../contracts/lib/contracts.js
var require_contracts = __commonJS({
"../contracts/lib/contracts.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/oauth.js
var require_oauth = __commonJS({
"../contracts/lib/oauth.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/helpers/configMap.js
var require_configMap = __commonJS({
"../contracts/lib/helpers/configMap.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigMapHelper = void 0;
var kubeclient_contracts_1 = require_lib();
var ConfigMapHelper = class extends kubeclient_contracts_1.ResourceHelper {
};
exports.ConfigMapHelper = ConfigMapHelper;
ConfigMapHelper.from = (namespace, name) => new ConfigMapHelper(ConfigMapHelper.template(namespace, name));
ConfigMapHelper.template = (namespace, name, data) => ({
apiVersion: "v1",
kind: "ConfigMap",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
},
...data ? { data } : void 0
});
}
});
// ../contracts/lib/helpers/cronJob.js
var require_cronJob = __commonJS({
"../contracts/lib/helpers/cronJob.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CronJobHelper = void 0;
var codezero_1 = require_codezero();
var CronJobHelper = class extends codezero_1.CodeZeroHelper {
};
exports.CronJobHelper = CronJobHelper;
CronJobHelper.template = (namespace, name) => ({
apiVersion: "batch/v1beta1",
kind: "CronJob",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
CronJobHelper.from = (namespace, name) => new CronJobHelper(CronJobHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/deployment.js
var require_deployment = __commonJS({
"../contracts/lib/helpers/deployment.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeploymentHelper = void 0;
var codezero_1 = require_codezero();
var DeploymentHelper = class extends codezero_1.CodeZeroHelper {
static volumesPath() {
return "/spec/template/spec/volumes";
}
static volumeMountsPath() {
return "/spec/template/spec/containers/volumeMounts";
}
get templateSpec() {
var _a2, _b;
return (_b = (_a2 = this.spec) === null || _a2 === void 0 ? void 0 : _a2.template) === null || _b === void 0 ? void 0 : _b.spec;
}
get appName() {
var _a2;
return (_a2 = this.metadata) === null || _a2 === void 0 ? void 0 : _a2.ownerReferences[0].name;
}
get volumes() {
var _a2;
return (_a2 = this.templateSpec) === null || _a2 === void 0 ? void 0 : _a2.volumes;
}
get volumeMounts() {
var _a2, _b;
return (_b = (_a2 = this.templateSpec) === null || _a2 === void 0 ? void 0 : _a2.containers[0]) === null || _b === void 0 ? void 0 : _b.volumeMounts;
}
get volumesNotMounted() {
var _a2;
return (_a2 = this.volumes) === null || _a2 === void 0 ? void 0 : _a2.filter((volume) => !this.volumeMounts.some((volumeMount) => volume.name === volumeMount.name));
}
};
exports.DeploymentHelper = DeploymentHelper;
DeploymentHelper.template = (namespace, name) => ({
apiVersion: "apps/v1",
kind: "Deployment",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
DeploymentHelper.from = (namespace, name) => new DeploymentHelper(DeploymentHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/job.js
var require_job = __commonJS({
"../contracts/lib/helpers/job.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.JobHelper = void 0;
var codezero_1 = require_codezero();
var JobHelper = class extends codezero_1.CodeZeroHelper {
};
exports.JobHelper = JobHelper;
JobHelper.template = (namespace, name) => ({
apiVersion: "batch/v1",
kind: "Job",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
JobHelper.from = (namespace, name) => new JobHelper(JobHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/namespace.js
var require_namespace = __commonJS({
"../contracts/lib/helpers/namespace.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NamespaceHelper = void 0;
var kubeclient_contracts_1 = require_lib();
var NamespaceHelper = class extends kubeclient_contracts_1.ResourceHelper {
};
exports.NamespaceHelper = NamespaceHelper;
NamespaceHelper.template = (name) => ({
apiVersion: "v1",
kind: "Namespace",
metadata: {
...name ? { name } : void 0
}
});
NamespaceHelper.from = (name) => new NamespaceHelper(NamespaceHelper.template(name));
}
});
// ../contracts/lib/helpers/persistentVolume.js
var require_persistentVolume = __commonJS({
"../contracts/lib/helpers/persistentVolume.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PersistentVolumeObject = void 0;
var codezero_1 = require_codezero();
var PersistentVolumeObject = class extends codezero_1.CodeZeroHelper {
};
exports.PersistentVolumeObject = PersistentVolumeObject;
}
});
// ../contracts/lib/helpers/persistentVolumeClaim.js
var require_persistentVolumeClaim = __commonJS({
"../contracts/lib/helpers/persistentVolumeClaim.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PersistentVolumeClaimObject = void 0;
var codezero_1 = require_codezero();
var PersistentVolumeClaimObject = class extends codezero_1.CodeZeroHelper {
get volumeName() {
return this.spec.volumeName;
}
get appName() {
var _a2;
return (_a2 = this.metadata.ownerReferences[0]) === null || _a2 === void 0 ? void 0 : _a2.name;
}
};
exports.PersistentVolumeClaimObject = PersistentVolumeClaimObject;
}
});
// ../contracts/lib/helpers/pod.js
var require_pod = __commonJS({
"../contracts/lib/helpers/pod.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PodHelper = void 0;
var codezero_1 = require_codezero();
var PodHelper = class extends codezero_1.CodeZeroHelper {
};
exports.PodHelper = PodHelper;
PodHelper.template = (namespace, name) => ({
apiVersion: "v1",
kind: "Pod",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
PodHelper.from = (namespace, name) => new PodHelper(PodHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/secret.js
var require_secret = __commonJS({
"../contracts/lib/helpers/secret.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SecretHelper = void 0;
var kubeclient_contracts_1 = require_lib();
var SecretHelper = class extends kubeclient_contracts_1.ResourceHelper {
};
exports.SecretHelper = SecretHelper;
SecretHelper.from = (namespace, name) => new SecretHelper(SecretHelper.template(namespace, name));
SecretHelper.template = (namespace, name, data) => ({
apiVersion: "v1",
kind: "Secret",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
},
...data ? { data } : void 0
});
}
});
// ../contracts/lib/helpers/service.js
var require_service = __commonJS({
"../contracts/lib/helpers/service.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceHelper = void 0;
var kubeclient_contracts_1 = require_lib();
var ServiceHelper = class extends kubeclient_contracts_1.ResourceHelper {
};
exports.ServiceHelper = ServiceHelper;
ServiceHelper.template = (namespace, name) => ({
apiVersion: "v1",
kind: "Service",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
ServiceHelper.from = (namespace, name) => new ServiceHelper(ServiceHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/statefulSet.js
var require_statefulSet = __commonJS({
"../contracts/lib/helpers/statefulSet.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StatefulSetHelper = void 0;
var codezero_1 = require_codezero();
var StatefulSetHelper = class extends codezero_1.CodeZeroHelper {
};
exports.StatefulSetHelper = StatefulSetHelper;
StatefulSetHelper.template = (namespace, name) => ({
apiVersion: "apps/v1",
kind: "StatefulSet",
metadata: {
...name ? { name } : void 0,
...namespace ? { namespace } : void 0
}
});
StatefulSetHelper.from = (namespace, name) => new StatefulSetHelper(StatefulSetHelper.template(namespace, name));
}
});
// ../contracts/lib/helpers/index.js
var require_helpers2 = __commonJS({
"../contracts/lib/helpers/index.js"(exports) {
"use strict";
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() {
return m[k];
} });
} : function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
o[k2] = m[k];
});
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
for (var p in m)
if (p !== "default" && !exports2.hasOwnProperty(p))
__createBinding(exports2, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require_configMap(), exports);
__exportStar(require_cronJob(), exports);
__exportStar(require_deployment(), exports);
__exportStar(require_job(), exports);
__exportStar(require_namespace(), exports);
__exportStar(require_persistentVolume(), exports);
__exportStar(require_persistentVolumeClaim(), exports);
__exportStar(require_pod(), exports);
__exportStar(require_secret(), exports);
__exportStar(require_service(), exports);
__exportStar(require_statefulSet(), exports);
}
});
// ../contracts/lib/labels.js
var require_labels2 = __commonJS({
"../contracts/lib/labels.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Labels = void 0;
var kubeclient_contracts_1 = require_lib();
var Labels = class extends kubeclient_contracts_1.Labels {
};
exports.Labels = Labels;
Labels.valueManagedByC6O = "codezero";
}
});
// ../contracts/lib/user.js
var require_user = __commonJS({
"../contracts/lib/user.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/store.js
var require_store = __commonJS({
"../contracts/lib/store.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/resolver.js
var require_resolver = __commonJS({
"../contracts/lib/resolver.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/signal.js
var require_signal = __commonJS({
"../contracts/lib/signal.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearDocumentSignal = exports.signalDocument = exports.isDocumentSignalled = exports.DOCUMENT_SIGNAL_JSON_PATCH = exports.DOCUMENT_SIGNAL = void 0;
exports.DOCUMENT_SIGNAL = "system.codezero.io/update-signal";
exports.DOCUMENT_SIGNAL_JSON_PATCH = "system.codezero.io~1update-signal";
exports.isDocumentSignalled = (document2) => {
var _a2, _b;
return ((_b = (_a2 = document2.metadata) === null || _a2 === void 0 ? void 0 : _a2.annotations) === null || _b === void 0 ? void 0 : _b[exports.DOCUMENT_SIGNAL]) === "true";
};
exports.signalDocument = (document2) => {
if (!document2.metadata)
document2.metadata = { annotations: { [exports.DOCUMENT_SIGNAL]: "true" } };
else if (!document2.metadata.annotations)
document2.metadata.annotations = { [exports.DOCUMENT_SIGNAL]: "true" };
else
document2.metadata.annotations[exports.DOCUMENT_SIGNAL] = "true";
};
exports.clearDocumentSignal = (document2) => {
var _a2, _b;
return (_b = (_a2 = document2.metadata) === null || _a2 === void 0 ? void 0 : _a2.annotations) === null || _b === void 0 ? true : delete _b[exports.DOCUMENT_SIGNAL];
};
}
});
// ../contracts/lib/provisioner.js
var require_provisioner = __commonJS({
"../contracts/lib/provisioner.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../contracts/lib/index.js
var require_lib2 = __commonJS({
"../contracts/lib/index.js"(exports) {
"use strict";
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() {
return m[k];
} });
} : function(o, m, k, k2) {
if (k2 === void 0)
k2 = k;
o[k2] = m[k];
});
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
for (var p in m)
if (p !== "default" && !exports2.hasOwnProperty(p))
__createBinding(exports2, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require_annotations2(), exports);