はじめに
自社サービスの Enterprise Cloud について、僕らのチームでTerraform用のCommunity Providerを公開しています。
で、これをOfficialにしてみようという取り組みをはじめました。
それについて現時点でできたことを書いてみます。
申込み自体は意外とシンプルな手続きだったので、もし参考になればと思いまして。
本ページで書いてあること
- Terraform ProviderをOfficial認定してもらうための申込み方法
本ページで書いてないこと
- Providerの開発方法
- ProviderのOfficial化挑戦に関する成否(まだどう転ぶか全然わかりません)
Official Providerを申し込むにあたって
進め方は こちら に書いてあります。
どうやら最初の1, 2点のリソースくらいの規模の段階から申し込んでおきつつ、段階的に対応リソースを広げていく・・・というやり方も可能なようですね。
今回の僕らの場合、もうほぼ出来上がっているのですが今後拡張もしていく予定なので参考になります。
読み進めていくと申し込む方法が出てきます。
申し込み方法
フェーズとしては、 Engage という部分が申し込みに該当するようです。
- Engage
Please begin by providing some basic information about the provider that is being built via a simple webform.
このwebformのリンクをたどるとこんなフォームが見えます。
これに書いて送信すれば良いだけのようです。
殆どの情報はすぐかけるので、自分たちの状況に特化した内容だけ書きます。
GitHub repo
現状の公開リポジトリを書いておきました。
Infrastructure test account credentials
https://keybase.io/encrypt#terraform へのリンクがあるのですが、これを使って認証情報をencryptして送るようです。
例えば実際にTerraformを使う際、provider.tf みたいな感じで認証情報を定義すると思います。
provider "ecl" {
auth_url = "https://keystone-sg1-ecl.api.ntt.com/v3/"
user_name = "********************"
password = "********************"
tenant_id = "********************"
project_domain_id = "default"
}
これを、
https://keybase.io/encrypt#terraform のフォームに貼り付けてEncryptボタンを押すと変換結果が出て来ます。
その文字列を貼り付けておきました。
-----BEGIN PGP MESSAGE-----
Version: Keybase OpenPGP v2.1.3
Comment: https://keybase.io/crypto
(略)
-----END PGP MESSAGE-----
List of resources
provider.goを貼ってしまえばいいかなとも思ったのですが、とりあえずdatasourceは除外しresource名だけを抜き出してみました。
ecl_compute_instance_v2
ecl_compute_keypair_v2
ecl_compute_volume_attach_v2
ecl_compute_volume_v2
ecl_dns_recordset_v2
ecl_dns_zone_v2
ecl_imagestorages_image_v2
ecl_imagestorages_member_accepter_v2
ecl_imagestorages_member_v2
ecl_network_common_function_gateway_v2
ecl_network_gateway_interface_v2
ecl_network_internet_gateway_v2
ecl_network_network_v2
ecl_network_port_v2
ecl_network_public_ip_v2
ecl_network_static_route_v2
ecl_network_subnet_v2
ecl_security_host_based_v1
ecl_security_network_based_device_ha_v1
ecl_security_network_based_device_single_v1
ecl_security_network_based_waf_single_v1
ecl_storage_virtualstorage_v1
ecl_storage_volume_v1
ecl_vna_appliance_v1
現時点でやったことはここまでです。
進展がありましたらまたこちらに書いていこうかと思います。