All files / services/platformsh-varnish builder.js

0% Statements 0/8
0% Branches 0/1
0% Functions 0/3
0% Lines 0/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40                                                                               
'use strict';
 
// Modules
const _ = require('lodash');
 
// Builder
module.exports = {
  name: 'platformsh-varnish',
  config: {
    confSrc: __dirname,
    moreHttpPorts: ['8080', '8081'],
    supportedIgnore: true,
  },
  parent: '_platformsh_service',
  builder: (parent, config) => class LandoPlatformshVarnish extends parent {
    constructor(id, options = {}, factory) {
      options = _.merge({}, config, options);
 
      // Get the services we depend on
      const backends = _(_.get(options, 'platformsh.relationships'), [])
        .map(backend => _.first(backend.split(':')))
        .value();
 
      // Build varnish
      const varnish = {
        image: `docker.registry.platform.sh/varnish-${options.version}`,
        ports: options.moreHttpPorts,
        depends_on: backends,
        environment: {
          LANDO_WEBROOT_USER: options.meUser,
          LANDO_WEBROOT_GROUP: options.meUser,
        },
      };
 
      // Add in the varnish service and push downstream
      super(id, options, {services: _.set({}, options.name, varnish)});
    };
  },
};