Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
 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)
Пример #4
0
    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