Skip to content
  • Cristian Klein's avatar
    b77460ec
    contrib/terraform/exoscale: Rework SSH public keys (#7242) · b77460ec
    Cristian Klein authored
    * contrib/terraform/exoscale: Rework SSH public keys
    
    Exoscale has a few limitations with `exoscale_ssh_keypair` resources.
    Creating several clusters with these scripts may lead to an error like:
    
    ```
    Error: API error ParamError 431 (InvalidParameterValueException 4350): The key pair "lj-sc-ssh-key" already has this fingerprint
    ```
    
    This patch reworks handling of SSH public keys. Specifically, we rely on
    the more cloud-agnostic way of configuring SSH public keys via
    `cloud-init`.
    
    * contrib/terraform/exoscale: terraform fmt
    
    * contrib/terraform/exoscale: Add terraform validate
    
    * contrib/terraform/exoscale: Inline public SSH keys
    
    The Terraform scripts need to install some SSH key, so that Kubespray
    (i.e., the "Ansible part") can take over. Initially, we pointed the
    Terraform scripts to `~/.ssh/id_rsa.pub`. This proved to be suboptimal:
    Operators sharing responbility for a cluster risk unnecessarily replacing resources.
    
    Therefore, it has been determined that it's best to inline the public
    SSH keys. The chosen variable `ssh_public_keys` provides some uniformity
    with `contrib/azurerm`.
    
    * Fix Terraform Exoscale test
    
    * Fix Terraform 0.14 test
    b77460ec
    contrib/terraform/exoscale: Rework SSH public keys (#7242)
    Cristian Klein authored
    * contrib/terraform/exoscale: Rework SSH public keys
    
    Exoscale has a few limitations with `exoscale_ssh_keypair` resources.
    Creating several clusters with these scripts may lead to an error like:
    
    ```
    Error: API error ParamError 431 (InvalidParameterValueException 4350): The key pair "lj-sc-ssh-key" already has this fingerprint
    ```
    
    This patch reworks handling of SSH public keys. Specifically, we rely on
    the more cloud-agnostic way of configuring SSH public keys via
    `cloud-init`.
    
    * contrib/terraform/exoscale: terraform fmt
    
    * contrib/terraform/exoscale: Add terraform validate
    
    * contrib/terraform/exoscale: Inline public SSH keys
    
    The Terraform scripts need to install some SSH key, so that Kubespray
    (i.e., the "Ansible part") can take over. Initially, we pointed the
    Terraform scripts to `~/.ssh/id_rsa.pub`. This proved to be suboptimal:
    Operators sharing responbility for a cluster risk unnecessarily replacing resources.
    
    Therefore, it has been determined that it's best to inline the public
    SSH keys. The chosen variable `ssh_public_keys` provides some uniformity
    with `contrib/azurerm`.
    
    * Fix Terraform Exoscale test
    
    * Fix Terraform 0.14 test
Loading