Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Typhoon CI stage + add support for K8s 1.20 #1147

Merged
merged 1 commit into from
Feb 4, 2021
Merged

Conversation

alexsomesan
Copy link
Member

Description

Recently the Fedora CoreOS node image used by the Typhoon k8s distro has strengthened their SSH policy to restrict RSA keys from being accepted. This causes the remote-exec provisioner in Terraform to fail to connect to such nodes and thus fail to properly provision the cluster. The reason for the failure is that the provisioner is using the crypto facilities built into Go which don't yet support the types of keys required by the new Fedora.

Detailed explanation here: poseidon/typhoon#915

To work around this, we switch to using flatcar Linux (an open-source CoreOS derivative) as the base OS image for the clusters.
Also, we have to drop support for Typhoon 1.18 as it doesn't have an option for Flatcar, only container Linux which has been discontinued and no longer working.

The change should be transparent from the point of view of Kubernetes clients.

Acceptance tests

Output from acceptance testing:


module.typhoon-acc-1_20[0].null_resource.bootstrap: Provisioning with 'remote-exec'...
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec): Connecting to remote host via SSH...
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   Host: 35.158.210.240
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   User: core
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   Password: false
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   Private key: false
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   Certificate: false
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   SSH Agent: true
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec):   Checking Host Key: false
module.typhoon-acc-1_20[0].null_resource.bootstrap (remote-exec): Connected!
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [10s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [20s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [30s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [40s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [50s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m0s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m10s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m20s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m30s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m40s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [1m50s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m0s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m10s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m20s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m30s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m40s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [2m50s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Still creating... [3m0s elapsed]
module.typhoon-acc-1_20[0].null_resource.bootstrap: Creation complete after 3m1s [id=3782622098792055774]

Apply complete! Resources: 93 added, 0 changed, 0 destroyed.

Outputs:

kubeconfig_path = ./kubeconfig
workstation-arch% kubectl --kubeconfig kubeconfig get nodes -owide
NAME            STATUS     ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                                              KERNEL-VERSION   CONTAINER-RUNTIME
ip-10-0-30-79   NotReady   <none>   0s    v1.20.2   10.0.30.79    <none>        Flatcar Container Linux by Kinvolk 2605.12.0 (Oklo)   5.4.92-flatcar   docker://19.3.14



...

Release Note

Release note for CHANGELOG:

N/A

References

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

@alexsomesan alexsomesan requested a review from a team February 4, 2021 21:37
@ghost ghost added the size/XS label Feb 4, 2021
Copy link
Contributor

@dak1n1 dak1n1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix!

@alexsomesan alexsomesan merged commit 5e32dab into master Feb 4, 2021
@alexsomesan alexsomesan deleted the fix-typhoon branch February 4, 2021 21:44
@ghost
Copy link

ghost commented Mar 7, 2021

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. If you feel I made an error 🤖 🙉 , please reach out to my human friends 👉 hashibot-feedback@hashicorp.com. Thanks!

@ghost ghost locked as resolved and limited conversation to collaborators Mar 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants