Customizing Elasticsearch indices using Fluent-Bit in TKG
Fluent-Bit is currently the preferred option for log shipping in TKG and is provided out of the box as a Tanzu package that can be easily deployed on each TKG/Kubernetes cluster.
A recent implementation required shipping all Kubernetes logs to Elasticsearch, complying with a specific naming convention for the Elasticsearch indices.
Applying such customizations requires you to utilize the Lua filter. Using the Lua filter, you can modify incoming records by invoking custom scripts to apply your logic when processing the records.
Continue readingGetting Harbor to trust your LDAPS certificate in TKG
In a recent TKG implementation, it was required to configure Harbor with LDAPS rather than LDAP.
I deployed the Harbor package on the TKG shared services cluster and configured LDAP. However, when testing the connection, I received an error message that was not informative at all:
Failed to verify LDAP server with error: error: ldap server network timeout.
Although the error message doesn’t explicitly say there’s a certificate issue and there is nothing in the harbor-core container logs, it immediately made sense to me that the harbor-core container didn’t trust my LDAPS/CA certificate, so I started investigating how the certificate could be injected somehow into Harbor. The Harbor package doesn’t have any input for the LDAPS/CA certificate in its data values file, so I knew I had to create my own YTT overlay.
Getting kapp-controller to trust your CA certificates in TKG
Have you ever had to deploy a package using kapp-controller from your Harbor private registry?
I recently deployed the Tanzu RabbitMQ package to a TKGm workload cluster in an air-gapped/internet-restricted environment.
Doing so in air-gapped environments requires you to push the packages into Harbor, then have kapp-controller deploy the package from Harbor.
After adding the PackageRepository referencing my Harbor registry, I observed it couldn’t complete reconciling due to a certificate issue.
Continue readingHarbor Registry: is your LDAP user unique?
A recent project I was working on required granting different levels of permissions for several Active Directory service accounts on Harbor registry so that some can only pull images from the registry, and others can also push, etc.
On the Harbor project, I had the following configuration for my users:
The harbor-group-01 group contains an Active Directory user named harbor-user-01 and harbor-group-02 contains harbor-user-02.
From the command line, I was able to log in to Harbor with harbor-user-01:
Is your TKG cluster name too long, or is it your DHCP Server…?
Recently, when working on a TKGm implementation project, I initially ran into an issue that seemed very odd, as I hadn’t encountered such behavior in any other implementation before.
The issue was that a workload cluster deployment hung after deploying the first control plane node. Until then, everything seemed just fine; as the cluster deployment had successfully initialized, NSX ALB had successfully allocated a control plane VIP. After that, however, the deployment had completely hung and seemed like it wouldn’t proceed.
Continue readingKubernetes Data Protection: Getting Started with Kasten (K10)
In a recent Kubernetes project I was involved in, our team had to conduct an in-depth proof of concept for several Kubernetes data protection solutions. The main highlights of the PoC covered data protection for stateful applications and databases, disaster recovery, and application mobility, including relocating applications across Kubernetes clusters and even different types of Kubernetes clusters (for example, from TKG on-premise to AWS EKS, etc.).
One of the solutions we evaluated was Kasten (K10), a data management platform for Kubernetes, which is now a part of Veeam. The implementation of Kasten was one of the smoothest we have ever experienced in terms of ease of use, stability, and general clarity around getting things done, as everything is very well documented, which certainly cannot be taken for granted these days. :)
Continue readingProduction-Grade Multi-Cluster TAP Installation Guide
- Introduction
- Prerequisites
- Prepare your Workstation
- Relocate TAP Images to your Private Registry
- Install TAP
- View Cluster
- Set up the Installation Namespace
- Issue a TLS Certificate for TAP GUI
- Set up a Database for TAP GUI
- Set up the TAP GUI Catalog Git Repository
- Set up RBAC for the Metadata Store
- Set up an Authentication Provider for TAP GUI
- Set up RBAC for the Build, Run and Iterate Clusters
- Set an Ingress Domain, TAP GUI Hostname and CA Certificate
- Deploy the TAP Package
- Build Cluster
- Run Cluster
- Iterate Cluster
- View Cluster
- Wrap Up
Introduction
Since my previous posts on TAP Overview and Backstage, I have been diving deeper into TAP, trying to establish the practices around it.
Continue reading








