workflows:test:plan:steps:- env:name: ENV_NAMEcommand: 'echo "dynamic-value-$(date)"'- run: terraform${ATLANTIS_TERRAFORM_VERSION} fmt -check=true -write=false -diff=true- init- planapply:steps:- apply需显示申明使用此workflow 如 "workflow: test", 完整 Atlantis yaml 参考

文章插图

文章插图
---version: 3automerge: truedelete_source_branch_on_merge: trueprojects:- name: project-demodir: Terraform/quick_demoterraform_version: 1.2.9autoplan:when_modified:- '**/*.tf'- name: project-module-demodir: Terraform/module_demo/project_1terraform_version: 1.2.9workflow: testautoplan:when_modified:- '**/*.tf'# (Optional) custom workflowsworkflows:test:plan:steps:- env:name: ENV_NAMEcommand: 'echo "dynamic-value-$(date)"'- run: terraform${ATLANTIS_TERRAFORM_VERSION} fmt -check=true -write=false -diff=true- init- planapply:steps:- applyatlantis.yaml
测试

文章插图
总结我们的Terraform 代码结构是按环境分成不同的folder,这样做的好处是可以通过github CODEOWNERS文件来针对不同的文件夹(环境)给不同的组权限 。比如以下例子给予group-dev权限审批这个folder project-xx/dev下面的Terraform代码变化 。
* @sreTerraform/project-xx/dev/** @group-devTerraform/project-xx/prod/** @sre
我们也试过同一套代码利用Terraform的工作区workspace 来区分环境,实践下来不如上面的结构灵活,维护性差 。
感谢阅读,如果您觉得本文的内容对您的学习有所帮助,您可以打赏和推荐,您的鼓励是我创作的动力 。
经验总结扩展阅读
- 飞云防盗门质量怎么样?
- 云顶之弈玉龙半神狗熊阵容怎么玩
- 云吞是馄饨吗
- 云南最出名的8道名菜 云南旅游必吃美食
- 云南什么水果最出名 盘点云南最著名的10种水果
- 京东云开发者|经典同态加密算法Paillier解读 - 原理、实现和应用
- 九州海上牧云记苏语凝结局是什么?
- 书涵素云是什么电视剧中的人物?
- 云南音乐节2023时间表
- 10月30日北京今日阴到多云 明天冷空气携大风降温来袭最低气温降至2℃
