def get_helm_chart(self): ''' Return a helm chart object ''' if self._helm_chart: return self._helm_chart # dependencies # [process_chart(x, is_dependency=True) for x in chart.dependencies] dependencies = [] for dep in self.chart.dependencies: LOG.info("Building dependency chart %s for release %s", self.chart.chart_name, self.chart.release) try: dependencies.append(ChartBuilder(dep.chart).get_helm_chart()) except Exception: chart_name = self.chart.chart_name raise chartbuilder_exceptions.DependencyException(chart_name) try: helm_chart = Chart( metadata=self.get_metadata(), templates=self.get_templates(), dependencies=dependencies, values=self.get_values(), files=self.get_files()) except Exception: chart_name = self.chart.chart_name raise chartbuilder_exceptions.HelmChartBuildException(chart_name) self._helm_chart = helm_chart return helm_chart
def get_helm_chart(self): '''Return a Helm chart object. Constructs a :class:`hapi.chart.chart_pb2.Chart` object from the ``chart`` intentions, including all dependencies. ''' if self._helm_chart: return self._helm_chart dependencies = [] chart_dependencies = self.chart_data.get('dependencies', []) chart_name = self.chart['metadata']['name'] chart_release = self.chart_data.get('release', None) for dep_chart in chart_dependencies: dep_chart_name = dep_chart['metadata']['name'] LOG.info("Building dependency chart %s for release %s.", dep_chart_name, chart_release) try: dependencies.append(ChartBuilder(dep_chart).get_helm_chart()) except Exception: raise chartbuilder_exceptions.DependencyException(chart_name) try: helm_chart = Chart(metadata=self.get_metadata(), templates=self.get_templates(), dependencies=dependencies, values=self.get_values(), files=self.get_files()) except Exception as e: raise chartbuilder_exceptions.HelmChartBuildException(chart_name, details=e) self._helm_chart = helm_chart return helm_chart
def get_helm_chart(self, release_id, values): '''Return a Helm chart object. ''' LOG.debug("Building chart %s from path %s", self.name, self.source_directory) try: result = self.helm.upgrade_release(self.source_directory, release_id, values=values, dry_run=True) return result['chart'] except Exception as e: raise chartbuilder_exceptions.HelmChartBuildException(self.name, details=e)
def _get_helm_chart(self): LOG.info("Building chart %s from path %s", self.name, self.source_directory) dependencies = [] for dep_builder in self.dependency_builders: LOG.info("Building dependency chart %s for chart %s.", dep_builder.name, self.name) try: dependencies.append(dep_builder.get_helm_chart()) except Exception: raise chartbuilder_exceptions.DependencyException(self.name) try: helm_chart = Chart(metadata=self.get_metadata(), templates=self.get_templates(), dependencies=dependencies, values=self.get_values(), files=self.get_files()) except Exception as e: raise chartbuilder_exceptions.HelmChartBuildException(self.name, details=e) return helm_chart