Deploying a Weaviate cluster on GKE

Weaviate has great docs on how to deploy on K8s using Helm, however this guide is specifically focused on an end-to-end deployment of Weaviate on GKE with replication turned on. The following topics will be covered:

  • Creating and configuring your GKE cluster
  • Deploying Weaviate with Helm
  • Tweaking the Weaviate helm …

Continue reading »

Python Create UUID from integer

Code:

import uuid
my_uuid = uuid.UUID(int=1)
print(my_uuid)

That should show the following string:

00000000-0000-0000-0000-000000000001

You can also convert back to integer by doing:

my_uuid.int()

For my use case this was needed because my source database has integer based IDs, however the destination …

Continue reading »

Preventing Privileged pods using Pod Security Admission / Standards

In a Kubernetes cluster, a privileged pod is a pod that has been given extended permissions beyond the default set of permissions. These extended permissions can include the ability to access the host's network, devices, and other sensitive resources. While privileged pods can be useful in certain situations, they also …

Continue reading »

ChatGPT Python: using an unofficial library

ChatGPT at the time of writing this blog does not have an official API nor libraries published. Luckily, many folks have inspected the API calls made when using the ChatGPT web UI and created unofficial Python clients.

This blog post, will show you how to use the unofficial chatGPT python …

Continue reading »

Trying ValidationAdmissionPolicy aka CEL Admission in K8s 1.26

CEL for admission control is a new 1.26 feature. With the feature, define ValidationAdmissionPolicy to express your desired policy and ValidationAdmissionPolicyBinding to assign the policy to e.g. a namespace.

This post has the following sections:

  1. Creating a 1.26 cluster with ValidationAdmissionPolicy / CEL Admission enabled
  2. Configure the policies …

Continue reading »

Deploying K8s on your laptop with minikube

K8s on your laptop is helpful for initial development and testing environment. Minikube makes it easy to get K8s deployed on your laptop. Let's get K8s installed by doing the following:

  1. Installing required tools: docker, minikube and kubectl
  2. Deploying the minikube cluster with minikube start
  3. Verifying you can deploy an …

Continue reading »

Full Text & Vector Search for Firestore with Weaviate

Many applications require searching through large text fields in your firestore database. For example, you might need to search through articles containing a specific word or searching for a concept.

Cloud Firestore does not have support for indexing of text fields. So 3rd party solutions such as Weaviate or ElasticSearch …

Continue reading »

GKE GPU timesharing and resource quotas experiment

You only got a few GPUs and want to pretend to your end-users that you got many? Then GKE GPU timesharing might just be the feature for you to save costs on GPUs that are underutilized. In this blog post you will learn:

  1. Creating a GKE nodepool with timesharing enabled …

Continue reading »

GKE move system services (kube-dns, calico) to dedicated nodepool

GKE by default deploys kube-dns and other system services to any of your nodepools. This is probably fine for most cases, but certain use cases might require preventing system services from running on the same nodes as your where your applications are running. This blog post provides instructions on how …

Continue reading »

GKE docker registry with HTTP proxy

You are at one of those places that requires you to use a proxy to access your company wide Docker registry. Sometimes HTTP proxies are used to supposedly improve security or to workaround IP based rate limits. Well good luck, you're in for a ride on how to do this …

Continue reading »