mappru: VPC Route Tableをgitで管理するやつ

勢いで実装できそうだったので、実装してみました。

github.com

mappru -e -o RouteTableVPC Route Tableをエクスポートして、mappru -aでRouteTableファイルを適用します。ファイルに書いてないVPC・Route Tableは管理対象外となります。

あと、重要な点ですがS3エンドポイントはAPIが異なるため今のところ管理できません。無視します。

DSLは以下のような感じです。

require 'other/tablefile'

vpc "vpc-12345678" do
  route_table "foo-rt" do
    subnets "subnet-12345678"
    route destination_cidr_block: "0.0.0.0/0", gateway_id: "igw-12345678"
    route destination_cidr_block: "192.168.100.101/32", network_interface_id: "eni-12345678"
    # 今のところ、network_interface_idで指定するようにしてます。instance_idは指定できません
  end

  route_table "bar-rt" do
    subnets "subnet-87654321"
    route destination_cidr_block: "192.168.100.102/32", network_interface_id: "eni-87654321"
  end

  # Undefined Route Table will be ignored
end

# Undefined VPC will be ignored

一応、基本的な動作確認はしていますし、運用にも乗せるつもりではありますが、影響範囲が大きいのでご利用する場合はご注意を…