crosscloudci / cross-cloud

Cross-Cloud - multi-cloud K8s provisioner for CNCF CI Project
https://cncf.ci
Apache License 2.0
167 stars 59 forks source link

Collaboration around Tectonic Installer Terraform modules #76

Open philips opened 7 years ago

philips commented 7 years ago

The Tectonic Installer helps people deploy infrastructure to support pure-upstream Kubernetes and the CoreOS Tectonic components. Currently it supports Azure, Amazon AWS, and bare-metal in the latest release. There is alpha support for VMware & OpenStack. And PRs open for DigitalOcean and Google Cloud.

There seems to be good tooling alignment around Terraform and community momentum on the Tectonic Installer project with a few net-new contributions like the DigitalOcean support. Another advantage of the Tectonic Installer Terraform modules we maintain is that they are used in production by all CoreOS Tectonic customer users so they get lots of real-world testing.

So, I would like to see if we could work together somehow. Would love to setup a time to see if y'all could use our Terraform modules.

cc @robszumski

denverwilliams commented 7 years ago

Hello, Brandon.

Thanks for reaching out to see how we can collaborate. As part of our development process we continually review and test technology components which can be utilized in the Cross Cloud CI project.

We make our technology choices based on an analysis of a project’s: strength in community support use of best practices capabilities and alignment with CI specific feature requirements

Community adoption and best practices are something both projects value. So we have focused on where the projects may overlap with feature requirements and goals.

With that in mind, we have reviewed the CoreOS Tectonic Installer to see how it might be utilized with one component of the Cross Cloud CI project, the multi-cloud provisioner (which leverages Terraform and cloud-init).

The Cross Cloud CI’s multi-cloud provisioner goals include:

The Tectonic Installer appears to include the goals:

In review of the Tectonic Installer, we found the Terraform modules leverage a tight coupling with the CoreOS first boot provisioning utility, Ignition. The Terraform modules also include CoreOS Tectonic namespacing and specific pinning choices throughout. We can see how these choices provide consistency throughout the code base and allow leverage of the greater CoreOS ecosystem.

We’ve had requests from within CNCF as well as from non-CNCF projects to provide the ability to use the various Cross Cloud CI components independent of the CI platform itself.

We will be splitting the multi-cloud provisioner component into it’s own project that will be available for use by the Cross Cloud CI platform as well as non-CNCF projects, like CoreOS. The CNCF multi-cloud provisioner could easily be configured in the “Tectonic Way” to meet CoreOS’s needs.

Would CoreOS be interested in collaborating with CNCF in supporting the multi-cloud provisioner which could be used by the Tectonic Installer as well as the Cross Cloud CI platform?

Cheers, Denver

philips commented 7 years ago

On Wed, Aug 23, 2017 at 2:11 PM dlx notifications@github.com wrote:

The Tectonic Installer appears to include the goals:

  • Supporting pure-upstream Kubernetes
  • Deploying CoreOS Kubernetes on any infrastructure (Amazon, Azure, OpenStack, GCP, etc)

What is "CoreOS Kubernetes"? The Tectonic Installer can use any hyperkube docker image hosted on any registry. We just happen to use quay.io/coreos/hyperkube so we can make bugfix releases if needed ahead of an upstream release.

  • Running CoreOS Kubernetes on any OS (Container Linux, RHEL, CentOS, etc)

Again, "CoreOS Kubernetes" is just Kubernetes.

  • Customizable and modular (change DNS providers, security settings, etc)

In review of the Tectonic Installer, we found the Terraform modules leverage a tight coupling with the CoreOS first boot provisioning utility, Ignition.

We would happily factor this out and are needing to do that regardless as part of the ongoing RHEL/CentOS support.

The Terraform modules also include CoreOS Tectonic namespacing and specific pinning choices throughout. We can see how these choices provide consistency throughout the code base and allow leverage of the greater CoreOS ecosystem.

Happy to change name spacing if there is legitimate interest to collaborate. It needed to be namespaced by something :)

Would CoreOS be interested in collaborating with CNCF in supporting the multi-cloud provisioner which could be used by the Tectonic Installer as well as the Cross Cloud CI platform?

What would this look like?

denverwilliams commented 7 years ago

Thanks for the clarification, let's explore some forms of collaboration we could try.

The multi-cloud provisioner can be configured/driven using json or environment input to provision k8s clusters for different approaches. The Tectonic Installer could utilize the multi-cloud provisioner at some layer for provisioning k8s clusters.

In addition to a more direct integration with the Tectonic Installer, some other areas where collaboration would be possible include:

Cheers, Denver

sym3tri commented 7 years ago

The Tectonic Installer could utilize the multi-cloud provisioner at some layer for provisioning k8s clusters.

We could potentially provide this as an alternative install path via our installer.

Working on upstream Terraform drivers for different cloud providers (eg. OpenStack and VSphere)

Yes. We've been doing some upstream work already. We've fixed a number of timeout issues on AWS, and added some new providers to make provisioning easier. If there's a shared backlog of issues we could collaborate on fixing these.

  • Writing k8s manifest templates used by cloud-init during provisioning
  • Supporting cloud provider specific features

These could also be good areas to collaborate. I'd love to hear more if you anything specific in mind.