💻

AWXのインストールでハマった

2021/11/25に公開

AWX を Kubernetes クラスタで動かしたくて、awx-operator を使ってインストールしようとしていた。

READMEにある通りに実行していたが、$ kubectl apply -f awx-demo.yml に該当する手順を実行しても AWX instance の pod が立ち上がらなかった。

$ kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager

で operator のログをみていると

{
  "level":"error",
  "ts":1637736442.698158,
  "logger":"proxy",
  "msg":"Unable to determine if virtual resource",
  "gvk":"/v1, Kind=Secret",
  "error":"unable to retrieve the complete list of server APIs: external.metrics.k8s.io/v1beta1: the server is currently unable to handle the request",
  ...
}

というようなログが出ていた。(ログは整形されていないので見づらく、価値のあるメッセージを探すのも若干大変)
external.metrics.k8s.io/v1beta1 の APIService は Datadog Cluster Agent が提供しているものなのだが、別の原因でうまく動かない状態になっていた。

$ kubectl get APIService --all-namespaces | grep False
v1beta1.external.metrics.k8s.io        datadog/datadog-cluster-agent-metrics-api   False (FailedDiscoveryCheck)   29d

awx-operator がこのメトリクスを使おうとしているわけではなさそうだったが、API一覧を取る処理がどこかにあるようでそれに失敗していた。
Datadog Cluster Agent の Helm Chart の値を変更して、この API Service を作成しないように変更したところ、AWX Operator は期待通りに動いてくれた。

まさかこんなところが影響しているとは思いもせず、時間を溶かしてしまったので備忘録。

Discussion