UNPKG

gen-jhipster

Version:

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

130 lines (129 loc) 4.54 kB
/** * Copyright 2013-2024 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. */ import kubernetesPlatformTypes from './kubernetes-platform-types.js'; import monitoringTypes from './monitoring-types.js'; import serviceDiscoveryTypes from './service-discovery-types.js'; const { LOAD_BALANCER, NODE_PORT, INGRESS } = kubernetesPlatformTypes.ServiceTypes; const { NGINX, GKE } = kubernetesPlatformTypes.IngressTypes; const { EUREKA, CONSUL } = serviceDiscoveryTypes; const NO_SERVICE_DISCOVERY = serviceDiscoveryTypes.NO; const NO_MONITORING = monitoringTypes.NO; const { PROMETHEUS } = monitoringTypes; export const DeploymentTypes = { DOCKERCOMPOSE: 'docker-compose', KUBERNETES: 'kubernetes', exists: (deploymentType) => !!deploymentType && !!DeploymentTypes[deploymentType.toUpperCase().replace('-', '')], }; const kubernetesRelatedOptions = { kubernetesNamespace: 'default', kubernetesServiceType: { loadBalancer: LOAD_BALANCER, nodePort: NODE_PORT, ingress: INGRESS, }, kubernetesStorageClassName: '', kubernetesUseDynamicStorage: { false: false, true: true, }, ingressDomain: '', ingressType: { nginx: NGINX, gke: GKE, }, istio: { false: false, true: true, }, }; const dockerComposeRelatedOptions = { gatewayType: { springCloudGateway: 'SpringCloudGateway', }, }; const baseOptions = { appsFolders: [], clusteredDbApps: [], directoryPath: '../', monitoring: { no: NO_MONITORING, prometheus: PROMETHEUS, }, serviceDiscoveryType: { eureka: EUREKA, consul: CONSUL, no: NO_SERVICE_DISCOVERY, }, }; const Options = { ...baseOptions, deploymentType: { dockerCompose: DeploymentTypes.DOCKERCOMPOSE, kubernetes: DeploymentTypes.KUBERNETES, }, dockerPushCommand: 'docker push', dockerRepositoryName: '', ...dockerComposeRelatedOptions, ...kubernetesRelatedOptions, }; Options.defaults = (deploymentType = Options.deploymentType.dockerCompose) => { if (deploymentType === Options.deploymentType.kubernetes) { return { appsFolders: [], directoryPath: Options.directoryPath, clusteredDbApps: [], serviceDiscoveryType: Options.serviceDiscoveryType.consul, dockerRepositoryName: Options.dockerRepositoryName, dockerPushCommand: Options.dockerPushCommand, kubernetesNamespace: Options.kubernetesNamespace, kubernetesServiceType: Options.kubernetesServiceType.loadBalancer, kubernetesUseDynamicStorage: Options.kubernetesUseDynamicStorage.false, kubernetesStorageClassName: Options.kubernetesStorageClassName, ingressDomain: Options.ingressDomain, monitoring: Options.monitoring.no, istio: Options.istio.false, }; } if (deploymentType === Options.deploymentType.dockerCompose) { return { appsFolders: [], directoryPath: Options.directoryPath, gatewayType: Options.gatewayType.springCloudGateway, clusteredDbApps: [], monitoring: Options.monitoring.no, serviceDiscoveryType: Options.serviceDiscoveryType.consul, }; } return { appsFolders: [], directoryPath: Options.directoryPath, clusteredDbApps: [], serviceDiscoveryType: Options.serviceDiscoveryType.consul, monitoring: Options.monitoring.no, dockerRepositoryName: Options.dockerRepositoryName, dockerPushCommand: Options.dockerPushCommand, storageType: Options.storageType.ephemeral, registryReplicas: Options.registryReplicas.two, }; }; export { Options }; export default { Options, DeploymentTypes, };