cdk-eks-karpenter
Version:
CDK construct library that allows you install Karpenter in an AWS EKS cluster
38 lines • 3.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
/**
* Utils should only contain static methods.
*/
class Utils {
/**
* Check whether a string conforms to the lowercase RFC 1123. If not, Kubernetes will throw
* an error saying that the name must conform with regex used for validation, which is:
* \'[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\')\n'
*
* @param s string to validate
*
* @returns boolean
*/
static validateKubernetesNameConformance(s) {
let regex = new RegExp('^(?![0-9]+$)(?!.*-$)(?!-)[a-z0-9-]{1,63}$');
return regex.test(s);
}
/**
* Checks the object to ensure that all required keys are present, or throws an error.
*
* @param obj object to check
* @param required list of strings to ensure presence
*
* @returns boolean
*/
static hasRequiredKeys(obj, required) {
for (let key of required) {
if (!obj.hasOwnProperty(key)) {
throw new Error(`Missing required key: ${key}, full object: ${JSON.stringify(obj)}`);
}
}
}
}
exports.Utils = Utils;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFDaEI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBUztRQUN2RCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBd0IsRUFBRSxRQUFrQjtRQUN4RSxLQUFLLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxrQkFBa0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdEY7U0FDRjtJQUNILENBQUM7Q0FDRjtBQTlCRCxzQkE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFV0aWxzIHNob3VsZCBvbmx5IGNvbnRhaW4gc3RhdGljIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBVdGlscyB7XG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIGEgc3RyaW5nIGNvbmZvcm1zIHRvIHRoZSBsb3dlcmNhc2UgUkZDIDExMjMuIElmIG5vdCwgS3ViZXJuZXRlcyB3aWxsIHRocm93XG4gICAqIGFuIGVycm9yIHNheWluZyB0aGF0IHRoZSBuYW1lIG11c3QgY29uZm9ybSB3aXRoIHJlZ2V4IHVzZWQgZm9yIHZhbGlkYXRpb24sIHdoaWNoIGlzOlxuICAgKiBcXCdbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSpcXCcpXFxuJ1xuICAgKlxuICAgKiBAcGFyYW0gcyBzdHJpbmcgdG8gdmFsaWRhdGVcbiAgICpcbiAgICogQHJldHVybnMgYm9vbGVhblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZUt1YmVybmV0ZXNOYW1lQ29uZm9ybWFuY2Uoczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlZ2V4ID0gbmV3IFJlZ0V4cCgnXig/IVswLTldKyQpKD8hLiotJCkoPyEtKVthLXowLTktXXsxLDYzfSQnKTtcbiAgICByZXR1cm4gcmVnZXgudGVzdChzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIG9iamVjdCB0byBlbnN1cmUgdGhhdCBhbGwgcmVxdWlyZWQga2V5cyBhcmUgcHJlc2VudCwgb3IgdGhyb3dzIGFuIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0gb2JqIG9iamVjdCB0byBjaGVja1xuICAgKiBAcGFyYW0gcmVxdWlyZWQgbGlzdCBvZiBzdHJpbmdzIHRvIGVuc3VyZSBwcmVzZW5jZVxuICAgKlxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhhc1JlcXVpcmVkS2V5cyhvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sIHJlcXVpcmVkOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGZvciAobGV0IGtleSBvZiByZXF1aXJlZCkge1xuICAgICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQga2V5OiAke2tleX0sIGZ1bGwgb2JqZWN0OiAke0pTT04uc3RyaW5naWZ5KG9iail9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=