cdk-eks-karpenter
Version:
CDK construct library that allows you install Karpenter in an AWS EKS cluster
38 lines • 3.56 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFDaEI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBUztRQUN2RCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBd0IsRUFBRSxRQUFrQjtRQUN4RSxLQUFLLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBOUJELHNCQThCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXRpbHMgc2hvdWxkIG9ubHkgY29udGFpbiBzdGF0aWMgbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFV0aWxzIHtcbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBzdHJpbmcgY29uZm9ybXMgdG8gdGhlIGxvd2VyY2FzZSBSRkMgMTEyMy4gSWYgbm90LCBLdWJlcm5ldGVzIHdpbGwgdGhyb3dcbiAgICogYW4gZXJyb3Igc2F5aW5nIHRoYXQgdGhlIG5hbWUgbXVzdCBjb25mb3JtIHdpdGggcmVnZXggdXNlZCBmb3IgdmFsaWRhdGlvbiwgd2hpY2ggaXM6XG4gICAqIFxcJ1thLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcXFwuW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8pKlxcJylcXG4nXG4gICAqXG4gICAqIEBwYXJhbSBzIHN0cmluZyB0byB2YWxpZGF0ZVxuICAgKlxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlS3ViZXJuZXRlc05hbWVDb25mb3JtYW5jZShzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgcmVnZXggPSBuZXcgUmVnRXhwKCdeKD8hWzAtOV0rJCkoPyEuKi0kKSg/IS0pW2EtejAtOS1dezEsNjN9JCcpO1xuICAgIHJldHVybiByZWdleC50ZXN0KHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgb2JqZWN0IHRvIGVuc3VyZSB0aGF0IGFsbCByZXF1aXJlZCBrZXlzIGFyZSBwcmVzZW50LCBvciB0aHJvd3MgYW4gZXJyb3IuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogb2JqZWN0IHRvIGNoZWNrXG4gICAqIEBwYXJhbSByZXF1aXJlZCBsaXN0IG9mIHN0cmluZ3MgdG8gZW5zdXJlIHByZXNlbmNlXG4gICAqXG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGFzUmVxdWlyZWRLZXlzKG9iajogUmVjb3JkPHN0cmluZywgYW55PiwgcmVxdWlyZWQ6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgZm9yIChsZXQga2V5IG9mIHJlcXVpcmVkKSB7XG4gICAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBrZXk6ICR7a2V5fSwgZnVsbCBvYmplY3Q6ICR7SlNPTi5zdHJpbmdpZnkob2JqKX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==