资源简介
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
由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个文件信息
相关资源
- 去中心化的网站ZeroNet.zip
- .Net开源博客MZBlog.zip
- 云笔记APP开源项目
- PSOC4血压血氧仪开源项目
- golang值得学习的优秀开源项目4合1
- Swifty屏幕适配解决方案.zip
- 专注于非越狱环境下iOS应用逆向研究
- 微聊APP 聊天功能的开源APP项目
- 百度手环开源项目全套资料(设计文
- 开源项目PLC通信工具 HslCommunication 测
- 基于Yii开发的博客dlfblog.zip
- mallmall 项目是一套电商系统,包括前
- 街机游戏C-DogsSDL.zip
- RTKLIB开源项目(2.4.3)
-
SonarPluginforob
jectiveC.zip - 服务发现系统SkyDNS.zip
- 聊天机器人Lita.zip
- GPS3.0版本
- 如何阅读源代码,开源项目
- wkt转arcgis之geometry第三方组件来自开源
- google word2vec开源项目
- FastDFS的Go客户端fdfs_client.zip
- 几十个开源项目28G设计资料,适用于
- 倒计时屏保.zip
- 七牛云存储同步程序七牛云盘.zip
- 快速可靠网络传输协议KCP.zip
- 开源数据质量解决方案ApacheGriffin.zi
- P2P 自建 DHT 搜索引擎.zip
- jeecg-bootJeecg-Boot 是一款基于代码生成
- gbyk-微信小程序Demo:隔壁有坑UI界面十
评论
共有 条评论