AWS EKSをCodePipelineから操作するメモ

内容

  • CodeBuildeでkubectl applyを実施したい
  • エラーerror: You must be logged in to the server (Unauthorized)
    • CodeBuildでkubectlしたいが、このエラーが出てしまう

参考ページ

dev.classmethod.jp

qiita.com

メモ

  • 基本的に上記クラスメソッドさんのブログのように進めればOK
    1. EKS, EKSノードグループ作成
    2. CodePipeline, CodeBuild作成
    3. CodeBuildのロールの調整(CodeBuildがkubectlできるようにする)

上記 CodeBuildのロールの調整(CodeBuildがkubectlできるようにする)これでハマった

  • 上記ブログにもあるように、EKSクラスタのConfigMap情報を編集する必要がある
    • CodeBuildがEKSクラスタにアクセスできるような設定にしてやる必要がある
  • EKSクラスタにログインできるコンソールから以下のコマンドを実行してaws-auth
$ kubectl edit -n kube-system configmap/aws-auth

これでCodebuilで使用するロール情報を追記してやる必要がある

    - rolearn: <CodeBuildのサービスロールのARN>
      username: codebuild
      groups:
        - system:masters

これを追記

CodeBuildのサービスロールのARNについて

  • CodeBuildにアタッチしてあるロールを見てみると以下のようになってる
    • arn:aws:iam::xxxxxxxxx:role/service-role/codebuild-role
  • このarnrolearnとして記載してもうまくいかない
  • 上記Qiitaブログに書いてあるが
○: arn:aws:iam::xxxxx:role/codebuild-hoge-service-role
×: arn:aws:iam::xxxxx:role/service-role/codebuild-hoge-service-role

ということらしい