@provisioner/common
Version:
Common stuff for provisioners
31 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceHelper = void 0;
const contracts_1 = require("@provisioner/contracts");
class ServiceHelper extends contracts_1.ServiceHelper {
async awaitAddress(cluster, waitingMessage) {
let ip = null;
let hostname = null;
await cluster.
begin(waitingMessage)
.beginWatch(this.resource)
.whenWatch(({ obj }) => { var _a, _b, _c, _d, _e, _f, _g; return ((_c = (_b = (_a = obj.status) === null || _a === void 0 ? void 0 : _a.loadBalancer) === null || _b === void 0 ? void 0 : _b.ingress) === null || _c === void 0 ? void 0 : _c.length) && (((_e = (_d = obj.status) === null || _d === void 0 ? void 0 : _d.loadBalancer) === null || _e === void 0 ? void 0 : _e.ingress[0].ip) || ((_g = (_f = obj.status) === null || _f === void 0 ? void 0 : _f.loadBalancer) === null || _g === void 0 ? void 0 : _g.ingress[0].hostname)); }, (processor, service) => {
ip = service.status.loadBalancer.ingress[0].ip;
hostname = service.status.loadBalancer.ingress[0].hostname;
processor.endWatch();
})
.end();
return { ip, hostname };
}
}
exports.ServiceHelper = ServiceHelper;
ServiceHelper.from = (namespace, name) => new ServiceHelper(contracts_1.ServiceHelper.template(namespace, name));
ServiceHelper.template = (namespace, name) => ({
apiVersion: 'v1',
kind: 'Service',
metadata: {
...(namespace ? { namespace } : undefined),
...(name ? { name } : undefined),
}
});
//# sourceMappingURL=service.js.map