<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>donaldsebleung</title>
    <link>https://www.donaldsebleung.com/feed/rss</link>
    <description>donaldsebleung's personal website and DevOps blog</description>
    <atom:link href="https://www.donaldsebleung.com/feed/rss" rel="self"/>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <image>
      <url>https://www.donaldsebleung.com/assets/images/avatar.png</url>
      <title>donaldsebleung</title>
      <link>https://www.donaldsebleung.com/feed/rss</link>
    </image>
    <language>en</language>
    <lastBuildDate>Sun, 08 Mar 2026 02:54:20 +0000</lastBuildDate>
    <item>
      <title>Exploring the Ascend ecosystem with OrangePi AIpro (20T)</title>
      <link>https://donaldsebleung.com/blog/20260302-exploring-the-ascend-ecosystem-with-orangepi-aipro-20t</link>
      <description>Exploring the Ascend ecosystem with OrangePi AIpro (20T)</description>
      <content:encoded>OrangePi AIpro (20T) is a development board under the Orange Pi brand owned by Xunlong Software and released in 2024. It features 4 CPU cores plus a neural processing unit (NPU) based on Huawei's Ascend technology capable of running modern AI/ML workloads. The embedded NPU is capable of performing 20 TOPS or trillion operations per second.

Follow me as I unpack and set up my OrangePi AIpro (20T) development board for exploring AI/ML applications and use cases.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20260302-exploring-the-ascend-ecosystem-with-orangepi-aipro-20t</guid>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Deploying DeepSeek-R1 for distributed inferencing with Ray</title>
      <link>https://donaldsebleung.com/blog/20260217-deploying-deepseek-r1-for-distributed-inferencing-with-ray</link>
      <description>Deploying DeepSeek-R1 for distributed inferencing with Ray</description>
      <content:encoded>Follow me as I deploy a distilled variant of DeepSeek-R1 across 2 GPU-enabled cloud servers on Huawei Cloud with vLLM and Ray.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20260217-deploying-deepseek-r1-for-distributed-inferencing-with-ray</guid>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Running DeepSeek-R1 on a commodity laptop with vLLM</title>
      <link>https://donaldsebleung.com/blog/20260214-running-deepseek-r1-on-a-commodity-laptop-with-vllm</link>
      <description>Running DeepSeek-R1 on a commodity laptop with vLLM</description>
      <content:encoded>Follow me as I deploy my first locally hosted distilled variant of the DeepSeek-R1 model on a commodity Redmi Book 14 2024 laptop with vLLM in this exploratory lab.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20260214-running-deepseek-r1-on-a-commodity-laptop-with-vllm</guid>
      <pubDate>Sat, 14 Feb 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Exploring the developer ecosystem on Huawei MateBook Pro</title>
      <link>https://donaldsebleung.com/blog/20260118-exploring-the-developer-ecosystem-on-huawei-matebook-pro</link>
      <description>Exploring the developer ecosystem on Huawei MateBook Pro</description>
      <content:encoded>Follow me as I explore the developer tooling and ecosystem available on the Huawei MateBook Pro since HarmonyOS 6.x, plus some of the improvements that I would like to see on HarmonyOS 6.x in the near future.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20260118-exploring-the-developer-ecosystem-on-huawei-matebook-pro</guid>
      <pubDate>Sun, 18 Jan 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Implementing GitOps practices with Argo CD</title>
      <link>https://donaldsebleung.com/blog/20260117-implementing-gitops-practices-with-argo-cd</link>
      <description>Implementing GitOps practices with Argo CD</description>
      <content:encoded>Learn how to deploy a sample podinfo application via GitOps with Argo CD using the Argo CD Operator</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20260117-implementing-gitops-practices-with-argo-cd</guid>
      <pubDate>Sat, 17 Jan 2026 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Configuring Rook with external Ceph storage</title>
      <link>https://donaldsebleung.com/blog/20250923-configuring-rook-with-external-ceph-storage</link>
      <description>Configuring Rook with external Ceph storage</description>
      <content:encoded>Learn how to configure Rook to connect to an external Ceph cluster provisioned with cephadm</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20250923-configuring-rook-with-external-ceph-storage</guid>
      <pubDate>Tue, 23 Sep 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Provisioning Ceph storage with cephadm</title>
      <link>https://donaldsebleung.com/blog/20250921-provisioning-ceph-storage-with-cephadm</link>
      <description>Provisioning Ceph storage with cephadm</description>
      <content:encoded>Learn how to provision a Ceph cluster with cephadm and provision block storage for applications</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20250921-provisioning-ceph-storage-with-cephadm</guid>
      <pubDate>Sun, 21 Sep 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Implementing Pod-to-Pod encryption with Istio Ambient Mesh</title>
      <link>https://donaldsebleung.com/blog/20250420-implementing-pod-to-pod-encryption-with-istio-ambient-mesh</link>
      <description>Implementing Pod-to-Pod encryption with Istio Ambient Mesh</description>
      <content:encoded>Learn how to implement Pod-to-Pod encryption with Istio Ambient Mesh</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20250420-implementing-pod-to-pod-encryption-with-istio-ambient-mesh</guid>
      <pubDate>Sun, 20 Apr 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Uncovering a reverse shell attack in real time</title>
      <link>https://donaldsebleung.com/blog/20250413-uncovering-a-reverse-shell-attack-in-real-time</link>
      <description>Uncovering a reverse shell attack in real time</description>
      <content:encoded>Uncovering a reverse shell attack in real time with Tracee and lessons learned from this incident</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20250413-uncovering-a-reverse-shell-attack-in-real-time</guid>
      <pubDate>Sun, 13 Apr 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Understanding the security benefits of eBPF-based vs. traditional service meshes</title>
      <link>https://donaldsebleung.com/blog/20250304-understanding-the-security-benefits-of-ebpf-based-vs-traditional-service-meshes</link>
      <description>Understanding the security benefits of eBPF-based vs. traditional service meshes</description>
      <content:encoded>Understand the security pitfalls of traditional user-space service meshes and how eBPF-based service meshes elegantly address these issues</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://donaldsebleung.com/blog/20250304-understanding-the-security-benefits-of-ebpf-based-vs-traditional-service-meshes</guid>
      <pubDate>Tue, 04 Mar 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Operating Kafka at scale with Strimzi</title>
      <link>https://www.donaldsebleung.com/blog/20250119-operating-kafka-at-scale-with-strimzi</link>
      <description>Operating Kafka at scale with Strimzi</description>
      <content:encoded>Deploy, manage and scale Kafka clusters on Kubernetes with ease using the Strimzi operator</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20250119-operating-kafka-at-scale-with-strimzi</guid>
      <pubDate>Sun, 19 Jan 2025 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Enforcing recommended practices on Kubernetes with ValidatingAdmissionPolicy</title>
      <link>https://www.donaldsebleung.com/blog/20241228-enforcing-recommended-practices-on-kubernetes-with-validatingadmissionpolicy</link>
      <description>Enforcing recommended practices on Kubernetes with ValidatingAdmissionPolicy</description>
      <content:encoded>Enforce compliance controls and mitigate platform vulnerabilities with Kubernetes ValidatingAdmissionPolicy.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20241228-enforcing-recommended-practices-on-kubernetes-with-validatingadmissionpolicy</guid>
      <pubDate>Sat, 28 Dec 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Protecting stateful workloads on Kubernetes with Kanister</title>
      <link>https://www.donaldsebleung.com/blog/20240609-protecting-stateful-workloads-on-kubernetes-with-kanister</link>
      <description>Protecting stateful workloads on Kubernetes with Kanister</description>
      <content:encoded>Define application-specific backup and recovery operations for your stateful workloads on Kubernetes with Kanister, a CNCF sandbox project and an integral component of the enterprise-ready Veeam Kasten Kubernetes data protection platform.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20240609-protecting-stateful-workloads-on-kubernetes-with-kanister</guid>
      <pubDate>Sun, 09 Jun 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Keycloak on Fedora Workstation with Podman - Fedora Magazine</title>
      <link>https://fedoramagazine.org/keycloak-on-fedora-workstation-with-podman/</link>
      <description>Keycloak on Fedora Workstation with Podman - Fedora Magazine</description>
      <content:encoded>I would like to thank the Fedora Project for selecting my article on Keycloak for publication. Deploy an enterprise-ready identity and access management (IAM) solution with Podman on Fedora Linux with SSL/TLS encryption enabled, learn how to configure a realm with mandatory MFA enforcement for all users, create a user and observe single-sign on (SSO) in action with this hands-on lab.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://fedoramagazine.org/keycloak-on-fedora-workstation-with-podman/</guid>
      <pubDate>Wed, 06 Mar 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Deploying Keycloak on Fedora Workstation with Podman</title>
      <link>https://www.donaldsebleung.com/blog/20240225-deploying-keycloak-on-fedora-workstation-with-podman</link>
      <description>Deploying Keycloak on Fedora Workstation with Podman</description>
      <content:encoded>Deploy an enterprise-ready identity and access management (IAM) solution with Podman on Fedora Linux with SSL/TLS encryption enabled, learn how to configure a realm with mandatory MFA enforcement for all users, create a user and observe single-sign on (SSO) in action with this hands-on lab.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20240225-deploying-keycloak-on-fedora-workstation-with-podman</guid>
      <pubDate>Sun, 25 Feb 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Running workloads at the edge with MicroK8s</title>
      <link>https://www.donaldsebleung.com/blog/20240213-running-workloads-at-the-edge-with-microk8s</link>
      <description>Running workloads at the edge with MicroK8s</description>
      <content:encoded>Get started with Kubernetes in no time with MicroK8s, deploy a website with just a few simple commands and obtain a verified HTTPs certificate automatically with cert-manager and Let's Encrypt.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20240213-running-workloads-at-the-edge-with-microk8s</guid>
      <pubDate>Tue, 13 Feb 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>OKD on Fedora Workstation with CRC - Fedora Magazine</title>
      <link>https://fedoramagazine.org/okd-on-fedora-workstation-with-crc/</link>
      <description>OKD on Fedora Workstation with CRC - Fedora Magazine</description>
      <content:encoded>I would like to thank the Fedora Project for selecting my article on OKD for publication. Basic Kubernetes concepts are explained from the ground up - no prior Kubernetes experience required.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://fedoramagazine.org/okd-on-fedora-workstation-with-crc/</guid>
      <pubDate>Mon, 22 Jan 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Exploring OpenShift with CRC</title>
      <link>https://www.donaldsebleung.com/blog/20240114-exploring-openshift-with-crc</link>
      <description>Exploring OpenShift with CRC</description>
      <content:encoded>Learn all about OpenShift through this hands-on exploration session, the developer and operations friendly Kubernetes distro by Red Hat.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20240114-exploring-openshift-with-crc</guid>
      <pubDate>Sun, 14 Jan 2024 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Running stateful workloads on Kubernetes with Rook Ceph</title>
      <link>https://www.donaldsebleung.com/blog/20231226-running-stateful-workloads-on-kubernetes-with-rook-ceph</link>
      <description>Running stateful workloads on Kubernetes with Rook Ceph</description>
      <content:encoded>Learn about the CNCF Graduated Rook Ceph distributed storage solution for providing redundant enterprise-grade storage for your on-premises Kubernetes clusters through this hands-on lab exercise.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20231226-running-stateful-workloads-on-kubernetes-with-rook-ceph</guid>
      <pubDate>Tue, 26 Dec 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Investigating a failed VolumeSnapshot with NFS on Kubernetes</title>
      <link>https://www.donaldsebleung.com/blog/20231114-investigating-a-failed-volumesnapshot-with-nfs-on-kubernetes</link>
      <description>Investigating a failed VolumeSnapshot with NFS on Kubernetes</description>
      <content:encoded>Understand the security implications and drawbacks of adopting NFS as your storage backend for on-premises Kubernetes clusters so as to make an informed decision on selecting a secure, reliable, enterprise-ready storage backend for your on-premises Kubernetes clusters.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20231114-investigating-a-failed-volumesnapshot-with-nfs-on-kubernetes</guid>
      <pubDate>Tue, 14 Nov 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Configuring an IPsec VPN connection with OpenIKED</title>
      <link>https://www.donaldsebleung.com/blog/20230916-configuring-an-ipsec-vpn-connection-with-openiked</link>
      <description>Configuring an IPsec VPN connection with OpenIKED</description>
      <content:encoded>Take a deep dive into applied computer networking by constructing two disconnected networks with OpenBSD as the gateway device in each subnet, then connect them together by establishing an IPsec VPN connection with OpenIKED.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230916-configuring-an-ipsec-vpn-connection-with-openiked</guid>
      <pubDate>Sat, 16 Sep 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Configuring a simple router with OpenBSD</title>
      <link>https://www.donaldsebleung.com/blog/20230912-configuring-a-simple-router-with-openbsd</link>
      <description>Configuring a simple router with OpenBSD</description>
      <content:encoded>Solidify your knowledge on computer networking by installing OpenBSD on a physical or virtual appliance and configuring it as a gateway device.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230912-configuring-a-simple-router-with-openbsd</guid>
      <pubDate>Tue, 12 Sep 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Evaluating and securing your Kubernetes infrastructure with kube-bench</title>
      <link>https://www.donaldsebleung.com/blog/20230825-evaluating-and-securing-your-kubernetes-infrastructure-with-kube-bench</link>
      <description>Evaluating and securing your Kubernetes infrastructure with kube-bench</description>
      <content:encoded>Evaluate your cluster against the CIS Kubernetes benchmark with kube-bench and apply remediations to ensure your cluster is compliant and secure.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230825-evaluating-and-securing-your-kubernetes-infrastructure-with-kube-bench</guid>
      <pubDate>Fri, 25 Aug 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Scanning and remediating vulnerabilities with Grype</title>
      <link>https://www.donaldsebleung.com/blog/20230819-scanning-and-remediating-vulnerabilities-with-grype</link>
      <description>Scanning and remediating vulnerabilities with Grype</description>
      <content:encoded>Uncover existing vulnerabilities with a container image scanning tool such as Grype and learn how to minimize the attack surface of your container images.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230819-scanning-and-remediating-vulnerabilities-with-grype</guid>
      <pubDate>Sat, 19 Aug 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Implementing continuous delivery pipelines with GitHub Actions</title>
      <link>https://www.donaldsebleung.com/blog/20230802-implementing-continuous-delivery-pipelines-with-github-actions</link>
      <description>Implementing continuous delivery pipelines with GitHub Actions</description>
      <content:encoded>Build an end-to-end (E2E) CI/CD pipeline from scratch for a Python microservice which automatically executes unit and integration tests, builds a container image from a Dockerfile, pushes the image to Docker Hub and deploys the microservice to a local kind Kubernetes cluster.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230802-implementing-continuous-delivery-pipelines-with-github-actions</guid>
      <pubDate>Wed, 02 Aug 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Enabling local project collaboration with Gitea</title>
      <link>https://www.donaldsebleung.com/blog/20230729-enabling-local-project-collaboration-with-gitea</link>
      <description>Enabling local project collaboration with Gitea</description>
      <content:encoded>Explore how to deploy a lightweight private Git server with minimal effort to Kubernetes with Gitea and Helm.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230729-enabling-local-project-collaboration-with-gitea</guid>
      <pubDate>Sat, 29 Jul 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Securing your Kubernetes workloads with Sigstore</title>
      <link>https://www.donaldsebleung.com/blog/20230720-securing-your-kubernetes-workloads-with-sigstore</link>
      <description>Securing your Kubernetes workloads with Sigstore</description>
      <content:encoded>Learn how to secure your CI/CD pipelines from software supply chain attacks by leveraging the Cosign and policy-controller projects from Sigstore.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230720-securing-your-kubernetes-workloads-with-sigstore</guid>
      <pubDate>Thu, 20 Jul 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Patching a directory traversal attack vulnerability</title>
      <link>https://www.donaldsebleung.com/blog/20230715-patching-a-directory-traversal-attack-vulnerability</link>
      <description>Patching a directory traversal attack vulnerability</description>
      <content:encoded>Learn how seemingly innocuous bugs in Python code can manifest themselves as security loopholes that can be exploited by malicious actors and how to prevent these bugs from appearing in the first place.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230715-patching-a-directory-traversal-attack-vulnerability</guid>
      <pubDate>Sat, 15 Jul 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Migrating my personal website to an event-driven serverless architecture</title>
      <link>https://www.donaldsebleung.com/blog/20230715-migrating-my-personal-website-to-an-event-driven-serverless-architecture</link>
      <description>Migrating my personal website to an event-driven serverless architecture</description>
      <content:encoded>Explore the motivation behind migrating my personal website from a traditional LAMP architecture to a cloud native serverless architecture and the advantages of doing so.</content:encoded>
      <author>donaldsebleung@gmail.com (Donald Sebastian Leung)</author>
      <guid isPermaLink="false">https://www.donaldsebleung.com/blog/20230715-migrating-my-personal-website-to-an-event-driven-serverless-architecture</guid>
      <pubDate>Sat, 15 Jul 2023 00:00:00 +0800</pubDate>
    </item>
  </channel>
</rss>
