UNPKG

bixlabs-generator-jhipster

Version:

Spring Boot + Angular/React/Vue in one handy generator

100 lines (95 loc) 3.35 kB
/** * Copyright 2013-2021 the original author or authors from the JHipster project. * * This file is part of the JHipster project, see https://www.jhipster.tech/ * for more information. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const _ = require('lodash'); const DeploymentTypes = { DOCKERCOMPOSE: 'docker-compose', KUBERNETES: 'kubernetes', OPENSHIFT: 'openshift', exists: deploymentType => !!deploymentType && !!DeploymentTypes[deploymentType.toUpperCase().replace('-', '')], }; const Options = { deploymentType: { dockerCompose: DeploymentTypes.DOCKERCOMPOSE, rancherCompose: DeploymentTypes.RANCHERCOMPOSE, kubernetes: DeploymentTypes.KUBERNETES, openshift: DeploymentTypes.OPENSHIFT, }, gatewayType: { springCloudGateway: 'SpringCloudGateway', }, monitoring: { no: 'no', prometheus: 'prometheus', }, directoryPath: '../', appsFolders: [], clusteredDbApps: [], // adminPassword: 'admin', serviceDiscoveryType: { eureka: 'eureka', consul: 'consul', no: 'no', }, dockerRepositoryName: '', dockerPushCommand: 'docker push', // Kubernetes specific kubernetesNamespace: 'default', kubernetesServiceType: { loadBalancer: 'LoadBalancer', nodePort: 'NodePort', ingress: 'Ingress', }, ingressDomain: '', istio: { false: false, true: true, }, // openshift specific openshiftNamespace: 'default', storageType: { ephemeral: 'ephemeral', persistent: 'persistent', }, }; Options.defaults = (deploymentType = Options.deploymentType.dockerCompose) => _.omitBy( { deploymentType, gatewayType: Options.gatewayType.springCloudGateway, monitoring: Options.monitoring.no, directoryPath: Options.directoryPath, appsFolders: new Set(), clusteredDbApps: new Set(), adminPassword: Options.adminPassword, serviceDiscoveryType: Options.serviceDiscoveryType.eureka, dockerRepositoryName: Options.dockerRepositoryName, dockerPushCommand: Options.dockerPushCommand, kubernetesNamespace: deploymentType === Options.deploymentType.kubernetes ? Options.kubernetesNamespace : undefined, kubernetesServiceType: deploymentType === Options.deploymentType.kubernetes ? Options.kubernetesServiceType.loadBalancer : undefined, ingressDomain: deploymentType === Options.deploymentType.kubernetes ? Options.ingressDomain : undefined, istio: deploymentType === Options.deploymentType.kubernetes ? Options.istio.false : undefined, openshiftNamespace: deploymentType === Options.deploymentType.openshift ? Options.openshiftNamespace : undefined, storageType: deploymentType === Options.deploymentType.openshift ? Options.storageType.ephemeral : undefined, }, _.isUndefined ); module.exports = { Options, DeploymentTypes, };