⚠️ Tanzu Community Edition has not been announced; it is
currently a VMware internal project. ⚠️
Overview
Tanzu Community Edition (TCE) enables the creation of application platforms.
Application platforms are infrastructure, tooling, and services that foster
a viable location to run applications and enable positive developer experiences.
TCE does this by leveraging Cluster API to
provide declarative deployment and management of Kubernetes clusters. Kubernetes
acts as the foundation in which we orchestrate workloads. With this foundation
in place, TCE enables the installation of platform packages that support
applications running in clusters.
TCE allows you to get bootstrapped by providing a set of opinionated building blocks.
Additionally, it enables you to add or replace these with your own components. This
flexibility enables you to produce application platforms that meet your unique
requirements without having to start from scratch.
Getting Started
- Getting Started Guides
- Password:
ExpectedBirthdayIndirectBinary
- Select a getting started guide based on your provider.
Architectures / Designs
To support our talk, then
code
approach, all implementation (both completed and intended) is captured in the
following.
Packages
Packages provide the additional functionality necessary to build an application platform atop Kubernetes. We follow a modular approach in which operators building a platform can deploy the packages they need to fulfill their requirements.
Here's a demonstration of working with packages.
Repository Layout
The following describes the key directories that make up this repository.
- addons/: our packages and package repos installed in TCE clusters.
- packages/: software packages installed in TCE clusters.
- repos/: bundles of packages that can be installed in TCE clusters making all packages within available.
- cli/: plugins that add TCE-specific functionality to the
tanzu
CLI
- cmd/plugin/${PLUGIN_NAME}/: main file for each plugin, containing the plugin descriptor and plugin creation.
- pkg/addon/${PLUGIN_NAME}/: commands and logic for a plugins command(s), implemented with cobra.
- pkg/addon/common/: shared functionality amongst plugins.
- docs/: documentation and our hugo-based website
- hack/: scripts used for development and build processes