Image generated by [ChatGPT](https://chatgpt.com/)

SystemExit Hangs asyncio.run_coroutine_threadsafe

Today, while debugging an issue with Ray, I encountered a problem because I did not notice the special behavior of Python’s asyncio.run_coroutine_threadsafe. The official documentation does not explicitly mention it; you have to look at the CPython source code to understand what is happening, which led to a long debugging session. I am documenting this issue here. According to the official documentation , this function is used to run a coroutine in an event loop on another thread, and it returns a Future object. ...

Posted on: 2025-03-05 · Edited on: 2025-03-18 · Chi-Sheng Liu
Interaction between client-go and Kubernetes operator. Image from [sample-controller](https://github.com/kubernetes/sample-controller/blob/master/docs/images/client-go-controller-interaction.jpeg)

How to Write a Kubernetes Operator Using client-go

What is client-go? client-go is the official Golang client for Kubernetes, responsible for interacting with the Kubernetes API server using REST API. In fact, client-go can do almost anything, not just for writing operators. Even the internal implementation of kubectl is based on client-go. As for more specialized frameworks used to write operators, including controller-runtime , kubebuilder , and operator-sdk , they will be introduced later in this series. Introduction to Sample Controller Mechanism sample-controller is an official Kubernetes example operator implemented using client-go. ...

Posted on: 2024-09-14 · Edited on: 2025-03-09 · Chi-Sheng Liu
Image from [GraphRAG](https://github.com/microsoft/graphrag/blob/e7ee8cb8a53b0ca423158e0acf54f143b4938e2a/docsite/img/GraphRag-Figure1.jpg) and [Ollama](https://github.com/ollama/ollama/issues/2152)

GraphRAG Local Setup via Ollama: Pitfalls Prevention Guide

TL;DR If you just want to see the conclusion, skip to the Summary . Please note that the content discussed here is only guaranteed to work for version 0.3.2. Other versions have not been tested. Introduction GraphRAG is a new Retrieval-Augmented Generation (RAG) technology released by Microsoft. Unlike the usual RAG approach, which breaks text into chunks, vectorizes them, and stores them in a vector store, and then compares the similarity by vectorizing the user’s query, GraphRAG extracts information from text and builds a Knowledge Graph. This approach has the advantage of better understanding the complex relationships between different documents. ...

Posted on: 2024-09-11 · Edited on: 2025-03-09 · Chi-Sheng Liu
Image modified from [Kubernetes Icons Set](https://github.com/kubernetes/community/tree/master/icons)

What are Kubernetes Operators and Custom Resources?

Kubernetes API Resources I assume that you have a basic understanding of Kubernetes and know how to use kubectl. Pod, ReplicaSet, Service, and even Namespace are actually types of API Resources. You can use kubectl api-resources to view all the API Resources currently available in your Kubernetes cluster. $ kubectl api-resources NAME SHORTNAMES APIVERSION NAMESPACED KIND bindings v1 true Binding componentstatuses cs v1 false ComponentStatus configmaps cm v1 true ConfigMap endpoints ep v1 true Endpoints events ev v1 true Event limitranges limits v1 true LimitRange namespaces ns v1 false Namespace nodes no v1 false Node persistentvolumeclaims pvc v1 true PersistentVolumeClaim persistentvolumes pv v1 false PersistentVolume pods po v1 true Pod podtemplates v1 true PodTemplate replicationcontrollers rc v1 true ReplicationController resourcequotas quota v1 true ResourceQuota secrets v1 true Secret serviceaccounts sa v1 true ServiceAccount services svc v1 true Service ... Kubernetes Custom Resources Custom Resources, as the name suggests, refer to custom API Resources that we can create and install in Kubernetes to extend its functionality. ...

Posted on: 2024-08-29 · Edited on: 2024-08-31 · Chi-Sheng Liu
Photo by [Chris Ried](https://unsplash.com/@cdr6934?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/a-computer-screen-with-a-bunch-of-code-on-it-ieic5Tq8YMk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)

5 Things to Know Before Making Open Source Contributions

Read the Documentation There are a few essential documents that you must read. These might be .md files, .rst files, or specific pages on the project’s website: README.md: The file that introduces the project. Contribution Guide: This outlines how to contribute to the project, including any formatting or styling rules you need to follow when submitting contributions. Code of Conduct: The community’s behavior guidelines. Generally, as long as you are not too rude or disrespectful, you should be fine, but it’s still important to read through it. Issue Tracker Understand what issue tracker the project uses. Common ones include GitHub issues or JIRA. As a beginner, it’s typical to start by looking for existing issues to work on. If you need to open an issue, be sure to search first to see if a similar issue has already been opened. ...

Posted on: 2024-08-23 · Edited on: 2024-08-31 · Chi-Sheng Liu