Skip to content

Instantly share code, notes, and snippets.

@vorlon001
vorlon001 / readme.md
Last active September 25, 2025 16:20
Temporal’s Internal Architecture

System Design Series: A Step-by-Step Breakdown of Temporal’s Internal Architecture

orignal:

Introduction

For the past few weeks, I’ve been diving deep into Temporal. It’s a really interesting tool that makes it extremely simple to write complex workflows. Over time, as I wrote workflows, changed configurations, and monitored metrics, I came to understand how incredibly complex its internal architecture is.

Unfortunately, there isn’t a lot of great technical documentation to understand its architecture anywhere on the internet. So I decided to dive deep into Temporal on my own, with whatever information I could find and figure out the gaps from directly reading the source code.

@vorlon001
vorlon001 / readme.md
Created August 10, 2025 15:02
Порядок деплоя компонент OpenStack Kolla ansoble 2025.1/2024.2

[fluentd]
   |
  \|/
[kolla-tools]
   |
  \|/
[crond]
 |
@vorlon001
vorlon001 / readme.md
Created July 27, 2025 08:42
Example Backup Realms keycloak 26.x


export KC_REALM=master
export KC_USERNAME=<.......>
export KC_PASSWORD=<.......>

KC_ACCESS_TOKEN=$(curl -s \
  -d "client_id=admin-cli" \
  -d "username=$KC_USERNAME" \
@vorlon001
vorlon001 / readme.md
Created July 8, 2025 20:27
Kubernetes Controller init only Object

url:

// USE CASES
// The following places should use the controller name constants, when:
//  1. defining a new app.ControllerDescriptor so it can be used in app.NewControllerDescriptors or app.KnownControllers:
//  2. used anywhere inside the controller itself:
//     2.1. [TODO] logging should use a canonical controller name when referencing a controller (Eg. Starting X, Shutting down X)
//     2.2. [TODO] emitted events should have an EventSource.Component set to the controller name (usually when initializing an EventRecorder)
@vorlon001
vorlon001 / readme.md
Created July 8, 2025 20:25
Kubernetes inside Statefulset or ControllerRevision

ControllerRevision

ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.

Ревизия контроллера

Версия контроллера реализует неизменяемый моментальный снимок данных о состоянии. Клиенты отвечают за сериализацию и десериализацию объектов, содержащих их внутреннее состояние. После успешного создания версии контроллера ее нельзя обновить. Сервер API не сможет выполнить проверку всех

@vorlon001
vorlon001 / readme.md
Last active June 27, 2025 19:09
ISTIO HELM CHART CREATE
wget https://github.com/istio/istio/releases/download/1.26.2/istio-1.26.2-linux-amd64.tar.gz
tar zxvf istio-1.26.2-linux-amd64.tar.gz

helm package istio-1.26.2/manifests/charts/default
helm package istio-1.26.2/manifests/charts/gateway/
helm package istio-1.26.2/manifests/charts/istio-cni/
helm package istio-1.26.2/manifests/charts/istio-control/istio-discovery
helm package istio-1.26.2/manifests/charts/ztunnel/
helm package istio-1.26.2/manifests/charts/gateways/istio-egress
@vorlon001
vorlon001 / readme.md
Created June 18, 2025 19:53
How view /proc/{ID}/environ
root@node2:~# cat /proc/1/environ | tr '\0' '\n'
HOME=/
init=/sbin/init
NETWORK_SKIP_ENSLAVED=
TERM=linux
BOOT_IMAGE=/boot/vmlinuz-6.8.0-57-generic
drop_caps=
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
cgroup_enable=memory
@vorlon001
vorlon001 / readme.md
Created June 17, 2025 21:11
CSI how to

https://habr.com/ru/companies/vk/articles/653035/

Давайте разберем всю ту магию, которая происходит при динамическом провижининге томов, — как создаются и удаляются тома с помощью CSI-драйвера.

Представим, что у нас есть нода с запущенным kubelet и отдельное хранилище, параметры которого описаны в StorageClass. При установке драйвера создается ресурс CSIDriver. Он уведомляет Kubernetes о возможности использования драйвера.

На ноде также запускается под csi-node, содержащий два контейнера: node-driver-registar и csi-driver. Node-driver-registar для каждой ноды создает еще один ресурс CSInode — с полем nodeID. Информацию для него он запрашивает через бинарник csi-driver, который предоставляет вендор хранилища.

@vorlon001
vorlon001 / readme.md
Created June 14, 2025 05:38
RFC IP Block [public]

RFC 5735: https://datatracker.ietf.org/doc/html/rfc5735

Address Block       Present Use                Reference
------------------------------------------------------------------
0.0.0.0/8           "This" Network             RFC 1122, Section 3.2.1.3
10.0.0.0/8          Private-Use Networks       RFC 1918
127.0.0.0/8         Loopback                   RFC 1122, Section 3.2.1.3
169.254.0.0/16      Link Local                 RFC 3927
172.16.0.0/12       Private-Use Networks       RFC 1918