创建CodePipeline项目

本节我们将创建CodePipeline项目,它将实现自动构建项目并部署到EKS的功能。

创建CodePipeline项目

进入AWS CodePipeline页面,点击Create Pipeline

image-20220313172717633

Pipeline名称:eks-with-codepipeline, 其他选项保持默认,进入下一步:

image-20220313143143297

Add source stage步骤,选择Github version 2, 并点击Connect to GitHub:

image-20220313144228428

在新弹出的页面里为Connect命名:eks-with-codepipeline,并点击Connect to Github:

image-20220313144337577

完成Github页面的授权后,在原来的页面点击Install a new app:

image-20220313144358096

完成授权后,会自动生成好APP名称并回到原来的页面:

image-20220313144420726

选择之前Fork的仓库名称,选择master分支:

image-20220313144500236

进入下一步,在Build Stage点击Create project, 将会打开一个新的页面,在里面配置CodeBuild的属性:

image-20220313144538414


在新打开的CodeBuild页面,为CodeBuild项目命名为golang-builder

在Environment配置部分,选择以下属性:

image-20220313144642009

展开Additional configuration选项,添加以下环境变量:

  • REPOSITORY_URI: 使用创建ECR一节中,最后部分复制的URI
  • REPOSITORY_NAME: 和github保持一致
  • REPOSITORY_BRANCH: master
  • EKS_CLUSTER_NAME: 当前使用的EKS集群名称
  • EKS_KUBECTL_ROLE_ARNarn:aws:iam::{account_id}:role/EksWorkshopCodeBuildKubectlRole, 第一节中已经复制过

![image-20220313144803486](/Users/kongpingfan/Library/Application Support/typora-user-images/image-20220313144803486.png)

其他选项保持默认,下拉到底部,点击Continue to CodePipeline:

image-20220313145109404

回到CodePipeline页面后,继续我们的创建旅程。点击Next:

image-20220313145135141

我们不需要添加deploy stage,因为Code Build已经帮我们完成了所有的部署工作。所以点击Skip deploy stage:

image-20220313145212999

最后点击Create pipeline:

image-20220313145238148

第一次创建完成后,会自动触发流水线。

在走到Build步骤,会执行出错,因为CodeBuild使用role是自动创建的,而这个role默认没有访问ECR的权限,所以中间的编译过程会出错。

image-20220313145910946

经过上面较为复杂的配置,我们的CodePipeline项目终于创建完成了。下一节我们将修复对应的权限问题,并将流水线调试通