We’re super-excited to release the Port Kubernetes Exporter, since it realizes our vision of a software catalog that contains the entire ecosystem surrounding software: CI/CD flows, dev environments, pipelines, deployments and anything cloud, covering the entire software development lifecycle
What is it?
The Kubernetes exporter is a new integration that allows you to automatically collect live data from your existing Kubernetes infrastructure and enrich Port’s Software Catalog. It enables live synchronization of different Kubernetes resources (such as Namespaces, Deployments, and any other resource supported by the Kubernetes API) into the Port software catalog. It also supports smart filters and transformations to map your Kubernetes resources to the desired Port entities.
Why it matters
The Software Catalog in a developer portal is where the SDLC is visualized and represented. In Port, the Catalog begins with customizable Blueprint definitions. Blueprints are schema definitions for your software catalog assets. You can create blueprints to represent microservices, environments, etc. This is why we say that Port’s developer portal is builder-based, and Blueprints and entities are at its core.
- A Blueprint is the basic building block in Port. It represents assets that can be managed in Port, such as Microservice, Environments, Packages, Clusters, Databases, and many more. Blueprints are completely customizable, and they support any number of properties the user chooses, all of which can be modified as you go. Deciding what you want to include as a blueprint depends on what parts of your infrastructure you want to manage and the properties you want to track for each such part.
- An Entity is an object that matches the type defined by a Blueprint, and it represents the software component data which is defined by the Blueprint properties.
To fill the catalog, we ingest data from different sources. Microservices come from GitHub, deployment data from Jenkins and Kubernetes has data about environments, running services and more.
The trick is to automatically map and populate all Kubernetes data to the right entities - based on how a blueprint is defined. Any K8s resource data can be synced with any blueprint, and to any custom property the user created.
Most approaches stream all Kubernetes data to a microservice in a microservice catalog. The K8s Exporter streams Kubernetes resource data to the relevant Port entity, so you can make sense of the data in the right place in the software catalog. Think about a cluster: you can manage the representation of a running cluster, see a table with all of your namespaces and see which services are deployed in each namespace. Another use case is tracking authentication and authorization resources. You’ll have the ability to see a Service Account (an identity for processes that run in a Pod), and both the pods where it is being used and the relevant rules and policies.
How to use it
Once you’ve installed it, the Kubernetes Exporter continues to sync changes meaning that all changes, deletions or additions are accurately and automatically reflected in Port.