#
# Cookbook:: irrigate-tunnel
# Recipe:: fivetran
#
# Copyright: The Orchard
#

user node['fivetran']['user'] do
  comment 'Fivetran proxy user'
  home node['fivetran']['home_dir']
  shell '/bin/bash'
end

ssh_authorize_key 'fivetran_user_key' do
  key 'AAAAB3NzaC1yc2EAAAADAQABAAACAQCjR+vdM9/dwzqxuvrViiB0Me/cgy6PP8eGBRomOOW4J+aUfNj9vtENmoA9tx3MUhRXXyiz/B9f4WLhllUj0Yla5zhh+PpCnIiVbtZAW4tLXFeTtiiO+NdskIc0EKEcVfV0SFFqLfClPJopnwLyXazLKrUM/vaD1dONuBM5VKpuZDv+kqLeCQGd00P4q7aY5mdpKz8g7PNwQzO7na0ckvw4VkBqnZHlYXqvf1Z2hKPlAKLNqtugfWEM2JaUcPLOzvzvah+A5S4P2ii/Lxfc1ybEq2RU9W5jda7O0fAoGh3378YLye7LrWvldaz4Xq5UTuFjEbHmBbUytWBJ1gX5beURSn49wdPkUmNX6IimRX8de6VsaenkyqoNxHayR8QfwQ3lpnopuvaReU7uMMeThh/PpOeP8BRNpPIgC3SRzql07Vp9ZXi/uxynFokYrmDtVY6skyTej5EA25UL6sBlUk4jtl+dE2GUQE//pGhceYRL98g0Y+UCEezZ4pMd0woOljZWt6ovBZAleSuoGdlILnIrNVajKrIv80JSVG2GmrgxUtKFwP4KGR8F392rEnBccxoBFLMMvsZWAbXXM2g07aO8r4TpOEPHPoqq7261tR5U6CskvcJaEA8QGBWNe79uaaY3E7RjFsmuxKCtoJ6+BrvAkDCliUr0LvghheOd0Gc7AQ=='
  user node['fivetran']['user']
end

ssh_authorize_key 'fivetran_user_key_qa_dbt_rds_snowflake' do
  key 'AAAAB3NzaC1yc2EAAAADAQABAAACAQCcEp+HvfezoN67Nq6uvj8yZnsWWTYS5X6f/f6Rod7ybZGKCpI2ol4LMYAWlb18U399cvmOO4iBtmYQwRp6KIf6v98pOs3eqK1dc37DKnS8y/ruKAvC1XIuIsADk5G2dRZGFilBjMLA3DmrA8TjKej+hm2hum31WWLNai3gRZUdSQv1iL/V9GS5Lxg0nFQ/WbTha7cD+N11oLZZEPTpCgIHvcFKlcV7BcWvkr3VjUW3cTJhzA5xTlPbV9rhSwdz6Bx5ezIU1YdAozOWz66VkzxNaD1OEIkWXneu23tYEOBk1o/opZVjNNyeMi6SSK5qDVB3ZCDa2FeVoEyZAc37cRWuAH8AxSE6ez4pMb2z4rYexbE/DKXXd+HTbEijKtufNqN1G7dowC7VezgTxi6SNnQ3Z54/axGlUSky7DVFTvmhAAiWLF9Ir33nBz67Fc2nN8vrkeLdsVpj636wzjt9lnzT1fg+VPSkpgXxdAGIkZD7dKoyI/eIpA8T2+HJLR2de6WHs7Sw/HZQJ+bxEREZKpW2jbTlq1TbPwA56wURFDJbONErJR9yHAFn0L7IQ+P9vlJsr9b2m7GPdY2g7yiKZk0z5qCdLAKuJaWDPqWFMkbj1uWCQuABKjRA/YF3GJW6kdCbQWEKC6xCAiMedQA516runWyB/0aNnohDiQNgdoQuZw=='
  user node['fivetran']['user']
end

ssh_authorize_key 'fivetran_user_key_fansifter_pg_reporting' do
  key 'AAAAB3NzaC1yc2EAAAADAQABAAACAQC5CAMesDQFA4FtacIqo8WkuR2iYV6slRUZfUIW17kExxLR9xlPnrTZNrTIcvyUD98E4HsABWCmvzSKQ9GgH+vtHbLkWsjdnHHJqrU6zVEKAFHeYpslXop+ifeovevRZEO614FmeaTgcPQnKF1FNYl+HzD8i//kz69OioOWuTtFvC/li8kV4WJ62YyAAcmqR5AeQXSYoyCLhBYkTvG7Uha8Wp33JES9OEpyiXK/SDrIamGRyF1d5g5mrQ6e+Px+N/Rrds5zDGrdP5tipvAfl3YZzY9540V8RmW9hJ2TMDijsRbmpg1aDhmpDw8v/raDC0H4I3Ffe1toZGmtHGeZjQTw8obVWlFXZj0OTmZnzsEjsP5C/bTgBDyrjzXtmhFe23YhJ+HNiH6gi7NS6rKflrYvFGXo7R67V/DS78RHlfmsqLXND1NUeyc/neAovW2xTzhZPeQKAFiXrkt0XySocSBehNcAXRDhFYxfhvJSyfGiwLP4CwgqgFkSB1EfzAXeItvwpcN0+AMTr/9FaBEtajwafrJO9krChZvvYCzxwuxKLhLmtj5l64buUF+5GpehDZ+80ZCxx/MFT8R2LxwbccK1q7j9jz01sgiGS1wT7THZG3Q0wE/nANtPIEovUHQWhdGgDUg6tAcCcEEFcRRPO/skSuki0VKPLSPZQYOgSTTE6Q=='
  user node['fivetran']['user']
