UNPKG

@aws-cdk/aws-eks-v2-alpha

Version:

This module is deprecated. All constructs are now available under aws-cdk-lib/aws-eks-v2

79 lines 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LifecycleLabel = void 0; exports.renderAmazonLinuxUserData = renderAmazonLinuxUserData; exports.renderBottlerocketUserData = renderBottlerocketUserData; const core_1 = require("aws-cdk-lib/core"); // eslint-disable-next-line max-len function renderAmazonLinuxUserData(cluster, autoScalingGroup, options = {}) { const stack = core_1.Stack.of(autoScalingGroup); // determine logical id of ASG so we can signal cloudformation const cfn = autoScalingGroup.node.defaultChild; const asgLogicalId = cfn.logicalId; const extraArgs = new Array(); try { const clusterEndpoint = cluster.clusterEndpoint; const clusterCertificateAuthorityData = cluster.clusterCertificateAuthorityData; extraArgs.push(`--apiserver-endpoint '${clusterEndpoint}'`); extraArgs.push(`--b64-cluster-ca '${clusterCertificateAuthorityData}'`); } catch (e) { /** * Errors are ignored here. * apiserver-endpoint and b64-cluster-ca arguments are added in #12659 to make nodes join the cluster faster. * As these are not necessary arguments, we don't need to pass these arguments when they don't exist. * * @see https://github.com/aws/aws-cdk/pull/12659 */ } extraArgs.push(`--use-max-pods ${options.useMaxPods ?? true}`); if (options.awsApiRetryAttempts) { extraArgs.push(`--aws-api-retry-attempts ${options.awsApiRetryAttempts}`); } if (options.enableDockerBridge) { extraArgs.push('--enable-docker-bridge true'); } if (options.dockerConfigJson) { extraArgs.push(`--docker-config-json '${options.dockerConfigJson}'`); } if (options.dnsClusterIp) { extraArgs.push(`--dns-cluster-ip ${options.dnsClusterIp}`); } if (options.additionalArgs) { extraArgs.push(options.additionalArgs); } const commandLineSuffix = extraArgs.join(' '); const kubeletExtraArgsSuffix = options.kubeletExtraArgs || ''; // determine lifecycle label based on whether the ASG has a spot price. const lifecycleLabel = autoScalingGroup.spotPrice ? LifecycleLabel.SPOT : LifecycleLabel.ON_DEMAND; const withTaints = autoScalingGroup.spotPrice ? '--register-with-taints=spotInstance=true:PreferNoSchedule' : ''; const kubeletExtraArgs = `--node-labels lifecycle=${lifecycleLabel} ${withTaints} ${kubeletExtraArgsSuffix}`.trim(); return [ 'set -o xtrace', `/etc/eks/bootstrap.sh ${cluster.clusterName} --kubelet-extra-args "${kubeletExtraArgs}" ${commandLineSuffix}`.trim(), `/opt/aws/bin/cfn-signal --exit-code $? --stack ${stack.stackName} --resource ${asgLogicalId} --region ${stack.region}`, ]; } function renderBottlerocketUserData(cluster) { return [ '[settings.kubernetes]', `api-server="${cluster.clusterEndpoint}"`, `cluster-certificate="${cluster.clusterCertificateAuthorityData}"`, `cluster-name="${cluster.clusterName}"`, ]; } /** * The lifecycle label for node selector */ var LifecycleLabel; (function (LifecycleLabel) { /** * on-demand instances */ LifecycleLabel["ON_DEMAND"] = "OnDemand"; /** * spot instances */ LifecycleLabel["SPOT"] = "Ec2Spot"; })(LifecycleLabel || (exports.LifecycleLabel = LifecycleLabel = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLDhEQTREQztBQUVELGdFQU9DO0FBekVELDJDQUF5QztBQUd6QyxtQ0FBbUM7QUFDbkMsU0FBZ0IseUJBQXlCLENBQUMsT0FBaUIsRUFBRSxnQkFBOEMsRUFBRSxVQUE0QixFQUFFO0lBQ3pJLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV6Qyw4REFBOEQ7SUFDOUQsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQStDLENBQUM7SUFDbEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUVuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRXRDLElBQUksQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDaEQsTUFBTSwrQkFBK0IsR0FDbkMsT0FBTyxDQUFDLCtCQUErQixDQUFDO1FBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDNUQsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsK0JBQStCLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1g7Ozs7OztXQU1HO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUU5RCx1RUFBdUU7SUFDdkUsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO0lBQ25HLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqSCxNQUFNLGdCQUFnQixHQUFHLDJCQUEyQixjQUFjLElBQUksVUFBVSxJQUFJLHNCQUFzQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFcEgsT0FBTztRQUNMLGVBQWU7UUFDZix5QkFBeUIsT0FBTyxDQUFDLFdBQVcsMEJBQTBCLGdCQUFnQixLQUFLLGlCQUFpQixFQUFFLENBQUMsSUFBSSxFQUFFO1FBQ3JILGtEQUFrRCxLQUFLLENBQUMsU0FBUyxlQUFlLFlBQVksYUFBYSxLQUFLLENBQUMsTUFBTSxFQUFFO0tBQ3hILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsT0FBaUI7SUFDMUQsT0FBTztRQUNMLHVCQUF1QjtRQUN2QixlQUFlLE9BQU8sQ0FBQyxlQUFlLEdBQUc7UUFDekMsd0JBQXdCLE9BQU8sQ0FBQywrQkFBK0IsR0FBRztRQUNsRSxpQkFBaUIsT0FBTyxDQUFDLFdBQVcsR0FBRztLQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxjQVNYO0FBVEQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsd0NBQXNCLENBQUE7SUFDdEI7O09BRUc7SUFDSCxrQ0FBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBVFcsY0FBYyw4QkFBZCxjQUFjLFFBU3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBhdXRvc2NhbGluZyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXV0b3NjYWxpbmcnO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwT3B0aW9ucywgSUNsdXN0ZXIgfSBmcm9tICcuL2NsdXN0ZXInO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckFtYXpvbkxpbnV4VXNlckRhdGEoY2x1c3RlcjogSUNsdXN0ZXIsIGF1dG9TY2FsaW5nR3JvdXA6IGF1dG9zY2FsaW5nLkF1dG9TY2FsaW5nR3JvdXAsIG9wdGlvbnM6IEJvb3RzdHJhcE9wdGlvbnMgPSB7fSk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihhdXRvU2NhbGluZ0dyb3VwKTtcblxuICAvLyBkZXRlcm1pbmUgbG9naWNhbCBpZCBvZiBBU0cgc28gd2UgY2FuIHNpZ25hbCBjbG91ZGZvcm1hdGlvblxuICBjb25zdCBjZm4gPSBhdXRvU2NhbGluZ0dyb3VwLm5vZGUuZGVmYXVsdENoaWxkIGFzIGF1dG9zY2FsaW5nLkNmbkF1dG9TY2FsaW5nR3JvdXA7XG4gIGNvbnN0IGFzZ0xvZ2ljYWxJZCA9IGNmbi5sb2dpY2FsSWQ7XG5cbiAgY29uc3QgZXh0cmFBcmdzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGNsdXN0ZXJFbmRwb2ludCA9IGNsdXN0ZXIuY2x1c3RlckVuZHBvaW50O1xuICAgIGNvbnN0IGNsdXN0ZXJDZXJ0aWZpY2F0ZUF1dGhvcml0eURhdGEgPVxuICAgICAgY2x1c3Rlci5jbHVzdGVyQ2VydGlmaWNhdGVBdXRob3JpdHlEYXRhO1xuICAgIGV4dHJhQXJncy5wdXNoKGAtLWFwaXNlcnZlci1lbmRwb2ludCAnJHtjbHVzdGVyRW5kcG9pbnR9J2ApO1xuICAgIGV4dHJhQXJncy5wdXNoKGAtLWI2NC1jbHVzdGVyLWNhICcke2NsdXN0ZXJDZXJ0aWZpY2F0ZUF1dGhvcml0eURhdGF9J2ApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLyoqXG4gICAgICogRXJyb3JzIGFyZSBpZ25vcmVkIGhlcmUuXG4gICAgICogYXBpc2VydmVyLWVuZHBvaW50IGFuZCBiNjQtY2x1c3Rlci1jYSBhcmd1bWVudHMgYXJlIGFkZGVkIGluICMxMjY1OSB0byBtYWtlIG5vZGVzIGpvaW4gdGhlIGNsdXN0ZXIgZmFzdGVyLlxuICAgICAqIEFzIHRoZXNlIGFyZSBub3QgbmVjZXNzYXJ5IGFyZ3VtZW50cywgd2UgZG9uJ3QgbmVlZCB0byBwYXNzIHRoZXNlIGFyZ3VtZW50cyB3aGVuIHRoZXkgZG9uJ3QgZXhpc3QuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzEyNjU5XG4gICAgICovXG4gIH1cblxuICBleHRyYUFyZ3MucHVzaChgLS11c2UtbWF4LXBvZHMgJHtvcHRpb25zLnVzZU1heFBvZHMgPz8gdHJ1ZX1gKTtcblxuICBpZiAob3B0aW9ucy5hd3NBcGlSZXRyeUF0dGVtcHRzKSB7XG4gICAgZXh0cmFBcmdzLnB1c2goYC0tYXdzLWFwaS1yZXRyeS1hdHRlbXB0cyAke29wdGlvbnMuYXdzQXBpUmV0cnlBdHRlbXB0c31gKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmVuYWJsZURvY2tlckJyaWRnZSkge1xuICAgIGV4dHJhQXJncy5wdXNoKCctLWVuYWJsZS1kb2NrZXItYnJpZGdlIHRydWUnKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmRvY2tlckNvbmZpZ0pzb24pIHtcbiAgICBleHRyYUFyZ3MucHVzaChgLS1kb2NrZXItY29uZmlnLWpzb24gJyR7b3B0aW9ucy5kb2NrZXJDb25maWdKc29ufSdgKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmRuc0NsdXN0ZXJJcCkge1xuICAgIGV4dHJhQXJncy5wdXNoKGAtLWRucy1jbHVzdGVyLWlwICR7b3B0aW9ucy5kbnNDbHVzdGVySXB9YCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5hZGRpdGlvbmFsQXJncykge1xuICAgIGV4dHJhQXJncy5wdXNoKG9wdGlvbnMuYWRkaXRpb25hbEFyZ3MpO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZExpbmVTdWZmaXggPSBleHRyYUFyZ3Muam9pbignICcpO1xuICBjb25zdCBrdWJlbGV0RXh0cmFBcmdzU3VmZml4ID0gb3B0aW9ucy5rdWJlbGV0RXh0cmFBcmdzIHx8ICcnO1xuXG4gIC8vIGRldGVybWluZSBsaWZlY3ljbGUgbGFiZWwgYmFzZWQgb24gd2hldGhlciB0aGUgQVNHIGhhcyBhIHNwb3QgcHJpY2UuXG4gIGNvbnN0IGxpZmVjeWNsZUxhYmVsID0gYXV0b1NjYWxpbmdHcm91cC5zcG90UHJpY2UgPyBMaWZlY3ljbGVMYWJlbC5TUE9UIDogTGlmZWN5Y2xlTGFiZWwuT05fREVNQU5EO1xuICBjb25zdCB3aXRoVGFpbnRzID0gYXV0b1NjYWxpbmdHcm91cC5zcG90UHJpY2UgPyAnLS1yZWdpc3Rlci13aXRoLXRhaW50cz1zcG90SW5zdGFuY2U9dHJ1ZTpQcmVmZXJOb1NjaGVkdWxlJyA6ICcnO1xuICBjb25zdCBrdWJlbGV0RXh0cmFBcmdzID0gYC0tbm9kZS1sYWJlbHMgbGlmZWN5Y2xlPSR7bGlmZWN5Y2xlTGFiZWx9ICR7d2l0aFRhaW50c30gJHtrdWJlbGV0RXh0cmFBcmdzU3VmZml4fWAudHJpbSgpO1xuXG4gIHJldHVybiBbXG4gICAgJ3NldCAtbyB4dHJhY2UnLFxuICAgIGAvZXRjL2Vrcy9ib290c3RyYXAuc2ggJHtjbHVzdGVyLmNsdXN0ZXJOYW1lfSAtLWt1YmVsZXQtZXh0cmEtYXJncyBcIiR7a3ViZWxldEV4dHJhQXJnc31cIiAke2NvbW1hbmRMaW5lU3VmZml4fWAudHJpbSgpLFxuICAgIGAvb3B0L2F3cy9iaW4vY2ZuLXNpZ25hbCAtLWV4aXQtY29kZSAkPyAtLXN0YWNrICR7c3RhY2suc3RhY2tOYW1lfSAtLXJlc291cmNlICR7YXNnTG9naWNhbElkfSAtLXJlZ2lvbiAke3N0YWNrLnJlZ2lvbn1gLFxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQm90dGxlcm9ja2V0VXNlckRhdGEoY2x1c3RlcjogSUNsdXN0ZXIpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbXG4gICAgJ1tzZXR0aW5ncy5rdWJlcm5ldGVzXScsXG4gICAgYGFwaS1zZXJ2ZXI9XCIke2NsdXN0ZXIuY2x1c3RlckVuZHBvaW50fVwiYCxcbiAgICBgY2x1c3Rlci1jZXJ0aWZpY2F0ZT1cIiR7Y2x1c3Rlci5jbHVzdGVyQ2VydGlmaWNhdGVBdXRob3JpdHlEYXRhfVwiYCxcbiAgICBgY2x1c3Rlci1uYW1lPVwiJHtjbHVzdGVyLmNsdXN0ZXJOYW1lfVwiYCxcbiAgXTtcbn1cblxuLyoqXG4gKiBUaGUgbGlmZWN5Y2xlIGxhYmVsIGZvciBub2RlIHNlbGVjdG9yXG4gKi9cbmV4cG9ydCBlbnVtIExpZmVjeWNsZUxhYmVsIHtcbiAgLyoqXG4gICAqIG9uLWRlbWFuZCBpbnN0YW5jZXNcbiAgICovXG4gIE9OX0RFTUFORCA9ICdPbkRlbWFuZCcsXG4gIC8qKlxuICAgKiBzcG90IGluc3RhbmNlc1xuICAgKi9cbiAgU1BPVCA9ICdFYzJTcG90Jyxcbn1cbiJdfQ==