Exemple #1
0
    def install_release(self,
                        chart,
                        namespace,
                        dry_run=False,
                        name=None,
                        values=None,
                        wait=False,
                        disable_hooks=False,
                        reuse_name=False,
                        disable_crd_hook=False,
                        description=""):
        """
        Create a Helm Release
        """

        values = Config(raw=yaml.safe_dump(values or {}))

        stub = ReleaseServiceStub(self._channel)
        release_request = InstallReleaseRequest(
            chart=chart,
            dry_run=dry_run,
            values=values,
            name=name or '',
            namespace=namespace,
            wait=wait,
            disable_hooks=disable_hooks,
            reuse_name=reuse_name,
            disable_crd_hook=disable_crd_hook,
            description=description)

        return stub.InstallRelease(release_request,
                                   self._timeout,
                                   metadata=self.metadata)
Exemple #2
0
    def install_release(self,
                        chart,
                        dry_run,
                        name,
                        namespace,
                        prefix,
                        values=None,
                        wait=False,
                        timeout=None):
        '''
        Create a Helm Release
        '''
        LOG.debug("wait: %s", wait)
        LOG.debug("timeout: %s", timeout)

        if values is None:
            values = Config(raw='')
        else:
            values = Config(raw=values)

        # build release install request
        stub = ReleaseServiceStub(self.channel)
        release_request = InstallReleaseRequest(chart=chart,
                                                dry_run=dry_run,
                                                values=values,
                                                name="{}-{}".format(
                                                    prefix, name),
                                                namespace=namespace,
                                                wait=wait,
                                                timeout=timeout)

        return stub.InstallRelease(release_request,
                                   self.timeout,
                                   metadata=self.metadata)
Exemple #3
0
    def install_release(self, chart, release, namespace,
                        dry_run=False,
                        values=None,
                        wait=False,
                        timeout=None):
        '''
        Create a Helm Release
        '''

        LOG.info("Wait: %s, Timeout: %s", wait, timeout)

        if values is None:
            values = Config(raw='')
        else:
            values = Config(raw=values)

        # build release install request
        try:
            stub = ReleaseServiceStub(self.channel)
            release_request = InstallReleaseRequest(
                chart=chart,
                dry_run=dry_run,
                values=values,
                name=release,
                namespace=namespace,
                wait=wait,
                timeout=timeout)

            return stub.InstallRelease(
                release_request, self.timeout, metadata=self.metadata)

        except Exception:
            status = self.get_release_status(release)
            raise ex.ReleaseException(release, status, 'Install')
Exemple #4
0
    def install_release(self, chart, dry_run, name, namespace, values=None):
        '''
        Create a Helm Release
        '''

        if values is None:
            values = Config(raw='')
        else:
            values = Config(raw=values)

        # build release install request
        stub = ReleaseServiceStub(self.channel)
        release_request = InstallReleaseRequest(
            chart=chart,
            dry_run=dry_run,
            values=values,
            name=name,
            namespace=namespace)
        return  stub.InstallRelease(release_request, self.timeout, metadata=self.metadata)
Exemple #5
0
    def install_release(self, chart, namespace, dry_run=False,
                        name=None, values=None):
        """
        Create a Helm Release
        """

        values = Config(raw=yaml.safe_dump(values or {}))

        # build release install request
        stub = ReleaseServiceStub(self.channel)
        release_request = InstallReleaseRequest(
            chart=chart,
            dry_run=dry_run,
            values=values,
            name=name or '',
            namespace=namespace)
        return stub.InstallRelease(release_request,
                                   self.timeout,
                                   metadata=self.metadata)
Exemple #6
0
    def install_release(self,
                        chart,
                        namespace,
                        disable_hooks=False,
                        reuse_name=False,
                        disable_crd_hook=False,
                        timeout=REQUEST_TIMEOUT,
                        dry_run=False,
                        name=None,
                        values=None):
        """安装release
        Args:
            :params - chart - chart 元数据,由函数生成
            :params - name - release name,为空时随机生成
            :params - namespace - kubernetes namespace
            :params - dry_run - simulate an install
            :params - values - 额外的values,用来进行value值替换
            :params - disable_hooks - prevent hooks from running during install(bool)
            :params - disable_crd_hook - prevent CRD hooks from running, but run other hooks(bool)
            :params - reuse_name - re-use the given name, even if that name is already used. This is unsafe in production(bool)
            :params - timeout - time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300)
        Returns:
            返回安装release的grpc响应对象
        """

        #values = Config(raw=yaml.safe_dump(values or {}))

        # build release install request
        stub = ReleaseServiceStub(self.channel)
        release_request = InstallReleaseRequest(
            chart=chart,
            disable_hooks=disable_hooks,
            reuse_name=reuse_name,
            disable_crd_hook=disable_crd_hook,
            dry_run=dry_run,
            timeout=timeout,
            values=values,
            name=name or '',
            namespace=namespace)
        return stub.InstallRelease(release_request,
                                   self.timeout,
                                   metadata=self.metadata)
Exemple #7
0
    def get_chart_templates(self, template_name, name, release_name, namespace,
                            chart, disable_hooks, values):
        # returns some info

        LOG.info("Template( %s ) : %s ", template_name, name)

        stub = ReleaseServiceStub(self.channel)
        release_request = InstallReleaseRequest(chart=chart,
                                                dry_run=True,
                                                values=values,
                                                name=name,
                                                namespace=namespace,
                                                wait=False)

        templates = stub.InstallRelease(release_request,
                                        self.timeout,
                                        metadata=self.metadata)

        for template in yaml.load_all(
                getattr(templates.release, 'manifest', [])):
            if template_name == template.get('metadata',
                                             None).get('name', None):
                LOG.info(template_name)
                return template
Exemple #8
0
    def install_release(self,
                        chart,
                        release,
                        namespace,
                        dry_run=False,
                        values=None,
                        wait=False,
                        timeout=None):
        '''
        Create a Helm Release
        '''
        LOG.debug("wait: %s", wait)
        LOG.debug("timeout: %s", timeout)

        if values is None:
            values = Config(raw='')
        else:
            values = Config(raw=values)

        # build release install request
        try:
            stub = ReleaseServiceStub(self.channel)
            release_request = InstallReleaseRequest(chart=chart,
                                                    dry_run=dry_run,
                                                    values=values,
                                                    name=release,
                                                    namespace=namespace,
                                                    wait=wait,
                                                    timeout=timeout)

            return stub.InstallRelease(release_request,
                                       self.timeout,
                                       metadata=self.metadata)

        except Exception:
            raise tiller_exceptions.ReleaseInstallException(release, namespace)