<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>drunkcoding.net</title><description>Drunkcoding.net is a blog page from Steven Hoang, a highly experienced professional with extensive knowledge in technology and software development.</description><link>https://drunkcoding.net/</link><item><title>[.NET] Simplify Domain Events with DKNet.EfCore.Events</title><link>https://drunkcoding.net/posts/dotnet-07-efcore-domain-events/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-07-efcore-domain-events/</guid><description>Learn how DKNet.EfCore.Events brings elegant domain event management to Entity Framework Core, enabling clean separation of concerns and reliable event-driven architectures in your .NET applications.</description><pubDate>Sat, 25 Oct 2025 09:30:00 GMT</pubDate></item><item><title>[.NET] Simplify EF Core Lifecycle Management with DKNet.EfCore.Hooks</title><link>https://drunkcoding.net/posts/dotnet-06-efcore-hooks/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-06-efcore-hooks/</guid><description>Discover how DKNet.EfCore.Hooks revolutionizes Entity Framework Core development by providing pre and post-save hooks for implementing cross-cutting concerns like auditing, validation, event publishing, and caching in a clean, maintainable way.</description><pubDate>Sat, 25 Oct 2025 04:46:00 GMT</pubDate></item><item><title>[.NET] Streamline Your DTOs with DKNet.EfCore.DtoGenerator</title><link>https://drunkcoding.net/posts/dotnet-05-efcore-dto-generator/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-05-efcore-dto-generator/</guid><description>Discover how DKNet.EfCore.DtoGenerator uses Roslyn Source Generators to automatically create immutable DTOs from EF Core entities, eliminating boilerplate code while preserving validation attributes and type safety.</description><pubDate>Fri, 24 Oct 2025 09:30:00 GMT</pubDate></item><item><title>[Az] Day 12: Enabling MDM Devices by leverage Cloudflare Tunnel and WARP.</title><link>https://drunkcoding.net/posts/az-12-private-aks-enable-mdm-devices-cf-tunnel-warp/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-12-private-aks-enable-mdm-devices-cf-tunnel-warp/</guid><description> In this final tutorial, We&apos;ll discover how to safely expose the private AKS cluster and applications to the internet with Cloudflare. It&apos;ll delve into the benefits of using Cloudflare Tunnel and WARP, exploring alternative ways to provide secure access while maintaining the integrity of the corporate network. </description><pubDate>Sat, 12 Oct 2024 12:12:00 GMT</pubDate></item><item><title>[Az] Day 11: Exposing a Private AKS Application via Cloudflare Tunnel.</title><link>https://drunkcoding.net/posts/az-11-private-aks-expose-public-app-with-cloudflare-tunnel/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-11-private-aks-expose-public-app-with-cloudflare-tunnel/</guid><description> In this tutorial, We demonstrate how to securely expose an application running on a private AKS cluster to the internet using Cloudflare Tunnel, without the need for public IP addresses or open ports. We’ll also show how to apply authentication to all exposed applications and centralize access control using Azure Entra ID Groups, ensuring only authorized users have access. </description><pubDate>Sat, 12 Oct 2024 12:11:00 GMT</pubDate></item><item><title>[Az] Day 10: Implementing a Helm Deployment CI/CD AzureDevOps Pipeline for a Private AKS Cluster.</title><link>https://drunkcoding.net/posts/az-10-private-aks-helm-deployment/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-10-private-aks-helm-deployment/</guid><description> In this tutorial, We will create Helm charts for nginx-ingress and cert-manager, and set up a robust CI/CD pipeline using Azure DevOps for Helm deployments to a private AKS cluster. </description><pubDate>Sat, 12 Oct 2024 12:10:00 GMT</pubDate></item><item><title>[Az] Day 09: Synchronizing Container Images to ACR for a Private AKS Cluster Using CI/CD Pipelines.</title><link>https://drunkcoding.net/posts/az-09-private-aks-acr-image-sync/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-09-private-aks-acr-image-sync/</guid><description> In this tutorial, We explore the process of synchronizing container images with ACR for deployments in a private AKS cluster. We’ll cover how to configure and automate this synchronization using CI/CD pipelines, ensuring seamless updates and secure image management for private AKS environments. </description><pubDate>Sat, 12 Oct 2024 12:09:00 GMT</pubDate></item><item><title>[Az] Day 08: Setting Up a Deployment Pipeline for Pulumi Projects.</title><link>https://drunkcoding.net/posts/az-08-pulumi-setup-deploy-cicd-pipeline/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-08-pulumi-setup-deploy-cicd-pipeline/</guid><description> In this tutorial, We will walk through creating a Continuous Integration and Continuous Deployment (CI/CD) pipeline on Azure DevOps for our Pulumi projects. </description><pubDate>Sat, 12 Oct 2024 12:08:00 GMT</pubDate></item><item><title>[Az] Day 07: Setting Up a CloudPC with Windows 365 Enterprise.</title><link>https://drunkcoding.net/posts/az-07-setup-cloudpc-windows365-enterprise/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-07-setup-cloudpc-windows365-enterprise/</guid><description> In this tutorial, We will explore how to configure a CloudPC with Windows 365 Enterprise to establish a secure and efficient Virtual Desktop Infrastructure (VDI) for accessing a private AKS environment. </description><pubDate>Sat, 12 Oct 2024 12:07:00 GMT</pubDate></item><item><title>[Az] Day 06: Implement a private CloudPC and DevOps Agent Hub with Pulumi.</title><link>https://drunkcoding.net/posts/az-06-pulumi-private-aks-cloudpc-hub/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-06-pulumi-private-aks-cloudpc-hub/</guid><description> In this tutorial, guide us through setting up a secure CloudPC and DevOps agent hub, aimed at improving the management and operational capabilities of the private AKS environment using Pulumi. </description><pubDate>Sat, 12 Oct 2024 12:06:00 GMT</pubDate></item><item><title>[Az] Day 05: Implementing a Private AKS Cluster with Pulumi.</title><link>https://drunkcoding.net/posts/az-05-pulumi-private-aks-cluster-env/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-05-pulumi-private-aks-cluster-env/</guid><description> In this tutorial, We’ll build a private AKS cluster with advanced networking features. We’ll explore how to integrate the AKS cluster with the Hub VNet and apply the firewall policies we’ve created. </description><pubDate>Sat, 12 Oct 2024 12:05:00 GMT</pubDate></item><item><title>[Az] Day 04: Develop a VNet Hub for Private AKS on Azure.</title><link>https://drunkcoding.net/posts/az-04-pulumi-private-aks-hub-vnet-development/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-04-pulumi-private-aks-hub-vnet-development/</guid><description> In this tutorial, We’ll walk through the process of developing the first Hub VNet for a private AKS environment using Pulumi. We will demonstrate how to seamlessly integrate a VNet with an Azure Firewall, along with configuring outbound public IP addresses. </description><pubDate>Sat, 12 Oct 2024 12:04:00 GMT</pubDate></item><item><title>[Az] Day 03: Secret Management and Centralized Log Monitoring on Azure.</title><link>https://drunkcoding.net/posts/az-03-pulumi-private-ask-credential-log-management/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-03-pulumi-private-ask-credential-log-management/</guid><description> In this tutorial, walk us through the process of establishing a secure and automated system for secret management using Azure Key Vault. Additionally, we will cover how to implement centralized log monitoring using Azure Log Analytics and Application Insights, enhancing observability and operational efficiency. </description><pubDate>Sat, 12 Oct 2024 12:03:00 GMT</pubDate></item><item><title>[Az] Day 02: Private Azure Kubernetes (AKS) Environment Architecture.</title><link>https://drunkcoding.net/posts/az-02-pulumi-private-ask-env-architecture/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-02-pulumi-private-ask-env-architecture/</guid><description> In this tutorial, We will explore the design of a private AKS environment on Azure. We&apos;ll use multiple subnets, Azure Firewall, and other critical cloud services to construct a secure architecture. This setup is designed to keep sensitive workloads isolated and shielded from exposure to the public internet. </description><pubDate>Sat, 12 Oct 2024 12:02:00 GMT</pubDate></item><item><title>[Az] Day 01: Setup pulumi developer account</title><link>https://drunkcoding.net/posts/az-01-pulumi-setup-developer-account/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-01-pulumi-setup-developer-account/</guid><description>Start the cloud journey with Pulumi by setting up a developer account and deploying the first Azure resources. This guide walks you through creating a Pulumi account, installing the necessary CLI tools, and using TypeScript to manage Azure infrastructure as code.</description><pubDate>Sat, 12 Oct 2024 12:01:00 GMT</pubDate></item><item><title>[Az] A Comprehensive Series of Articles on Setting Up a Private AKS Environment on Azure with Pulumi.</title><link>https://drunkcoding.net/posts/az-00-pulumi-private-aks-environments/</link><guid isPermaLink="true">https://drunkcoding.net/posts/az-00-pulumi-private-aks-environments/</guid><description>In these series, Embark on a comprehensive journey to set up a fully private Azure Kubernetes Service (AKS) environment using Pulumi. This series guides you through the creation of Virtual Networks, configuration of Azure Firewalls, deployment of private AKS clusters, and integration with private Azure DevOps agents and a private CloudPC environment. Additionally, learn how to securely expose select applications to the public internet via Cloudflare Tunnels. Ideal for those aiming to build secure, scalable, and consistent environments across development, sandbox, and production stages.</description><pubDate>Sat, 12 Oct 2024 12:00:00 GMT</pubDate></item><item><title>[K8s] A Complete Series of Articles on Kubernetes Environment Locally</title><link>https://drunkcoding.net/posts/ks-00-series-k8s-setup-local-env-pi-cluster/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-00-series-k8s-setup-local-env-pi-cluster/</guid><description>A concise series guiding you through setting up a local Kubernetes environment using K3s on Raspberry Pi 4 clusters. Learn how to install K3s, configure Nginx Ingress, implement SSL certificates with Cert-Manager and Cloudflare, and host applications like Outline VPN and Longhorn.</description><pubDate>Wed, 25 Sep 2024 12:00:00 GMT</pubDate></item><item><title>[Tools] Automating Let&apos;s Encrypt Certificate Management with Azure Key Vault and Cloudflare</title><link>https://drunkcoding.net/posts/tools-automate-letsencrypt-certification-with-azure-keyvault/</link><guid isPermaLink="true">https://drunkcoding.net/posts/tools-automate-letsencrypt-certification-with-azure-keyvault/</guid><description>This post introduces a tool that automates the generation and renewal of Let&apos;s Encrypt certificates, importing them into Azure Key Vault.  It detects certificates nearing expiration and only regenerates those, supporting multiple domains managed via Cloudflare.  The tool runs as a monthly cron job on AKS, ensuring SSL certificates are always up to date without manual intervention.</description><pubDate>Mon, 26 Aug 2024 12:00:00 GMT</pubDate></item><item><title>[Tools] Cleaning Up Azure Service Bus Dead-Letter Queues with .NET</title><link>https://drunkcoding.net/posts/tools-az-service-bus-dead-letters-cleanup/</link><guid isPermaLink="true">https://drunkcoding.net/posts/tools-az-service-bus-dead-letters-cleanup/</guid><description>This post highlights the importance of regularly cleaning Azure Service Bus Dead-Letter Queues (DLQs) to prevent `QuotaExceededException` storage issues and maintain performance.  It explains how to automate the process with a .NET background service that moves dead-letter messages to Azure Blob Storage for future analysis,  along with a ready-to-use Docker image for easy deployment.</description><pubDate>Mon, 26 Aug 2024 12:00:00 GMT</pubDate></item><item><title>[.NET] Aspire, Simplifying Local Development Environment and Testing.</title><link>https://drunkcoding.net/posts/dotnet-04-aspire-local-env-tests/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-04-aspire-local-env-tests/</guid><description>Setting up a new project can be challenging, especially with the involvement of various technologies. This guide explores how .NET Aspire simplifies development by streamlining local environment setup, testing, and continuous integration, while also detailing the end-to-end process with an Azure DevOps CI/CD pipeline.</description><pubDate>Thu, 22 Aug 2024 12:00:00 GMT</pubDate></item><item><title>[DevOps] Automating Branch Cleanup in Azure DevOps with Node.js</title><link>https://drunkcoding.net/posts/tools-devops-repositories-branches-cleanup/</link><guid isPermaLink="true">https://drunkcoding.net/posts/tools-devops-repositories-branches-cleanup/</guid><description>A comprehensive guide on automating the cleanup of old branches in Azure DevOps Git repositories using a Node.js script. The script identifies branches that haven&apos;t been updated in the last 90 days and deletes them if they meet certain criteria.</description><pubDate>Wed, 21 Aug 2024 12:00:00 GMT</pubDate></item><item><title>[AKS] Implementing Cert Manager with Private Azure Kubernetes Service (AKS).</title><link>https://drunkcoding.net/posts/ks-08-cert-manager-with-private-aks/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-08-cert-manager-with-private-aks/</guid><description>Exploring the deployment and management of SSL certificates using cert-manager in a private Azure Kubernetes Service (AKS) environment.  This article covers the architecture involving CloudPC and AKS VNETs, the use of NGINX ingress for private connections, and the implementation of Cloudflare DNS management to secure internal communications.</description><pubDate>Thu, 15 Aug 2024 00:00:00 GMT</pubDate></item><item><title>[AZ] How to Scan and Disable Inactive Accounts on Azure EntraID</title><link>https://drunkcoding.net/posts/tools-az-scan-and-disable-entra-accounts/</link><guid isPermaLink="true">https://drunkcoding.net/posts/tools-az-scan-and-disable-entra-accounts/</guid><description>Inactive accounts in Azure EntraID can pose significant security risks. This post discusses the importance of implementing a housekeeping strategy and introduces a streamlined approach using Azure DevOps.</description><pubDate>Mon, 29 Jul 2024 12:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Hosting Longhorn on K3s (ARM)</title><link>https://drunkcoding.net/posts/ks-07-hosting-longhorn-on-kubernetes/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-07-hosting-longhorn-on-kubernetes/</guid><description>In this article, we will explore how to deploy Longhorn, a cloud-native distributed block storage system designed for Kubernetes on our K3s (ARM).  Longhorn is known for its lightweight, reliable, and open-source nature, which simplifies the process of adding persistent storage to Kubernetes clusters, making it easier to run stateful applications.</description><pubDate>Thu, 29 Feb 2024 00:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Hosting Outline VPN on Kubernetes</title><link>https://drunkcoding.net/posts/ks-06-hosting-outline-vpn-kubernetes/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-06-hosting-outline-vpn-kubernetes/</guid><description>Outline VPN, a comprehensive server and client software tool, is a free and open-source system developed by Google. In this article, we will delve into the process of hosting Outline VPN on Kubernetes and outlining the steps to expose connection ports via NGINX.</description><pubDate>Thu, 05 Oct 2023 00:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Nginx Alternative with Cloudflare Tunnel, Enables services to internet a public static IP address</title><link>https://drunkcoding.net/posts/ks-05-public-services-with-cloudflare-tunnel/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-05-public-services-with-cloudflare-tunnel/</guid><description>This robust solution provides a feasible alternative to Nginx when there&apos;s no public static IP address or port forwarding required. This guide walks us through the process step by step, enabling the services online more efficiently.</description><pubDate>Mon, 18 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Cert-Manager Alternative with Cloudflare, Implementing Free SSL Certificates for Kubernetes Clusters</title><link>https://drunkcoding.net/posts/ks-04-cert-manager-alternative-with-cloudflare/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-04-cert-manager-alternative-with-cloudflare/</guid><description>We explore the concept of using a Cert-Manager Alternative with Cloudflare to implement free SSL Certificates for Kubernetes clusters. This strategy leverages Cloudflare SSL certificates conjunction with the Kubernetes setup to provide a secure environment, replacing the need of Cert-Manager. Discover how this approach simplifies the process, and enhances the security of our Kubernetes clusters.</description><pubDate>Sun, 17 Sep 2023 02:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Installation of Cert-Manager, Implementing Free SSL Certificates for Kubernetes Clusters</title><link>https://drunkcoding.net/posts/ks-03-install-cert-manager-free-ssl-kubernetes-cluster/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-03-install-cert-manager-free-ssl-kubernetes-cluster/</guid><description>This comprehensive guide will help you to smoothly install Cert-Manager and implement free SSL certificates for Kubernetes clusters. It is designed with step-by-step instructions to facilitate a seamless installation process. Dive in and let&apos;s begin this journey for enhanced security!</description><pubDate>Sun, 17 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Installing Nginx Ingress on K3s Pi 4 Cluster</title><link>https://drunkcoding.net/posts/ks-02-install-nginx-on-pi-cluster/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-02-install-nginx-on-pi-cluster/</guid><description>This guide provides helpful tips for installing the Nginx Ingress on a K3s Raspberry Pi 4 cluster. Detailed and step-by-step instructions will ensure a seamless installation process. Let&apos;s get started!</description><pubDate>Sat, 16 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[k8s] Step-By-Step Guide: Installing K3s on a Raspberry Pi 4 Cluster</title><link>https://drunkcoding.net/posts/ks-01-install-k3s-on-pi-cluster/</link><guid isPermaLink="true">https://drunkcoding.net/posts/ks-01-install-k3s-on-pi-cluster/</guid><description>In this guide, sharing some useful tips to help you seamlessly install K3s on a Raspberry Pi 4 cluster. Let&apos;s dive in and start the installation process.</description><pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[.NET] Optimising .NET Core with Multi-Platform Docker Images: A Complete Guide</title><link>https://drunkcoding.net/posts/dotnet-03-multi-platform-dockerfile/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-03-multi-platform-dockerfile/</guid><description>In this post, sharing about Docker optimisation for the .NET Core framework and build a multi-platform image using the capabilities of Docker buildx, enabling us to create multi-platform images that can seamlessly run on diverse architectures. Moreover, we will discuss the integration of GitAction into the image-building process, empowering us to automate creating and publishing multi-platform Docker images.</description><pubDate>Sun, 10 Sep 2023 00:00:00 GMT</pubDate></item><item><title>[.NET] Small tool for Azure AD to AD User Write back</title><link>https://drunkcoding.net/posts/dotnet-02-tool-for-azure-ad-to-adss-users-writeback/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-02-tool-for-azure-ad-to-adss-users-writeback/</guid><description>Sharing a small tool-self developed to sync the users from AzureAD to on=premise Active Directory Service.</description><pubDate>Wed, 13 Oct 2021 00:00:00 GMT</pubDate></item><item><title>[.NET] Anti Forgery Token and Machine Key for MVC on IIS</title><link>https://drunkcoding.net/posts/dotnet-01-mvc-anti-forgery-token-and-machine-key/</link><guid isPermaLink="true">https://drunkcoding.net/posts/dotnet-01-mvc-anti-forgery-token-and-machine-key/</guid><description>The Medium post explains the importance of anti-forgery tokens and machine keys in web application security against CSRF attacks. It provides implementation details for ASP.NET, including the use of AntiForgeryToken and configuring the machine key. The post emphasizes the necessity of implementing both measures to enhance overall security.</description><pubDate>Tue, 14 Feb 2017 00:01:00 GMT</pubDate></item></channel></rss>