Catching Terraform Drift in CI Before a Manual Change Reaches Production

Catching Terraform Drift in CI Before a Manual Change Reaches Production

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering Someone changed a security group in the console to unblock themselves during an incident, and it never made it back into the .tf file. Terraform doesn’t know that happened until the next apply either quietly reverts it or, worse, doesn’t touch it because nothing in the … Read more

Spinning Up Per-Merge-Request Review Environments With GitLab CI Dynamic Environments

Spinning Up Per-Merge-Request Review Environments With GitLab CI Dynamic Environments

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering A dynamic environment: block in .gitlab-ci.yml turns every merge request into its own deployed, reachable review app, and turns every closed merge request into a cleanup job that tears it back down. Reviewers stop asking “can you deploy this so I can look at it” and … Read more

A Killed CI Job Left a Terraform State Lock Behind, and It Blocked Every Pipeline for 40 Minutes

A Killed CI Job Left a Terraform State Lock Behind, and It Blocked Every Pipeline for 40 Minutes

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering Every terraform plan across three separate pipelines started failing with the same message: Error acquiring the state lock. Nothing was running. The lock had been held by a CI job that got killed by a pipeline timeout forty minutes earlier, and it never got the chance … Read more

Setting Up Self-Hosted GitLab Runners: Tags, Scaling, and the Config Mistakes That Waste Compute

Setting Up Self-Hosted GitLab Runners: Tags, Scaling, and the Config Mistakes That Waste Compute

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering Registering a GitLab Runner with gitlab-runner register and walking away is how you end up with three untagged runners fighting over the same jobs, a deploy job that occasionally runs on whatever box happens to be free, and a host that falls over the moment four … Read more

We Leaked a Production Database Password Into Build Logs for Three Weeks Because One CI Variable Wasn’t Marked Masked

We Leaked a Production Database Password Into Build Logs for Three Weeks Because One CI Variable Wasn’t Marked Masked

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering For three weeks, our staging database password was sitting in plain text in every CI job log a specific pipeline produced. Anyone with read access to the project, which included a few external contractors, could open a job log and copy it out. Nobody stole it, … Read more

How to Structure a GitLab CI Pipeline With Stages and Caching (So Jobs Stop Reinstalling Everything)

How to Structure a GitLab CI Pipeline With Stages and Caching (So Jobs Stop Reinstalling Everything)

By KP  |  TZoneLabs  |  DevOps & Cloud Engineering The default .gitlab-ci.yml most teams start with runs npm ci or pip install in every single job, on every single commit. A pipeline with a build, test, and lint job doing the same install three times isn’t three times safer. It’s three times slower for no … Read more

Gitlab Installation : The Best way

Gitlab Installation : The Best way

In this lab, we will get our hands dirty with a versatile method for GitLab installation that transcends OS dependencies. Explore how we leverage the power of Docker Engine in the below lab to achieve this streamlined and efficient setup. The prerequisites will be the same. check previous Gitlab installation post create a directory and … Read more