GitLab
-
CI/CD Pipelines for Kubernetes Using GitLab CI
Modern software development demands rapid deployment cycles, scalability, and resilience. Kubernetes has emerged as the go-to orchestration platform, enabling scalable containerized application management. When combined with GitLab CI/CD pipelines, Kubernetes deployments become automated, repeatable, and reliable. This article explores the technical details of setting up CI/CD pipelines for Kubernetes using GitLab CI. Prerequisites Before configuring your CI/CD pipeline, ensure the following requirements are met: GitLab Account: Access to a GitLab repository where the CI/CD pipeline will be configured. Kubernetes Cluster:…
-
Implementing an IaC Platform With Terraform, Ansible, and GitLab
Given the need to create infrastructure across multiple environments while ensuring standardization and effective monitoring, it becomes crucial to provision these environments securely. To achieve this, adopting an immutable infrastructure approach, where environments are provisioned as code, is essential. The purpose of this article is to demonstrate a possible approach to achieving this by using GitLab’s structures to enforce templates and standards, Terraform to apply and maintain standards across servers, and Ansible for software provisioning and configuration, utilizing a shared…
-
How To Migrate Terraform State to GitLab CI/CD
As a software professional handling Infrastructure as Code (IaC), chances are you work a lot with Terraform. When helping new clients use IaC, it is common to simplify things, but managing a Terraform state file is the first challenge you face. Essentially, Terraform state contains sensitive information, which shouldn’t be stored by source control but, at the same time, won’t scale if you have multiple users working on the same Terraform state. The answer to that? Backends. It is important…
-
How To Execute Cypress E2E Test Cases Using CI/CD GitLab
Cypress is an end-to-end testing framework that is used to test web applications. It is an open-source JavaScript-based framework that enables developers to write and run automated tests for their web applications in a simple and easy way. Cypress provides a fast, reliable, and easy-to-use testing experience for web developers. It allows developers to write tests in JavaScript, and its powerful features include automatic reload of tests, time travel debugging, and interactive debugging. Cypress also provides a dashboard to view…
-
Deploying Heroku Apps To Staging and Production Environments With GitLab CI/CD
In a previous article, we explored how to automate deployments to Heroku using GitLab CI/CD. That setup deployed the app to its production environment every time we pushed code to the main branch. In this article, we’ll consider a slightly more nuanced approach: What if we have multiple environments? Most engineering organizations use at least three environments: a local development environment, a staging environment, and a production environment. Additionally, some engineering teams follow a Gitflow branching strategy, where they have…
-
How To Use GitLab for Simultaneous Execution of Jobs (Part 1)
Let us talk about GitLab. The web-based DevOps platform GitLab offers an entire suite of tools for software development, version control, continuous integration, delivery (CI/CD), and communication. Based on Git, the well-known distributed version control system, provides a centralized repository management solution. GitLab enables teams to efficiently manage their software development projects, track changes, and communicate on code. It offers tools for project management as well as capabilities like code repositories, problem tracking, code reviews, continuous integration, and deployment. Key…
-
GitLab Pages Preview
When I write Apache APISIX-related blog posts, I want my colleagues to review them first. However, it’s my blog, and since I mix personal and business posts, I want to keep them from the repository. I need a preview accessible only to a few, something like Vercel’s preview. I’m using GitLab Pages, and there’s no such out-of-the-box feature. I tried two methods: GitHub gists and PDFs. Both have issues. Gists don’t display as nicely as the final page. I tried…
-
GitOps: Flux vs Argo CD
GitOps is a software development and operations methodology that uses Git as the source of truth for deployment configurations. It involves keeping the desired state of an application or infrastructure in a Git repository and using Git-based workflows to manage and deploy changes. Two popular open-source tools that help organizations implement GitOps for managing their Kubernetes applications are Flux and Argo CD. In this article, we’ll take a closer look at these tools, their pros and cons, and how to…
-
Why Backup GitHub, GitLab, or Bitbucket—the Risk of Data Loss
If your organization uses version control systems like GitHub, GitLab, and Bitbucket, you probably are aware that code as intellectual property is the most valuable asset inside your company—you and your team spent thousands of hours (and money) to write, support, and improve projects. As CTO, IT manager, software-house owner, or team leader—you probably can imagine how much it would cost you to lose the code your team has been working on for months. But is it even possible? Data…