本节我们将创建CodePipeline项目,它将实现自动构建项目并部署到EKS
的功能。
进入AWS CodePipeline页面,点击Create Pipeline
Pipeline名称:eks-with-codepipeline
, 其他选项保持默认,进入下一步:
在Add source stage
步骤,选择Github version 2
, 并点击Connect to GitHub
:
在新弹出的页面里为Connect命名:eks-with-codepipeline
,并点击Connect to Github
:
完成Github页面的授权后,在原来的页面点击Install a new app
:
完成授权后,会自动生成好APP名称并回到原来的页面:
选择之前Fork的仓库名称,选择master
分支:
进入下一步,在Build Stage
点击Create project
, 将会打开一个新的页面,在里面配置CodeBuild的属性:
在新打开的CodeBuild页面,为CodeBuild项目命名为golang-builder
。
在Environment配置部分,选择以下属性:
展开Additional configuration
选项,添加以下环境变量:
REPOSITORY_URI
: 使用创建ECR
一节中,最后部分复制的URIREPOSITORY_NAME
: 和github保持一致REPOSITORY_BRANCH
: masterEKS_CLUSTER_NAME
: 当前使用的EKS集群名称EKS_KUBECTL_ROLE_ARN
: arn:aws:iam::{account_id}:role/EksWorkshopCodeBuildKubectlRole
, 第一节中已经复制过![image-20220313144803486](/Users/kongpingfan/Library/Application Support/typora-user-images/image-20220313144803486.png)
其他选项保持默认,下拉到底部,点击Continue to CodePipeline
:
回到CodePipeline
页面后,继续我们的创建旅程。点击Next
:
我们不需要添加deploy stage,因为Code Build已经帮我们完成了所有的部署工作。所以点击Skip deploy stage
:
最后点击Create pipeline
:
第一次创建完成后,会自动触发流水线。
在走到Build
步骤,会执行出错,因为CodeBuild使用role是自动创建的,而这个role默认没有访问ECR的权限,所以中间的编译过程会出错。
经过上面较为复杂的配置,我们的CodePipeline项目终于创建完成了。下一节我们将修复对应的权限问题,并将流水线调试通