用于创建基础结构和spinnaker管道的工具。
foremast的Python项目详细描述
Foremast是一个Spinnaker管道和基础设施配置 模板工具。只需创建几个json配置文件,然后 手动创建spinnaker管道已成为过去。
为什么是Foremast?
- 在spinnaker用户界面中没有手动创建管道
- 可复制和版本化的Spinnaker管道 适用于特殊需要的标准化柔性管线<
使用foremast,开发人员为每个应用程序创建两个简单的json配置。 这些配置提供特定于 应用程序的需要。前桅拿着那些配置,呈现出一些Jinja2 模板,然后充当spinnaker gate api的客户端。前桅来了 使用用于创建简单管道的通用模板,但它也可以指向 适合任何工作流的自定义管道的外部模板。
前导功能
- 基于json配置动态生成spinnaker管道
- 通过外部Jinja2模板的可自定义管道,请参见Foremast templates以获取示例
- 基于管道配置动态生成aws基础设施
- 设置在spinnaker中未定义的资源,如s3存储桶和iam角色
- 支持AWS Lambda管道
开始
查看quick start guide快速介绍如何使用 前桅。
我们还有一篇博客文章可以帮助您开始:Automate Spinnaker Pipeline Creation
文件
所有文档都可以在Read the Docs上查看。你可以找到所有 配置选项、代码信息和更好的示例。
发展
有关代码样式、贡献和 测试。
获得帮助
有关问题、支持或友好对话,您可以在Gitter上找到我们。
更多详细信息
安装
为了方便起见,安装该包将提供cli命令。
virtualenv -p python3 venv
source venv/bin/activate
pip install foremast
入口点
foremast有几个易于使用的cli端点。
- foremast-pipeline-创建应用程序和管道微调器
- foremast-infrastructure-设置aws基础设施,如s3、iam、elb, 和安全组
- foremast-pipeline-onetime-生成用于部署到一个的管道 特定账户
- foremast-scaling-policy-创建缩放策略并将其附加到 应用程序服务器组。
- foremast-pipeline-rebuild-更改后重新生成管道 制造
您可以从命令行运行这些条目点中的任何一个。他们依赖 环境变量,非常适合在Jenkins工作中运行
PROJECT=forrest GIT_REPO=core RUNWAY_DIR=path/to/pipeline_configs foremast-pipeline
前桅结构
位于{pwd}/.foremast/foremast.cfg、~/.foremast/foremast.cfg的文件,或 为了运行前行,需要存在{TT8}$。
[base]domain= example.com envs= dev,stage,prod regions= us-east-1 gate_api_url= http://gate.example.com:8084
跑道配置文件
要开始使用foremast,必须定义几个json配置文件 对于每个应用程序
管道.json
每个应用程序都需要此文件。foremast有很多缺点 在pipeline.json中,查看pipeline.json文档 所有选项。
最小值
{"deployment":"spinnaker"}
示例部署环境覆盖
自定义部署环境顺序和选择可以在 env键。如果缺少,则提供的默认值为{"env": ["stage", "prod"]}。在这里,订单和管道将在给定的 命令。
{"deployment":"spinnaker","env":["prod"]}
应用程序母版-{env}.json
在pipeline.json文件中指定的每个部署环境都需要 在同一目录中附带的application-master-{env}.json文件。
“application master-{env}文件有许多公开的值 默认值。请查看所有选项的application.json文档。
application master-{env}.json示例
{"security_group":{"description":"something useful","elb_extras":["sg_offices"],"ingress":{},"egress":"0.0.0.0/0"},"app":{"instance_type":"t2.small","app_description":"Edge Forrest Demo application","instance_profile":"forrest_edge_profile"},"elb":{"subnet_purpose":"internal","target":"TCP:8080","ports":[{"loadbalancer":"HTTP:80","instance":"HTTP:8080"}]},"asg":{"subnet_purpose":"internal","min_inst":1,"max_inst":1,"scaling_policy":{"metric":"CPUUtilization","threshold":90,"period_minutes":10,"statistic":"Average"}},"regions":["us-east-1"],"dns":{"ttl":120}}