diff options
author | Dhrumin Desai <dd303q@att.com> | 2021-10-27 11:22:32 -0400 |
---|---|---|
committer | Dhrumin Desai <dd303q@att.com> | 2021-10-27 14:25:03 -0400 |
commit | f98abd8de6b9457a7edcd3457e664bd9200de2bf (patch) | |
tree | 1bef23b20bc5d9bd10d5f7f1686335dadc3a84ef /mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java | |
parent | 0bae36245d468db7232bedc896f7d26681b14e03 (diff) |
Add cmpv2Certificate flag, removed hyphens from config under postgres and enhanced Readme file
Issue-ID: DCAEGEN2-2948
Issue-ID: DCAEGEN2-2949
Issue-ID: DCAEGEN2-2950
Issue-ID: DCAEGEN2-2951
Change-Id: I2de3c1906ec0c967a233d40288338b76acc0dbeb
Signed-off-by: Dhrumin Desai <dd303q@att.com>
Diffstat (limited to 'mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java')
-rw-r--r-- | mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java b/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java new file mode 100644 index 0000000..3aff2f0 --- /dev/null +++ b/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/chartbuilder/AddOnsManager.java @@ -0,0 +1,81 @@ +/* + * # ============LICENSE_START======================================================= + * # Copyright (c) 2021 AT&T Intellectual Property. All rights reserved. + * # ================================================================================ + * # 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 + * # + * # http://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. + * # ============LICENSE_END========================================================= + */ + +package org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; +import org.onap.dcaegen2.platform.helmchartgenerator.Utils; +import org.onap.dcaegen2.platform.helmchartgenerator.models.componentspec.base.ComponentSpec; +import org.onap.dcaegen2.platform.helmchartgenerator.models.componentspec.common.TlsInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * manages addOn template files + */ +@Slf4j +@Component +public class AddOnsManager { + + public AddOnsManager(Utils utils) { + this.utils = utils; + } + + @Autowired + private Utils utils; + + /** + * include addons template files based on parameters in componentSpec file + * @param specFileLocation spec file location + * @param chart chart directory + * @param chartTemplateLocation chart template location + */ + public void includeAddons(String specFileLocation, File chart, String chartTemplateLocation) { + if(externalTlsExists(specFileLocation)){ + includeCertificateYamlAddOn(chart, chartTemplateLocation); + } + } + + private void includeCertificateYamlAddOn(File chart, String chartTemplateLocation) { + Path certificateYaml = Paths.get(chartTemplateLocation, "addons/templates/certificates.yaml"); + if(!Files.exists(certificateYaml)) { + throw new RuntimeException("certificates.yaml not found under templates directory in addons"); + } + try { + File templates = new File(chart, "templates"); + FileUtils.copyFileToDirectory(certificateYaml.toFile(), templates); + } catch (IOException e) { + log.error(e.getMessage(), e); + throw new RuntimeException("could not add certificates.yaml to templates directory"); + } + } + + private boolean externalTlsExists(String specFileLocation) { + ComponentSpec cs = utils.deserializeJsonFileToModel(specFileLocation, ComponentSpec.class); + TlsInfo tlsInfo = cs.getAuxilary().getTlsInfo(); + return tlsInfo != null && tlsInfo.getUseExternalTls() != null && tlsInfo.getUseExternalTls(); + } +} + |