end

ssh_authorize_key 'fivetran_user_key_qa_nr_delivery' do
  key 'AAAAB3NzaC1yc2EAAAADAQABAAACAQDP929/KAcTvCBb+5DAvsTwMTc4LQZdDeLzBeYIA4kgntq9EFQISL7FqSNk1QWseY0rmlRnH6pxDbZSdvqJFHSDrjXXMKjC1J4QTx7EnmQVE0Qy2+zUOrAnPOjJAglmUy+d6BNXfEr6mztwEuCZJkmpvsSCIVmhspxAm1H0PsLtLPyCgjusVpRZq+LyMjLY80PdHIaUZ0gegoxI+o82vlaTQR933n7L+Fgm2rh0hQRD2O9e8SC9U5XlsK1DCNwxUgnY1g5sRe9VNosTICQZFdy9m6XC4+Zw5xHto3zgGAYzs7QnDh7WuLSPecuMj+Szc7CTxCLPCNZ2ERGL4XutCLMQT0FUz/3SyQO7+L5enHmy74uuGbO+HZvjIfPfyxTBmr3gDfPZtg3Bnn+90Jf6XZeRSAVUhAGLsdx2zqsweXK4NVANCb/94moITscuaSGdrb8gWZHTytF0DAHIj5f2pWcPJmjQEcft37OiKTFTjERDd47h1NiJii0r+c2U8Xl/Y+zuaHCOqW0khJs9PnFtDUeTJBo5kpSCuUFOYAwagWxB+xv9rN7kaJdy7fdV5KxiFU2eaciUSStjcuFoB8bglj/1RTYCNZiYC9cHptr9LHB91n2dETQkNVMwkXS/lbr+i0RnjsGW0kv38jYV2dC85+yHfzibiVBaunYsGm1qDgm1DQ=='
  user node['fivetran']['user']
end

ssh_authorize_key 'fivetran_user_key_prod_nr_delivery' do
  key 'AAAAB3NzaC1yc2EAAAADAQABAAACAQCJwWWVj2Qgm8Lb+6PEwnkx1zCLUAN39ZApxKILJ9IAkh0jvR6E/EiFTYSqOSPDF/Dq6cED+cku1R5FemMgEBjCErcgXRlvU8k7vjpuNpoIyEhqDa+o2ilOE7d0sclIUERZQ4QjWE1v7Ws7xsWJ4fwz/5cVfpjQ+87KcFlbHRfqoltZ5sU1lU9sMOAmZw/YrDazHtxK/Q8M2IvFl6pYwCH8EQKNRIp4kyv5bYURHaHHu4JI7ybkemzC2/gphHyMIJ0qWZA6rAwGcFU8iESYTZT8iegWXkpt6YgPoPDQrTSwTm4KN4JKhjZy++q/5BjP5lcrpcBSzG2pX+j0DUuV07vjyk9Rk2ayCbQE67FAJKE4F+E/p7Ls5Hc5sBXygeeKrQqB+/Y4lreSUwWsIdEnbM1YtH30Ep4pxfqEZINF5xNkEpoKn7099kZ9YZZQam+W2UWgLVKV12U+T0tiW4pyvC0YjnCOX0I6BVNV7RUGbD1z7AIPF556YowuoqyppuiusURvSMxRchKmZGq/HGys5yDgp9UZxYFBlvhqWjwZPpddzcBTvIv2m6Km+UIUq6GJIdZz6tK4ckB7zSHqk1+Nwai4gD9ZyoyuK2jhHNHYJkLe1AhA4EBo9tZrrg6LRrpj3+Pg3QtDz0zHHnDOltXQvv6EHwWeMSvw6bPemiGUjGaYnw=='
  user node['fivetran']['user']
end

openssh_server node['sshd']['config_file'] do
  PasswordAuthentication 'no'
end

ssh_host_keys                = data_bag_item('secrets', node['fivetran']['ssh_host_keys_data_bag_name'])
ssh_host_ecdsa_key_public    = ssh_host_keys  ['ssh_host_ecdsa_key_public'].chomp
ssh_host_ecdsa_key_private   = ssh_host_keys  ['ssh_host_ecdsa_key_private'].chomp
ssh_host_ed25519_key_public  = ssh_host_keys  ['ssh_host_ed25519_key_public'].chomp
ssh_host_ed25519_key_private = ssh_host_keys  ['ssh_host_ed25519_key_private'].chomp
ssh_host_rsa_key_public      = ssh_host_keys  ['ssh_host_rsa_key_public'].chomp
ssh_host_rsa_key_private     = ssh_host_keys  ['ssh_host_rsa_key_private'].chomp

ssh_public_key_hash = Hash[
  'ssh_host_ecdsa_key.pub' => ssh_host_ecdsa_key_public,
  'ssh_host_ed25519_key.pub' => ssh_host_ed25519_key_public,
  'ssh_host_rsa_key.pub' => ssh_host_rsa_key_public
]

ssh_private_key_hash = Hash[
  'ssh_host_ecdsa_key' => ssh_host_ecdsa_key_private,
  'ssh_host_ed25519_key' => ssh_host_ed25519_key_private,
  'ssh_host_rsa_key' => ssh_host_rsa_key_private
]

ssh_key_files_location = '/etc/ssh'
ssh_public_key_hash.each do |key, value|
  file "#{ssh_key_files_location}/#{key}" do
    mode '644'
    owner 'root'
    group 'root'
    content value.to_s
  end
end

ssh_private_key_hash.each do |key, value|
  file "#{ssh_key_files_location}/#{key}" do
    mode '640'
    owner 'root'
    group 'ssh_keys'
    content value.to_s
  end
end
