JetBrainsのJunieを触ってみる
JunieをIntelliJで使ってみる。お題は「AWS EKSの構築」。
準備
IntelliJ IDEA 2025.1.1.1をインストールして、「JetBrains AI Assistant」、「JetBrains Junie」のプラグインをインストールする。
EKSのクラスタを作成

画面の下部に[Brave Mode]とあるのが面白い。
$ tree terraform/
terraform/
├── README.md
├── main.tf
├── outputs.tf
├── providers.tf
├── terraform.tfstate
└── variables.tf
とコードを生成してくれた。
Terraformのproviderやmoduleのバージョンが古いので手作業でバージョンを更新した。更にEKSモジュールで以下を追加しておく。
cluster_endpoint_public_access = true
enable_cluster_creator_admin_permissions = true
enable_irsa = true
cluster_addons = {
kube-proxy = {}
vpc-cni = {}
# ここが大事
coredns = {
configuration_values = jsonencode({
computeType = "Fargate"
})
}
}
その後、terraform applyでクラスタを作成し、 aws eks update-kubeconfig --region us-west-2 --name <クラスタ名> でkubectlのアップデートをしておく。
.gitignoreのメンテナンス

Terraformの設定を追加してくれたので、コミットした。
生成したREADMEの和訳
READMEが英語で生成されたので、和訳してもらう。

特に問題なく翻訳できた。
HelmをTerraformで使えるようにする

Terminalでの実行の確認を求めてくるので実行してみる。(トークンを使用しすぎるから多用しない方がいい気もする)

The Terraform configuration has been updated to include the Helm provider for managing Kubernetes applications. However, an error occurred indicating that the required Helm provider is missing and needs to be installed.
失敗している。「Open」をクリックすると実行結果が表示される。

initが先に必要だったからinitの許可を求めている。
相変わらずバージョンが古いのでそこだけ手動で修正する。
ArgoCDのインストール

バージョンを修正して、service.typeをLoadBalancerからClusterIPに変更する。FargageでLoadBalancerを紐付けるのはちょっと面倒くさい。
# Basic values for ArgoCD
set {
name = "server.service.type"
value = "ClusterIP"
}
apply後に
$ kubectl get services -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd argocd-applicationset-controller ClusterIP 172.20.252.93 <none> 7000/TCP 11m
argocd argocd-dex-server ClusterIP 172.20.180.179 <none> 5556/TCP,5557/TCP 11m
argocd argocd-redis ClusterIP 172.20.217.218 <none> 6379/TCP 11m
argocd argocd-repo-server ClusterIP 172.20.242.57 <none> 8081/TCP 11m
argocd argocd-server ClusterIP 172.20.137.118 <none> 80/TCP,443/TCP 11m
argocd argocd-server-metrics ClusterIP 172.20.17.51 <none> 8083/TCP 11m
default kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 36m
kube-system eks-extension-metrics-api ClusterIP 172.20.137.168 <none> 443/TCP 36m
kube-system kube-dns ClusterIP 172.20.0.10 <none> 53/UDP,53/TCP,9153/TCP 34m
Serviceが起動しているのでPort forwardingを実行。
$ kubectl port-forward svc/argocd-server 8080:80 --namespace argocd
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
ブラウザで https://localhost:8080/ を開く。

AWS LoadBalancer Controllerをインストールする
こちらを先にやるべきだったか。以下を依頼する。
TerraformでHelmチャートを使用してaws-load-balancer-controllerをインストールしてください。
kube-systemのFargate Profileを2重定義していたので修正依頼する。
kube-systemのfargateが2箇所で定義されています。
二重定義は消えた。
applyしてもエラーは発生していない。
ArgoCDをALB経由で公開する
Fargageの場合のやり方は知らないみたい。