GeekFactory

int128.hatenablog.com

2019-09-01から1ヶ月間の記事一覧

AWS Cluster AutoscalerをTerraformとHelmfileでデプロイする

Cluster Autoscalerを利用すると,CPUやメモリの要求量に応じてノード数を自動的に増減させることが可能です. 本稿では,Amazon EKSで以下を利用する方法を紹介します. terraform-aws-eks Module AWS Cluster Autoscaler stable/cluster-autoscaler Helm C…

GitLab RunnerとkanikoでDockerイメージをビルドする

DockerやKubernetesでGitLab Runnerを実行する場合,GitLab RunnerでDockerイメージをビルドするにはDocker in Dockerの特権モードを構成する必要があります.kanikoを利用すると,特権モードを使わずにDockerイメージをビルドできます. 本稿では,GitLab R…

terraform-aws-modules/acm/aws でTLS証明書を取得する

terraform-aws-modules/acm/aws を使うとACMの証明書を簡単に取得できます.コンソール作業が一切必要ないのがうれしい. 例えば,ドメイン foo.example.com のRoute53 Hosted Zoneが存在する前提で *.foo.example.com のTLS証明書を取得するには,以下のコ…

Kubernetes上のGitLab Runnerでビルドキャッシュを利用する

GitLab CI/CDではビルドキャッシュがサポートされています.本稿では,KubernetesにデプロイしているGitLab Runnerでビルドキャッシュを利用する方法を紹介します. ここでは以下を利用している前提とします. AWS Kubernetes 1.13 (EKS) kube2iam Terraform…

GitLab CI/CDで特定のファイルが変更された場合にのみジョブを実行する

GitLab 11.4から only:changes という記法がサポートされました.これにより,特定のファイルが変更された場合のみジョブを実行できます. https://docs.gitlab.com/ee/ci/yaml/#onlychangesexceptchanges 例えば,以下のように記述すると,ブランチをpushし…

TerraformでIPアドレスリストをCIDRリストに変換する

Terraformの小ネタです.プライベートサブネットからInternet facing ALBへのアクセスを許可するため,NATゲートウェイのグローバルIPアドレスをセキュリティグループに追加する必要がありました.Terraformの aws_security_group_rule にはIPアドレスではな…

golang.org/x/tools/go/packages による構文解析と型解析

golang.org/x/tools/go/packages を利用すると,抽象構文木や型情報を利用したコードが簡単に書けるので調べてみました.日本語の情報があまりないようです. 抽象構文木を表示する Goのソースコードを読み込むには,packages.Load 関数を利用します.packag…