This is a short blog to let you know that objects represented in unstructured.Unstructured will not be cached by the client returned from manager.Manager by default. UPDATED on Jan. 9th, 2023 The trick described in this article is no longe…
Squid is one of the most used HTTP proxy. I've been using it for years and now runs it on Kubernetes as a container. Although there are many Dockerfiles for Squid, I could not find one that runs Squid as a non-root user. So I created one. …
I've been leading a project team for 3 years and have developed a large system around Kubernetes. In this article, I'd like to share my knowledge and findings of what I think important when developing custom Kubernetes controllers. Please …
Kubernetes and gRPC are technologies to build distributed microservices. Writing gRPC servers in Go is fun and easy. With go-grpc-middleware, you can add various features to gRPC servers including access logs and Prometheus metrics. Kubebu…
In this article, I describe how to write a Kubernetes client in Go using the dynamic client in k8s.io/client-go package. During the course, you can learn the following things: The difference between typed clients and the dynamic client. Re…
Recently, I am leading a project to re-design our on-premise data centers using Kubernetes. Inevitably there are opportunities to develop Kubernetes native applications. The architecture of Kubernetes is like "hub-and-spoke"; the center of…
We at kintone.com are using Go for variety of tasks. In early days when we started using Go, there were only few in-house rules to create commands. As a result, we faced several difficulties: Some servers did not record access logs. Some p…
One of my recent work was a design and implementation of a framework for Go programs. It is open-sourced at GitHub https://github.com/cybozu-go/cmd . During the work, I have tackled how to enhance Go's http.Server by adding access logging …
go-apt-cacher is a caching reverse-proxy designed specially for Debian/Ubuntu repositories. As it is written in Go, go-apt-cacher tolerates thousands of concurrent client connections and is very fast. go-apt-mirror is a mirroring tool for …
I am working behind a cloud service kintone.com as an infrastructure engineer. My recent work was the replacement of NAT inside our data center with a transparent SOCKS proxy. In this post, I will describe our motivation for the replacemen…
The example below works just like PHP's explode. std::vector<std::string> tokenize(const std::string& s, char c) { auto end = s.cend(); auto start = end; std::vector<std::string> v; for( auto it = s.cbegin(); it != end; ++it ) { if( *it != c ) { if( start == end ) </std::string></std::string>…