Skip to content
View danangan's full-sized avatar
🚀
🚀

Block or report danangan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
danangan/README.md

Hi, I'm Danang 👋

I build and operate cloud infrastructure, with a focus on AWS, Kubernetes, and Terraform. I also write code in Python, JavaScript/TypeScript, and Go!

🚀 Featured Work

Kubernetes Helm

An experimental DIY project to deploy an open-source LLM to AWS EKS, using vLLM as the runtime. It uses my other two projects below as the main building blocks for its infrastructure and observability setup:

  • Infrastructure: the EKS cluster is provisioned with terraform-aws-helm-k8s, and the LLM runs as a container using S3 as model storage.
  • Observability: monitoring is provided by k8s-obstack, with vLLM's traces and metrics wired in so they're visible in Grafana.

Terraform AWS Kubernetes Helm

This Terraform module provisions a Kubernetes cluster with batteries included:

  • Networking: VPC and subnets set up for the cluster
  • The cluster itself: a managed EKS control plane
  • Node groups: CPU and GPU-based nodes for different types of workloads
  • Ingress: the AWS Load Balancer Controller for Kubernetes ingress
  • Container image repository: a repository for storing your workload container images
  • Persistence: EBS and EFS-based persistence for your workloads
  • (Optional) Cilium as the CNI instead of the VPC CNI and kube-proxy
  • (Optional) EKS Auto Mode if you prefer EKS to manage the nodes, ingress, and storage itself

This module is perfect for spinning up a k8s cluster for a small project where you want tight control over your compute resources (for cost-control purposes). Otherwise, you can always enable EKS Auto Mode.

Usage:

module "my_k8s_cluster" {
  source = "github.com/danangan/terraform-aws-helm-k8s"

  cluster_name = "my-k8s-cluster"
}

Kubernetes Helm

An opinionated Helm chart that provides a complete observability stack for Kubernetes application and cluster monitoring, built with OpenTelemetry, Prometheus, Loki, Tempo, and Grafana.

Features:

  • A standardised entry point for metrics, logs, and traces using the OTel Collector
  • Metrics, logs, and traces collection for your apps running in Kubernetes
  • Kubernetes cluster metrics
  • Host (node) metrics, including GPU metrics (NVIDIA only)
  • A Grafana UI to query and explore metrics, logs, and traces
  • Persistent volumes for the backends
  • Ingress setup to expose the Grafana UI

Usage:

helm install obstack oci://ghcr.io/danangan/charts/obstack --version <version>

Pinned Loading

  1. terraform-aws-k8s terraform-aws-k8s Public

    k8s cluster setup in AWS using EKS

    HCL

  2. python-fast-api python-fast-api Public

    Simple example of python REST API using FastAPI

    Python

  3. python-mathkit-helpers python-mathkit-helpers Public

    A sampel python package distributed to PyPI

    Python