• 大小: 1.86MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-04
  • 语言: 其他
  • 标签: 开源项目  

资源简介

Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。Spinnaker 组件:Spinnaker 最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交付平台,能够实现:通过灵活和可配置的管道实现可重复的自动部署提供一个所有环境的全局视图,一个应用程序可以看见自己的在所属管道中的状态通过一致且可靠的API,提供可编程配置易于配置、维护和扩展兼容Asgard特性同时,Spinnaker作为云平台部署工具,Spinnaker团队和Google、微软、Pivotal等公司合作,致力于提供在多种平台上实现开箱即用的集群管理和部署功能。目前,Spinnaker可以部署管理AWS和Google云平台(GCP),针对Azure等平台的支持也在进行中。Spinnaker主要包含2块内容,集群管理和部署管理。集群管理功能,主要用于管理云上的资源。集群管理将云上资源做了逻辑划分:机器组:机器组是Spinnaker管理资源的单位。机器组标识了机器实例,并且关联了一个负载均衡器和安全组。每个机器组都拥有独立的配置信息(如机器帐号等);安全组:安全组定义了网络访问权限,也就是一般意义上的一组防火墙规则;负载均衡器:负载均衡器用于将网络流量重定向到机器组中的机器实例,负载均衡器还可以指定一系列规则,用于对机器组中的机器实例做健康检查;集群:集群是由用户定义的,对机器组的逻辑分组;部署管理功能用于创建一个持续交付流程。部署管理的核心是管道,在Spinnaker的定义中,管道由一系列的阶段(stages)组成。管道可以
由Jenkins、定时器、其他管道或者人工触发。同时,管道可以配置参数和通知,可以在管道一些节点上发出消息。Spinnaker已经内置了一些阶
段,如执行自定义脚本、触发Jenkins任务等。介绍来自 InfoQ


标签:Spinnaker

资源截图

代码片段和文件信息

#!/usr/bin/python
#
# Copyright 2017 Google Inc. 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.

“““Orchestrates building component GCP VM images for a Spinnaker release.
“““

import argparse
import multiprocessing
import os
import sys


from build_release import run_shell_and_log BuildFailure


SUBSYSTEM_LIST = [‘clouddriver‘ ‘deck‘ ‘echo‘ ‘fiat‘ ‘front50‘ ‘gate‘
                  ‘igor‘ ‘orca‘ ‘rosco‘ ‘consul‘ ‘redis‘ ‘vault‘]


class ComponentVmBuilder(object):
  def __init__(self options):
    self.__account = options.account
    self.__build_failures = []
    self.__build_project = options.build_project
    self.__install_script = options.install_script
    self.__publish_project = options.publish_project
    self.__publish_script = options.publish_script
    self.__version = options.version
    self.__zone = options.zone

  def __do_build(self artifact):
    cmds = [
      ‘./build_google_component_image.sh --artifact {artifact} --account {account} ‘
      ‘--build_project {build_project} --install_script {install_script} ‘
      ‘--publish_project {publish_project} --publish_script {publish_script} ‘
      ‘--version {version} --zone {zone}‘.format(
        artifact=artifact
        account=self.__account
        build_project=self.__build_project
        install_script=self.__install_script
        publish_project=self.__publish_project
        publish_script=self.__publish_script
        version=self.__version
        zone=self.__zone
      )
    ]
    try:
      logfile = ‘{artifact}-vm-build.log‘.format(artifact=artifact)
      run_shell_and_log(cmds logfile cwd=os.path.abspath(os.path.dirname(__file__)))
    except Exception as ex:
      self.__build_failures.append(BuildFailure(artifact ex))

  def __check_build_failures(self):
    if self.__build_failures:
      msg_lines = [‘Builds failed:\n‘]
      should_exit = False
      for failure in self.__build_failures:
        if failure.component in SUBSYSTEM_LIST:
          should_exit = True
          msg_lines.append(‘Building component {} failed with exception:‘
                           ‘\n{}\n‘.format(failure.component failure.exception))
      if should_exit:
        msg = ‘\n‘.join(msg_lines)
        raise RuntimeError(msg)

  def build_component_images(self):
    pool = multiprocessing.pool.ThreadPool(processes=5) # Probably should be an argument.
    pool.map(self.__do_build SUBSYSTEM_LIST)
    self.__check_build_failures()

  @classmethod
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-07-15 01:10  spinnaker-master\
     文件          64  2019-07-15 01:10  spinnaker-master\.clog.toml
     目录           0  2019-07-15 01:10  spinnaker-master\.github\
     文件        1814  2019-07-15 01:10  spinnaker-master\.github\ISSUE_TEMPLATE.md
     文件        1048  2019-07-15 01:10  spinnaker-master\.github\PULL_REQUEST_TEMPLATE.md
     文件         210  2019-07-15 01:10  spinnaker-master\.gitignore
     文件        2309  2019-07-15 01:10  spinnaker-master\.travis.yml
     文件         218  2019-07-15 01:10  spinnaker-master\AUTHORS
     文件       11337  2019-07-15 01:10  spinnaker-master\LICENSE.txt
     文件        1255  2019-07-15 01:10  spinnaker-master\README.adoc
     文件         523  2019-07-15 01:10  spinnaker-master\approvers.md
     文件        2455  2019-07-15 01:10  spinnaker-master\build.gradle
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\
     文件         877  2019-07-15 01:10  spinnaker-master\codelabs\README.md
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\
     文件         333  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\.helmignore
     文件         100  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\Chart.yaml
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\templates\
     文件        1036  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\templates\_helpers.tpl
     文件         292  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\templates\configmap.yaml
     文件        1096  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\templates\deployment.yaml
     文件         419  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\templates\service.yaml
     文件         161  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\demo\values.yaml
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\production\
     文件         309  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\production\env.yaml
     文件         164  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\production\values.yaml
     目录           0  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\staging\
     文件         297  2019-07-15 01:10  spinnaker-master\codelabs\cicd-k8s-best-practice\app\manifests\staging\env.yaml
............此处省略439个文件信息

评论

共有 条评论