41554 blogs · [ { "id": "01a08776-a6a8-7379-93b5-215a5e5ad2ce", "title": "AWS: using Certificate Manager to generate a TLS certificate for a delegated subdomain", "url": "https://fabianlee.org/2026/02/08/aws-using-certificate-manager-to-generate-a-tls-certificate-for-a-delegated-subdomain/", "published_at": "2026-02-08T19:26:50+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a5ebd3ef1", "title": "Porkbun DNS: create DNS records via API using curl", "url": "https://fabianlee.org/2026/02/08/porkbun-dns-create-dns-records-via-api-using-curl/", "published_at": "2026-02-08T13:10:05+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a5f49c10e", "title": "GitLab: query the project and group level GitLab CI/CD variables using curl", "url": "https://fabianlee.org/2026/01/29/gitlab-query-the-project-and-group-level-gitlab-ci-cd-variables-using-curl/", "published_at": "2026-01-29T13:30:49+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a5f6a289e", "title": "GitHub: workflow authentication to AWS using OIDC", "url": "https://fabianlee.org/2026/01/27/github-workflow-authentication-to-aws-using-oidc/", "published_at": "2026-01-27T03:48:42+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a5fa72da0", "title": "GitLab: pipeline authentication to AWS using OIDC", "url": "https://fabianlee.org/2026/01/26/gitlab-pipeline-authentication-to-aws-using-oidc/", "published_at": "2026-01-26T14:55:01+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a608163a2", "title": "AWS: retrieving standalone database instances by filtering out those with cluster membership", "url": "https://fabianlee.org/2026/01/11/aws-retrieving-standalone-database-instances-by-filtering-out-those-with-cluster-membership/", "published_at": "2026-01-11T19:24:36+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a60c78f5c", "title": "jq: Resolving “Cannot index array with string” errors from jq", "url": "https://fabianlee.org/2025/12/27/jq-resolving-cannot-index-array-with-string-errors-from-jq/", "published_at": "2025-12-27T12:20:15+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a61b8a88f", "title": "Flux: automating Helm chart deployments with Flux", "url": "https://fabianlee.org/2025/03/02/flux-automating-helm-chart-deployments-with-flux/", "published_at": "2025-03-02T18:54:16+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a6295df7f", "title": "Flux: installing Flux on a Kubernetes cluster with bootstrap command", "url": "https://fabianlee.org/2025/03/01/flux-installing-flux-on-a-kubernetes-cluster-with-bootstrap-command/", "published_at": "2025-03-01T23:29:45+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a62d39e79", "title": "GitHub: automated publish of Helm chart using GitHub Actions", "url": "https://fabianlee.org/2025/02/26/github-automated-publish-of-helm-chart-using-github-actions/", "published_at": "2025-02-26T13:35:00+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a62e93fd8", "title": "GitLab: pipeline to publish Helm chart to GitLab Package Registry", "url": "https://fabianlee.org/2025/02/24/gitlab-pipeline-to-publish-helm-chart-to-gitlab-package-registry/", "published_at": "2025-02-24T14:45:41+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a6311f21a", "title": "Kubernetes: showing all resources in a namespace", "url": "https://fabianlee.org/2025/02/07/kubernetes-showing-all-resources-in-a-namespace/", "published_at": "2025-02-07T15:16:04+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a63f79aa0", "title": "Mac: tensorflow-metal pip module on M1 chip for GPU support", "url": "https://fabianlee.org/2024/12/02/mac-tensorflow-metal-pip-module-on-m1-chip-for-gpu-support/", "published_at": "2024-12-02T01:07:05+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a64614ff3", "title": "Terraform: converting hex and decimal representation of random_id back to id", "url": "https://fabianlee.org/2024/11/29/terraform-converting-hex-and-decimal-representation-of-random_id-back-to-id/", "published_at": "2024-11-29T14:30:03+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a64ce1b0e", "title": "Terraform: importing a module by its individual resources", "url": "https://fabianlee.org/2024/11/29/terraform-importing-a-module-by-its-individual-resources/", "published_at": "2024-11-29T12:59:05+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a65003982", "title": "Kubernetes: deploying Kyverno for cluster policy control", "url": "https://fabianlee.org/2024/11/24/kubernetes-deploying-kyverno-for-cluster-policy-control/", "published_at": "2024-11-24T22:37:24+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a65aaabd4", "title": "Kubernetes: targeting workloads to a node pool/group using taints and tolerations", "url": "https://fabianlee.org/2024/11/21/kubernetes-targeting-workloads-to-a-node-pool-group-using-taints-and-tolerations/", "published_at": "2024-11-21T12:40:39+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a66510b75", "title": "Terraform: module for conditional include of related resources", "url": "https://fabianlee.org/2024/10/27/terraform-module-for-conditional-include-of-related-resources/", "published_at": "2024-10-27T22:31:21+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a666c6f25", "title": "Terraform: enabling the output of a child module", "url": "https://fabianlee.org/2024/10/27/terraform-enabling-the-output-of-a-child-module/", "published_at": "2024-10-27T22:05:55+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a671ff5b3", "title": "Bash: resolving awk run time error, negative field index", "url": "https://fabianlee.org/2024/10/18/bash-resolving-awk-run-time-error-negative-field-index/", "published_at": "2024-10-18T15:08:39+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a672d4635", "title": "Minikube: Istio Ambient mode on Minikube", "url": "https://fabianlee.org/2024/09/29/minikube-istio-ambient-mode-on-minikube/", "published_at": "2024-09-29T17:53:56+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a6791e1d5", "title": "Bash: falling back to file autocompletion if errors introduced by program autocompletion", "url": "https://fabianlee.org/2024/09/28/bash-falling-back-to-file-autocompletion-if-errors-introduced-by-program-autocompletion/", "published_at": "2024-09-28T14:43:54+00:00" }, { "id": "01a08776-a6a8-7379-93b5-215a67ae4c29", "title": "Github: security scanning built into GitHub Actions image build", "url": "https://fabianlee.org/2024/09/23/github-security-scanning-built-into-github-actions-image-build/", "published_at": "2024-09-23T17:52:58+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a605274f8", "title": "GitLab: security scanning built into GitLab Pipelines image build", "url": "https://fabianlee.org/2024/09/23/gitlab-security-scanning-built-into-gitlab-pipelines-image-build/", "published_at": "2024-09-23T01:25:55+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a609e3504", "title": "GCP: publishing and reading from Google PubSub Topic using Python client libraries", "url": "https://fabianlee.org/2024/09/22/gcp-publishing-and-reading-from-google-pubsub-topic-using-python-client-libraries/", "published_at": "2024-09-22T20:22:44+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a61417816", "title": "GCP: Installing KEDA on a GKE cluster with workload identity and testing Scalers", "url": "https://fabianlee.org/2024/09/21/gcp-installing-keda-on-a-gke-cluster-with-workload-identity-and-testing-scalers/", "published_at": "2024-09-21T11:30:04+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a61e7c7e6", "title": "GCP: historical log of GKE cluster and nodepool upgrades and scaling", "url": "https://fabianlee.org/2024/09/21/gcp-historical-log-of-gke-cluster-and-nodepool-upgrades-and-scaling/", "published_at": "2024-09-21T02:40:27+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6213aaad", "title": "Kubernetes: Trivy for container scanning from CLI", "url": "https://fabianlee.org/2024/09/16/kubernetes-trivy-for-container-scanning-from-cli/", "published_at": "2024-09-16T20:42:17+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a62b3d4c3", "title": "Linux: reducing disk usage of Systemd journal logs", "url": "https://fabianlee.org/2024/09/16/linux-reducing-disk-usage-of-systemd-journal-logs/", "published_at": "2024-09-16T14:30:54+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6395d859", "title": "Bash: calculating number of days till certificate expiration using openssl", "url": "https://fabianlee.org/2024/09/05/bash-calculating-number-of-days-till-certificate-expiration-using-openssl/", "published_at": "2024-09-05T12:39:09+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a640ce29b", "title": "GitLab: URL shortcut to override pipeline variable values", "url": "https://fabianlee.org/2024/09/02/gitlab-url-shortcut-to-override-pipeline-variable-values/", "published_at": "2024-09-02T18:58:10+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a64e7cade", "title": "OpenTofu: installing OpenTofu on Debian/Ubuntu", "url": "https://fabianlee.org/2024/09/01/opentofu-installing-opentofu-on-debian-ubuntu/", "published_at": "2024-09-01T16:16:09+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a65731664", "title": "Terraform: external yaml file as a contribution model for outside teams", "url": "https://fabianlee.org/2024/09/01/terraform-external-yaml-file-as-a-contribution-model-for-outside-teams/", "published_at": "2024-09-01T15:22:02+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a662726cf", "title": "Bash: avoiding newline artifacts when Base64 encoding a string", "url": "https://fabianlee.org/2024/09/01/bash-avoiding-newline-artifacts-when-base64-encoding-a-string/", "published_at": "2024-09-01T09:31:45+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a66d6c22e", "title": "yq: updating deeply nested elements", "url": "https://fabianlee.org/2024/06/23/yq-updating-deeply-nested-elements/", "published_at": "2024-06-23T02:29:07+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a66f73f92", "title": "yq: validate yaml syntax", "url": "https://fabianlee.org/2024/06/22/yq-validate-yaml-syntax/", "published_at": "2024-06-22T22:06:32+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6733d162", "title": "Ubuntu: pyenv for managing multiple Python versions and environments", "url": "https://fabianlee.org/2024/01/10/ubuntu-pyenv-for-managing-multiple-python-versions-and-environments/", "published_at": "2024-01-10T00:42:02+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a68072788", "title": "Ubuntu: LLama2 model on Ubuntu using llama.cpp", "url": "https://fabianlee.org/2024/01/07/ubuntu-llama2-model-on-ubuntu-using-llama-cpp/", "published_at": "2024-01-07T17:31:38+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a68c9879a", "title": "Mac: list deep dependencies of Homebrew formulae", "url": "https://fabianlee.org/2024/01/07/mac-list-deep-dependencies-of-homebrew-formulae/", "published_at": "2024-01-07T11:15:50+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a69094bee", "title": "Mac: LLama2 model on Apple Silicon and GPU using llama.cpp", "url": "https://fabianlee.org/2024/01/06/mac-llama2-model-on-apple-silicon-and-gpu-using-llama-cpp/", "published_at": "2024-01-06T21:05:38+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a69d028b4", "title": "minikube: installing minikube on Mac with secure TLS ingress", "url": "https://fabianlee.org/2024/01/06/minikube-installing-minikube-on-mac-with-secure-tls-ingress/", "published_at": "2024-01-06T00:15:09+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6a247fd0", "title": "Mac: bare-metal virtualization on Apple Silicon with virtualbuddy", "url": "https://fabianlee.org/2024/01/05/mac-bare-metal-virtualization-on-apple-silicon-with-virtualbuddy/", "published_at": "2024-01-05T21:35:47+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6a3cf11d", "title": "Mac: multiple Python versions/virtualenv with brew and pyenv", "url": "https://fabianlee.org/2024/01/04/mac-multiple-python-versions-virtualenv-with-brew-and-pyenv/", "published_at": "2024-01-04T16:24:21+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6aea4fc6", "title": "Bash: fixing “Too many authentication failures” for ssh with private key authentication", "url": "https://fabianlee.org/2023/12/21/bash-fixing-too-many-authentication-failures-for-ssh-with-private-key-authentication/", "published_at": "2023-12-21T20:46:49+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6b018712", "title": "Bash: indirect reference to evaluate a variable value", "url": "https://fabianlee.org/2023/12/06/bash-indirect-reference-to-evaluate-a-variable-value/", "published_at": "2023-12-06T11:56:35+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6b6089a5", "title": "Ubuntu: resolving systemd error, “Start request repeated too quickly”", "url": "https://fabianlee.org/2023/12/05/ubuntu-resolving-systemd-error-start-request-repeated-too-quickly/", "published_at": "2023-12-05T12:33:06+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6b976a1f", "title": "Vault: synchronizing secrets from Vault to Kubernetes using Vault Secrets Operator", "url": "https://fabianlee.org/2023/12/03/vault-synchronizing-secrets-from-vault-to-kubernetes-using-vault-secrets-operator/", "published_at": "2023-12-03T18:25:55+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6bee1c1a", "title": "minikube: exposing a deployment using ingress with secure TLS", "url": "https://fabianlee.org/2023/12/02/minikube-exposing-a-deployment-using-ingress-with-secure-tls/", "published_at": "2023-12-02T12:43:55+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6c5c7426", "title": "Bash: schedule a command that will be run at reboot using cron", "url": "https://fabianlee.org/2023/11/30/bash-schedule-a-command-that-will-be-run-at-reboot-using-cron/", "published_at": "2023-11-30T02:33:11+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6d309d3b", "title": "Vault: JWT authentication mode with multiple roles to isolate secrets", "url": "https://fabianlee.org/2023/11/29/vault-jwt-authentication-mode-with-multiple-roles-to-isolate-secrets/", "published_at": "2023-11-29T01:19:58+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6d73fedf", "title": "Ansible: resolving error “Invalid callback for stdout specified: yaml”", "url": "https://fabianlee.org/2023/11/23/ansible-resolving-error-invalid-callback-for-stdout-specified-yaml/", "published_at": "2023-11-23T00:08:36+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6d9e16c2", "title": "Vault: NodeJS Express web app using node-vault to fetch secrets", "url": "https://fabianlee.org/2023/11/13/vault-nodejs-express-web-app-using-node-vault-to-fetch-secrets/", "published_at": "2023-11-13T23:42:22+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6e007bef", "title": "Bash: calculate sum from a list of numbers", "url": "https://fabianlee.org/2023/11/13/bash-calculate-sum-from-a-list-of-numbers/", "published_at": "2023-11-13T12:36:37+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6ef5d82e", "title": "Vault: Spring Boot web app using Spring Cloud Vault to fetch secrets", "url": "https://fabianlee.org/2023/11/12/vault-spring-boot-web-app-using-spring-cloud-vault-to-fetch-secrets/", "published_at": "2023-11-12T18:11:50+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6ff48aca", "title": "Vault: HashiCorp Vault deployed into Kubernetes cluster for secret management", "url": "https://fabianlee.org/2023/11/10/vault-hashicorp-vault-deployed-into-kubernetes-cluster-for-secret-management/", "published_at": "2023-11-10T02:40:04+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a6ff96eb5", "title": "Bash: fixing SSH authentication error “bad ownership or modes for file/directory”", "url": "https://fabianlee.org/2023/11/05/bash-fixing-ssh-authentication-error-bad-ownership-or-modes-for-file-directory/", "published_at": "2023-11-05T13:46:15+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a705efd6c", "title": "GitLab: least privilege for Kube-API calls from GitLab Agent for Kubernetes", "url": "https://fabianlee.org/2023/10/22/gitlab-least-privilege-for-kube-api-calls-from-gitlab-agent-for-kubernetes/", "published_at": "2023-10-22T10:30:23+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a70e55aa2", "title": "GitLab: Continuous Deployment with Agent for Kubernetes and GitLab pipeline", "url": "https://fabianlee.org/2023/10/20/gitlab-continuous-deployment-with-agent-for-kubernetes-and-gitlab-pipeline/", "published_at": "2023-10-20T03:05:48+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a70e66e59", "title": "GitLab: self-managed runner for CI/CD jobs on GCP VM instances", "url": "https://fabianlee.org/2023/10/17/gitlab-self-managed-runner-for-ci-cd-jobs-on-gcp-vm-instances/", "published_at": "2023-10-17T14:57:18+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a713554d8", "title": "GCP: quota project error when invoking GCP API using ADC application-default", "url": "https://fabianlee.org/2023/10/14/gcp-quota-project-error-when-invoking-gcp-api-using-adc-application-default/", "published_at": "2023-10-14T20:05:53+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7200d54a", "title": "GitLab: invoking Ansible from a GitLab pipeline job", "url": "https://fabianlee.org/2023/10/14/gitlab-invoking-ansible-from-a-gitlab-pipeline-job/", "published_at": "2023-10-14T16:00:03+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a72fe5f82", "title": "Bash: change into directory just created with git clone", "url": "https://fabianlee.org/2023/10/13/bash-change-into-directory-just-created-with-git-clone/", "published_at": "2023-10-13T11:12:23+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7331d5ae", "title": "GitLab: add files to source repository as part of GitLab pipeline", "url": "https://fabianlee.org/2023/10/12/gitlab-add-files-to-source-repository-as-part-of-gitlab-pipeline/", "published_at": "2023-10-12T11:03:32+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a738ff96e", "title": "Bash: extracting first or last N octets, paths, or domain from string with fixed separator", "url": "https://fabianlee.org/2023/10/09/bash-extracting-first-or-last-n-octets-paths-or-domain-from-string-with-fixed-separator/", "published_at": "2023-10-09T17:51:57+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7472d4e0", "title": "GitLab: passing values between two jobs in pipeline", "url": "https://fabianlee.org/2023/09/29/gitlab-passing-values-between-two-jobs-in-pipeline/", "published_at": "2023-09-29T02:57:01+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7558caba", "title": "GitLab: automated build and publish of multi-platform container image with GitLab pipeline", "url": "https://fabianlee.org/2023/09/28/gitlab-automated-build-and-publish-of-multi-platform-container-image-with-gitlab-pipeline/", "published_at": "2023-09-28T00:25:09+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a76206795", "title": "Git: find branch name of newly applied tag", "url": "https://fabianlee.org/2023/09/21/git-find-branch-name-of-newly-applied-tag/", "published_at": "2023-09-21T11:37:42+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a76c77067", "title": "Helm: automated publishing of Helm repo with Github Actions", "url": "https://fabianlee.org/2023/09/17/helm-automated-publishing-of-helm-repo-with-github-actions/", "published_at": "2023-09-17T22:58:01+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a76e8e532", "title": "Helm: manually publishing Helm repo on Github using chart-releaser", "url": "https://fabianlee.org/2023/09/17/helm-manually-publishing-helm-repo-on-github-using-chart-releaser/", "published_at": "2023-09-17T21:59:18+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7751abaa", "title": "Github: automated build and publish of multi-platform container image with Github Actions", "url": "https://fabianlee.org/2023/09/16/github-automated-build-and-publish-of-multi-platform-container-image-with-github-actions/", "published_at": "2023-09-16T16:36:08+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7836ed1b", "title": "Docker: building multi-platform images that use fat manifest list/index", "url": "https://fabianlee.org/2023/09/16/docker-building-multi-platform-images-that-use-fat-manifest-list-index/", "published_at": "2023-09-16T11:52:25+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a78fb5fc4", "title": "Docker: QEMU emulation to run arm64 images from native amd64 host", "url": "https://fabianlee.org/2023/09/15/docker-qemu-emulation-to-run-arm64-images-from-native-amd64-host/", "published_at": "2023-09-15T00:57:13+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a790b3a2b", "title": "Docker: installing Docker CE on Ubuntu", "url": "https://fabianlee.org/2023/09/14/docker-installing-docker-ce-on-ubuntu/", "published_at": "2023-09-14T16:02:15+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a79740005", "title": "Helm: discovering Helm chart releases installed into Kubernetes cluster", "url": "https://fabianlee.org/2023/09/14/helm-discovering-helm-chart-releases-installed-into-kubernetes-cluster/", "published_at": "2023-09-14T12:11:23+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7a1c58e2", "title": "Kubernetes: patching container arguments array with kubectl and jq", "url": "https://fabianlee.org/2023/09/12/kubernetes-patching-container-arguments-array-with-kubectl-and-jq/", "published_at": "2023-09-12T22:41:11+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7af41b25", "title": "Kubernetes: HorizontalPodAutoscaler evaluation based on Prometheus metric", "url": "https://fabianlee.org/2023/09/09/kubernetes-horizontalpodautoscaler-evaluation-based-on-prometheus-metric/", "published_at": "2023-09-09T01:57:09+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7bd7551b", "title": "Kubernetes: implementing and testing a HorizontalPodAutoscaler", "url": "https://fabianlee.org/2023/09/02/kubernetes-implementing-and-testing-a-horizontalpodautoscaler/", "published_at": "2023-09-02T18:16:32+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7bffb0f5", "title": "Kubernetes: fixing x509 certificate errors from metric-server on K3s cluster", "url": "https://fabianlee.org/2023/09/02/kubernetes-fixing-x509-certificate-errors-from-metric-server-on-k3s-cluster/", "published_at": "2023-09-02T01:35:52+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7c7bbb92", "title": "Bash: decoding a JWT from the command line with jq", "url": "https://fabianlee.org/2023/08/27/bash-decoding-a-jwt-from-the-command-line-with-jq/", "published_at": "2023-08-27T19:40:26+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7d78a788", "title": "Terraform: error removing module containing legacy provider block, ‘Provider configuration not present’", "url": "https://fabianlee.org/2023/08/27/terraform-error-removing-module-containing-legacy-provider-block-provider-configuration-not-present/", "published_at": "2023-08-27T12:12:52+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7dd569ae", "title": "Ansible: resolving ‘could not initialize the preferred locale: unsupported locale setting’", "url": "https://fabianlee.org/2023/08/21/ansible-resolving-could-not-initialize-the-preferred-locale-unsupported-locale-setting/", "published_at": "2023-08-21T22:51:34+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7e0e3450", "title": "Kubernetes: evaluating full readiness of deployment, daemonset, or pod", "url": "https://fabianlee.org/2023/08/13/kubernetes-evaluating-full-readiness-of-deployment-daemonset-or-pod/", "published_at": "2023-08-13T19:42:14+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7e83de96", "title": "Terraform: terraform_remote_state to pass values to other configurations", "url": "https://fabianlee.org/2023/08/06/terraform-terraform_remote_state-to-pass-values-to-other-configurations/", "published_at": "2023-08-06T17:06:10+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7f5fb380", "title": "Kubernetes: creating TLS secrets with kustomize using embedded or external content", "url": "https://fabianlee.org/2023/08/06/kubernetes-creating-tls-secrets-with-kustomize-using-embedded-or-external-content/", "published_at": "2023-08-06T00:26:27+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a7fbed80f", "title": "Git: create a new empty branch with no history or commits", "url": "https://fabianlee.org/2023/08/05/git-create-a-new-empty-branch-with-no-history-or-commits/", "published_at": "2023-08-05T11:07:10+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a804ed828", "title": "Terraform: fixing error “querying Cloud Storage failed: storage: bucket doesn’t exist”", "url": "https://fabianlee.org/2023/06/11/terraform-fixing-error-querying-cloud-storage-failed-storage-bucket-doesnt-exist/", "published_at": "2023-06-11T15:20:02+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a81097d00", "title": "Bash: counting number of times substring is found in directory", "url": "https://fabianlee.org/2023/06/08/bash-counting-number-of-times-substring-is-found-in-directory/", "published_at": "2023-06-08T16:36:00+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a81ca3d73", "title": "GitLab: generating URL that can be used for Merge Request from fork to upstream", "url": "https://fabianlee.org/2023/05/21/gitlab-generating-url-that-can-be-used-for-merge-request-from-fork-to-upstream/", "published_at": "2023-05-21T11:53:50+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8262fd50", "title": "GCP: determining whether ASM is installed via asmcli or gcloud fleet", "url": "https://fabianlee.org/2023/05/11/gcp-determining-whether-asm-is-installed-via-asmcli-or-gcloud-fleet/", "published_at": "2023-05-11T02:11:23+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a82f23cbe", "title": "Bash: testing if a file exists, has content, and is recently modified", "url": "https://fabianlee.org/2023/05/10/bash-testing-if-a-file-exists-has-content-and-is-recently-modified/", "published_at": "2023-05-10T13:27:17+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8371bd9c", "title": "GCP: determining whether GKE cluster mode is Standard or Autopilot", "url": "https://fabianlee.org/2023/05/08/gcp-determining-whether-gke-cluster-mode-is-standard-or-autopilot/", "published_at": "2023-05-08T15:23:05+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a83c12cab", "title": "GKE: terraform lifecycle ‘ignore_changes’ to manage external changes to GKE cluster", "url": "https://fabianlee.org/2023/05/06/gke-terraform-lifecycle-ignore_changes-to-manage-external-changes-to-gke-cluster/", "published_at": "2023-05-06T19:48:57+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8494e95a", "title": "GCP: Cloud Run with build trigger coming from remote GitHub repository", "url": "https://fabianlee.org/2023/04/29/gcp-cloud-run-with-build-trigger-coming-from-remote-github-repository/", "published_at": "2023-04-29T16:21:39+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a84a0bd88", "title": "GCP: deploying a Python WSGI Gunicorn app on Cloud Run", "url": "https://fabianlee.org/2023/04/27/gcp-deploying-a-python-wsgi-gunicorn-app-on-cloud-run/", "published_at": "2023-04-27T14:04:57+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a84a7ba47", "title": "Kubernetes: using a delete patch with kustomize", "url": "https://fabianlee.org/2023/04/20/kubernetes-using-a-delete-patch-with-kustomize/", "published_at": "2023-04-20T16:08:35+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8534f930", "title": "GCP: Cloud Run/Function to handle requests to GKE cluster during maintenance", "url": "https://fabianlee.org/2023/04/18/gcp-cloud-run-function-to-handle-requests-to-gke-cluster-during-maintenance/", "published_at": "2023-04-18T12:19:33+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a859140f9", "title": "Ansible: adding custom apt repository with ‘signed-by’ gpg key", "url": "https://fabianlee.org/2023/04/17/ansible-adding-custom-apt-repository-with-signed-by-gpg-key/", "published_at": "2023-04-17T13:04:45+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8644207d", "title": "Ansible: generating templates with deep directory structure using with_filetree", "url": "https://fabianlee.org/2023/04/15/ansible-generating-templates-with-deep-directory-structure-using-with_filetree/", "published_at": "2023-04-15T23:14:51+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a8654aab0", "title": "GKE: show pod distribution across nodes and zones", "url": "https://fabianlee.org/2023/04/10/gke-show-pod-distribution-across-nodes-and-zones/", "published_at": "2023-04-10T12:37:05+00:00" }, { "id": "01a08776-a6a9-723b-b6ba-2b7a86836e64", "title": "GKE: upgrade Anthos Config Management for GKE cluster", "url": "https://fabianlee.org/2023/04/06/gke-upgrade-anthos-config-management-for-gke-cluster/", "published_at": "2023-04-06T15:08:40+00:00" } ] posts Claim your blog
Back to fabianlee.org
Blog · corpus.blog/blogs/fabianlee.org/posts

fabianlee.org

fabianlee.org

2026

2025

2024

2023