A very exciting new project was just announced at the DevOps Loop Conference called Tanzu Community Edition or TCE for short.
What is TCE and why should you care?
Today, it can be challenging for end users (administrators, architects, developers, platform operators, etc.) to get first hand experience with VMware's Tanzu portfolio. Some of the challenges can include downloading the software, licensing the software and having the required resources to run the software.
TCE aims to provide a frictionless experience for anyone that wants to get hands with an enterprise grade Kubernetes platform, that is fully featured with our Tanzu commercial offerings. TCE is easy to use, freely available for anyone to download and use for learning, testing, development and pre-production purposes.
In addition, TCE also includes newer features that are not found in the Tanzu commercial offering (yet) and early experimental features that the community will be the first to try out! As features further develop and mature based on feedback from the community, they will eventually graduate into our commercial offerings.
Not only does TCE provide access to the same commercial offering of our Kubernetes runtime called Tanzu Kubernetes Grid (TKG), but it also includes additional packages that can be optionally installed that can help with building, managing, deploying and running modern applications and services.
As you can see, TCE is more than just a new edition for our community but it is really the foundation for our Tanzu platform.
Lets now take a closer look into TCE and how it works.
Easy Installation
The first thing you will notice is that the installation of TCE, which includes the Tanzu CLI, is extremely easy and you will be up and running in just a couple of minutes. Unlike Tanzu Kubernetes Grid (TKG), where the only option was a tarball installation, you now can use native OS package management tools such as Homebrew and Chocolatey to quickly install TCE with just a single command.
New Infrastructure Provider
Similiar to Tanzu Kubernetes Grid (TKG), TCE can also deploy to mulitple cloud infrastructure providers, which all leverage Cluster API (CAPI) for lifecycle management.
- vSphere using Cluster API for vSphere (CAPV)
- Amazon AWS using Cluster API for AWS (CAPA)
- Microsoft Azure using Cluster API for Azure (CAPZ)
One very unique capability that is not available with the commercial offering of Tanzu Kubernetes Grid (TKG) is the support for a local Docker deployment! This also leverages Cluster API using the Cluster API for Docker (CAPD) provider.
Not everyone has access to ready capacity for learning and testing purposes, so it was really cool to see the TCE team innovate in this space and not compromising on functionality and the overall user experience.
New Cluster Deployment Options
In Tanzu Kubernetes Grid (TKG), a deployment would always consist of a local bootstrap cluster that would run either locally on your desktop or in a bastion/jumphost and then a remote Management Cluster which would then manage a set of remote Workload Cluster(s) running on a given cloud infrastructure. For Production workloads, this was perfectly fine but if you just wanted access to a basic Kubernetes cluster, the additional infrastructure and resources requirements can be a huge barrier and non-starter for most users.
With the support for Docker (CAPD), TCE not only supports an optimized local development environment but it also offers up several choices in how users want a Workload Cluster to be deployed. The first is called Standalone Clusters, which is another unique feature of TCE and is the quickest way to get a TKG Workload Cluster stood up in just minutes. Both the Bootstrap and Workload Cluster runs locally on your system, without needing a Management Cluster as shown in the diagram below.
The next option is called Managed Clusters, which is akin to what Tanzu Kubernetes Grid (TKG) supports today. The difference and another unique feature to TCE is the ability to run all three clusters: Bootstrap, Management & Workload Cluster locally on your machine. Lastly, you can of course deploy a cluster the exact same way as Tanzu Kubernetes Grid (TKG), which was described earlier.
These additional deployment options will provide the greatest flexibility for users based on their use case and workflows.
- Need to quickly test or deploy an application, use a Standalone Cluster
- Ready for some E2E or CI/CD sanity testing, use a Managed Cluster running locally
- Finally, execute a pre-production deployment by using a Managed Cluster running on a remote cloud infrastructure provider
Fast Deployment
You can go from 0 to a Tanzu Kubernetes Grid (TKG) Workload Cluster in ~8minutes!
Similar to Tanzu Kubernetes Grid (TKG), you can deploy using the Tanzu CLI or Tanzu Kickstart UI.
Here is an example starting the Standalone Cluster option using the UI:
tanzu standalone-cluster create --ui
The entire deployment workflow is just three easy guided steps, which you are just clicking next and the only field required is the name of your cluster.
After a few minutes, the deployment is complete and you are now ready to access your new Tanzu Kubernetes Grid (TKG) Workload Cluster all running locally on your system
TCE is also being developed in the open with our community and you can get involved by visiting the following Github repos: https://github.com/vmware-tanzu/community-edition and https://github.com/vmware-tanzu/tanzu-framework. Also be sure to check out all the Community Resources for other ways to interact with everyone!
Are you ready to get started? If so, check out the Getting Started Guides
Devesh Shukla says
tanzu standalone-cluster create --ui
Downloading TKG compatibility file from 'projects.registry.vmware.com/tkg/framework-zshippable/tkg-compatibility'
Error: unable to create Tanzu Standalone Cluster client
Cause: unable to ensure prerequisites: unable to ensure tkg BOM file: failed to download TKG compatibility file from the registry: failed to list TKG compatibility image tags: Get "https://projects.registry.vmware.com/v2/": x509: certificate signed by unknown authority
Error: exit status 1
✖ exit status 1
X509 here as well 😛 Any help with this.
I am trying it over Windows 10 Version 20H2 (OS Build 19042.1237)
No proxy required.
William Lam says
Actually ran into this myself recently, it looks to be a known issue and there's a workaround that you can find at https://github.com/vmware-tanzu/community-edition/issues/1398#issuecomment-902863369
I've asked TCE folks to update the documentation to at least reference workaround until this is fixed
DEVESH SHUKLA says
Thanks !! It working now 🙂
🎃💉dɛnɪs foʊʃeɪ💉🎃 (@DennisFaucher) says
"exit status 1" for Mac homebrew on "tanzu management-cluster create --ui"
I'll open an issue in GitHub
🎃💉dɛnɪs foʊʃeɪ💉🎃 (@DennisFaucher) says
PEBCAK. How embarrassing. 🤦♂️ It says right there that docker isn't running and it isn't. Started docker and this worked. Ugh.
Volker says
Hi William,
is there also a load balancer included in the Tanzu Community Edition when deploying to vSphere?
Or how would I publish k8s services to the „outside“?
William Lam says
You can use metallb or kube-vip. If you want something OOTB, you can use Contour which is included and setup an ingress and expose that for external connectivity
Slymsoft says
Just to be sure I understand correctly: your comment means that when deploying Contour on Tanzu Community Edition you don't need to also install MetalLB in order to expose on external IP ?
Contour is able to manage external IPs and allocate them on the VMs interfaces (and manage failover if a node fails) ?
Jacques says
Hi William and others,
What ever I try it ends always with :
ℹ [1008 14:47:57.00915]: logger.go:115] Preparing nodes ...
ℹ [1008 14:48:05.57358]: logger.go:115] Writing configuration ...
✘ [1008 14:48:06.78678]: init.go:329] unable to set up management cluster, : unable to create bootstrap cluster: failed to create kind cluster tkg-kind-c5g3rv5fkhbuif85jb10: failed to generate kubeadm config content: failed to get kubernetes version from node: failed to get file: command "docker exec --privileged tkg-kind-c5g3rv5fkhbuif85jb10-control-plane cat /kind/version" failed with error: exit status 1
So far I understand I have all the prerequisites ok.
Tried on distributions (MX and Ubutu 20.04) with brew and tar.gz.
Anybody else got this ?
Jacques
William Lam says
Best to post this on either Github issues or join TCE Slack community for further troubleshooting