Posts

Showing posts from April, 2021

GitLab Patch Release: 13.11.3

Image
Today we are releasing version 13.11.3 for GitLab Community Edition and Enterprise Edition. This version resolves a number of regressions and bugs in this month's 13.11 release and prior versions. GitLab Community Edition and Enterprise Edition Fix broken build job for Auto DevOps Fix Instance-level Project Integration Management page for GitLab FOSS Important notes on upgrading This version does not include any new migrations, and for multi-node deployments, should not require any downtime . Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a /etc/gitlab/skip-auto-reconfigure file, which is only used for updates . Updating To update, check out our update page . GitLab subscriptions Access to GitLab Premium and Ultimate features is granted by a paid subscription . Alternatively, sign up for GitLab.com to use GitLab's own infrastru...

How we are closing the gap on replicating *everything* in GitLab Geo

Image
   This blog post is Unfiltered    In early 2020, it took 3.5 months of solid work to implement replication of a new data type in Geo. One year later, support can be added within a month – including development and all required reviews. How did we do it? First, let me introduce you to Geo. What is Geo? GitLab Geo is the solution for widely distributed development teams and for providing a warm-standby as part of a disaster recovery strategy. Geo replicates your GitLab instance to one or more local, read-only instances. What are data types? GitLab Geo was released in June 2016 with GitLab 8.9 with the ability to replicate project repositories to a read-only secondary GitLab site. Developers located near secondary sites could fetch project repositories as quickly as if they were near the primary. But what about wiki repositories? What about LFS objects or CI job artifacts? In GitLab, each of these things is represented by different Ruby classes, database table...

How a DevOps Platform helps protect against supply chain attacks

Image
The recent Solarwinds supply chain attack made us all question the security of our software development, deployment, and use, particularly in the era of DevOps and cloud-native applications. Security teams often struggle to ensure security is not an afterthought as software is developed faster, released more often, and uses tools that have been beyond the radar of the security team. In fact, when NIST describes DevSecOps they say that DevOps is being embraced " often without a full understanding and consideration of security ," putting CISOs at a disadvantage right when they are being tasked with ensuring a secure software supply chain. The problem with a traditional AppSec approach CISOs often struggle to bridge large investments in traditional application security (AppSec) tools with more modern approaches that embed security into the software factory itself. Traditional AppSec approaches lead to several challenges: Cost: One tool for each scan type can get expensive ...

Ruby 2.7: Understand and debug problems with heap compaction

Image
The GitLab Rails application runs on Puma , a multi-threaded Rack application server written in the new Ruby. We recently updated Puma to major version 5, which introduced a number of important changes , including support for compaction , a technique to reduce memory fragmentation in the Ruby heap. In this post we will describe what Puma's "nakayoshi fork" does, what compaction is, and some of the challenges we faced when first deploying it. Nakayoshi: A friendlier fork Puma 5 added a new configuration switch: nakayoshi_fork . This switch affects Puma's behavior when forking new workers from the primary process. It is largely based on a Ruby gem of the same name but adds new functionality. More specifically, enabling nakayoshi_fork in Puma will result in two additional steps prior to forking into new workers: Tenuring objects. By running several minor garbage collection cycles ahead of a fork , Ruby can promote survivors from the young to the old generation (...

GitLab Security Release: 13.11.2, 13.10.4, and 13.9.7

Image
Today we are releasing versions 13.11.2, 13.10.4, and 13.9.7 for GitLab Community Edition (CE) and Enterprise Edition (EE). These versions contain important security fixes, and we strongly recommend that all GitLab installations be upgraded to one of these versions immediately. GitLab releases patches for vulnerabilities in dedicated security releases. There are two types of security releases: a monthly, scheduled security release, released a week after the feature release (which deploys on the 22nd of each month), and ad-hoc security releases for critical vulnerabilities. For more information, you can visit our security FAQ . You can see all of our regular and security release blog posts here . In addition, the issues detailing each vulnerability are made public on our issue tracker 30 days after the release in which they were patched. We are dedicated to ensuring all aspects of GitLab that are exposed to customers or that host customer data are held to the highest security standa...

3 Ways to approach GitOps

Image
The term "GitOps" first emerged in the Kubernetes community as a way for organizations to enable Ops teams move at the pace of application development. With improved automation and less risk, GitOps is quickly becoming the workflow of choice for infrastructure automation. At GitLab, the approach to GitOps goes beyond Kubernetes. Before the buzz around GitOps picked up in the DevOps community, GitLab users and customers were applying GitOps principles to all types of infrastructure, including physical servers, virtual machines, containers, and Kubernetes clusters (multicloud and on-premise). What is GitOps? There are two main approaches to GitOps , a push-based approach and a pull-based approach. Push-based approach : A CI/CD tool pushes the changes to the environment. Applying GitOps via push is consistent with the approach used for application deployment. In this case, deployment targets for a push-based approach are not limited to Kubernetes. How the push-based approa...

Visiting Family During COVID-19 (Germany to New Zealand)

Image
   This blog post is Unfiltered    The story started in January 2020, around the time chatter of COVID-19 started. I was concerned, but still relatively confident I would be able to travel home and see my grandparents later that year. The initial plan was to fly home to New Zealand in November 2020, and fly back to Berlin in March 2021. Little did I know that countries would nearly all but shut their borders completely over the next few months, restricting travel to only residents and citizens. After the first lockdown, and as summer approached, COVID-19 improved drastically in Berlin with Germany being one of the few countries that were handling the virus with poise and targeted/reasonable restrictions. Back in New Zealand, there was a very strict lockdown that lasted a couple of months, aiming to eradicate the virus from the country. Fast forward to October 2020, Germany was getting hit with the start of their second wave and by November we had gone back into a ...

GitLab Patch Release: 13.11.1

Image
Today we are releasing version 13.11.1 for GitLab Community Edition and Enterprise Edition. This version resolves a number of regressions and bugs in this month's 13.11 release and prior versions. GitLab Community Edition and Enterprise Edition Change unsubscribe language for email campaign Remove legacy storage key from notification check Documentation about Pages Deployment migration Fix DAST_AUTH_VERIFICATION_URL docs Fix Geo replication for incident metrics uploads Fix zero count of vulnerability severity count Add docs about project upload API size enforcement Fix Rake command for Pages deploys to object storage Change search string that does not return results Bump gitlab-exporter to 10.2.0 (fixes Puma crash) Update git vendor to gitlab Important notes on upgrading This version does not include any new migrations, and for multi-node deployments, should not require any downtime . Please be aware that by default the Omnibus packages will stop, run migrations,...

GitLab 13.11 released with Kubernetes Agent and Pipeline Compliance

Image
On this Earth Day we are thinking about growth. Our customers are scaling their DevOps practices and with growth comes the need for even greater efficiencies and automated controls. The GitLab Kubernetes Agent is now available on GitLab.com to help you benefit from fast, pull-based deployments to your cluster, while GitLab.com manages the necessary server-side components of the Agent. Compliant Pipeline Configurations let you define enforceable pipelines that will run for any project assigned a corresponding compliance framework, even custom ones . We also have a host of features to improve pipeline efficiency and measurement, to provide On-call Scheduling , and even more security enhancements. These are just a few of the 50+ significant new features and improvements in this release. Controls to help you grow safely and efficiently Controls can keep your automation on track as you grow and scale while simplifying compliance efforts. The GitLab Kubernetes Agent is core to GitLab...