地方でリモートワーク

リモートワーク、プログラミング、エンジニア、地方

Rails 8.1で導入されたCLI Credential FetchでKamal Registry PasswordをRails Credentialsにまとめられるようになった

Rails 8.1でCLI Credential Fetchが導入された

Rails 8.1でCLI Credential Fetchが導入されました。

https://guides.rubyonrails.org/8_1_release_notes.html#command-line-credentials-fetching

たとえば次のようなCredentialを定義していたとします。

kamal:
  registry_password: xxx

その場合、次のようにCredentialの値をCLIで取得することができます。

rails credentials:fetch kamal.registry_password

RAILS_MASTER_KEYでまとめて管理できるようになった

この機能の何が嬉しいのかというとKamalでデプロイする場合、Docker HubなどのコンテナレジストリのパスワードをRails Credentialsとは別に環境変数として定義する必要がありました。 CLI Credentials Fetchが導入されたので、上記についてCredentialにまとめることができるようになります。

.kamal/secretsでは次のようにKAMAL_REGISTRY_PASSWORDを定義することができます。

# .kamal/secrets

KAMAL_REGISTRY_PASSWORD=$(rails credentials:fetch kamal.registry_password)

つまりRails Credentialsですべて管理できるようになるので、RAILS_MASTER_KEYだけ管理すればよくなりますね!

Kamal本