[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"/blog/the-ultimate-guide-to-gitops-with-gitlab":3,"navigation-en-us":177,"banner-en-us":605,"footer-en-us":615,"blog-post-authors-en-us-Viktor Nagy":856,"blog-related-posts-en-us-the-ultimate-guide-to-gitops-with-gitlab":871,"blog-promotions-en-us":897,"next-steps-en-us":951},{"id":4,"title":5,"authors":6,"body":8,"category":156,"date":157,"description":158,"extension":159,"externalUrl":160,"faq":160,"featured":161,"heroImage":162,"meta":163,"navigation":164,"path":165,"seo":166,"slug":170,"stem":171,"tags":172,"template":175,"updatedDate":160,"__hash__":176},"blogPosts/en-us/blog/the-ultimate-guide-to-gitops-with-gitlab.md","The ultimate guide to GitOps with GitLab",[7],"Viktor Nagy",{"type":9,"value":10,"toc":152},"minimark",[11,21,24,34,37,46,49,58,61,70,73,82,85,94,97,105,108,117,120,125],[12,13,14,15,20],"p",{},"It is possible to use GitLab as a best-in-class GitOps tool, and this blog post series is going to show you how. ",[16,17,19],"a",{"href":18},"/topics/gitops/","GitOps"," is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD tooling, and applies them to infrastructure automation. This series of easy-to-follow tutorials will focus on different user problems, including provisioning, managing a base infrastructure, and deploying various third-party or custom applications on top of them, that can be solved by pairing GitOps with GitLab.",[12,22,23],{},"Here are 8 tutorials on how to do GitOps with GitLab:",[12,25,26],{},[27,28,29,30],"strong",{},"1. ",[16,31,33],{"href":32},"/blog/gitops-with-gitlab/","Here's how to do GitOps with GitLab",[12,35,36],{},"This tutorial sets the stage for what you will learn throughout the series, including the tech concepts you'll need to know.",[12,38,39],{},[27,40,41,42],{},"2. ",[16,43,45],{"href":44},"/blog/gitops-with-gitlab-infrastructure-provisioning/","Infrastructure provisioning with GitLab and Terraform",[12,47,48],{},"This tutorial walks you through setting up the underlying infrastructure using GitLab and Terraform.",[12,50,51],{},[27,52,53,54],{},"3. ",[16,55,57],{"href":56},"/blog/gitops-with-gitlab-connecting-the-cluster/","Connect with a Kubernetes cluster",[12,59,60],{},"This tutorial demonstrates how to connect a Kubernetes cluster with GitLab for pull- and push-based deployments and easy security integrations.",[12,62,63],{},[27,64,65,66],{},"4. ",[16,67,69],{"href":68},"/blog/gitops-with-gitlab-secrets-management/","How to tackle secrets management",[12,71,72],{},"This tutorial builds on the previous tutorial to show you how to use a Kubernetes cluster connection to manage secrets within a cluster.",[12,74,75],{},[27,76,77,78],{},"5. ",[16,79,81],{"href":80},"/blog/gitops-with-gitlab-using-ci-cd/","The CI/CD tunnel",[12,83,84],{},"This tutorial introduces you to CI/CD tunnels and shows step-by-step how to access a Kubernetes cluster using GitLab CI/CD.",[12,86,87],{},[27,88,89,90],{},"6. ",[16,91,93],{"href":92},"/blog/gitops-with-gitlab-auto-devops/","Connecting GitLab with a Kubernetes cluster - Auto DevOps",[12,95,96],{},"This tutorial looks at how you can use Auto DevOps with all its bells and whistles to easily manage deployments.",[12,98,99],{},[27,100,101,102],{},"7. ",[16,103,104],{"href":32},"Connecting GitLab with a Kubernetes cluster for GitOps-style application delivery",[12,106,107],{},"This tutorial shows you how to connect an application project to a manifest project for controlled, GitOps-style deployments.",[12,109,110],{},[27,111,112,113],{},"8. ",[16,114,116],{"href":115},"/blog/gitops-with-gitlab-manage-the-agent/","Turn a GitLab agent for Kubernetes installation to manage itself",[12,118,119],{},"This tutorial is the culmination of the previous tutorials and will teach you how to turn a GitLab agent for Kubernetes installation to manage itself.",[12,121,122],{},[27,123,124],{},"Read more about GitOps:",[126,127,128,135,140,146],"ul",{},[129,130,131],"li",{},[16,132,134],{"href":133},"/solutions/gitops/","GitLab for GitOps",[129,136,137],{},[16,138,139],{"href":18},"What is GitOps",[129,141,142],{},[16,143,145],{"href":144},"/blog/gitops-as-the-evolution-of-operations/","GitOps viewed as part of the Ops evolution",[129,147,148],{},[16,149,151],{"href":150},"/blog/how-to-agentless-gitops-vars/","How to use a push-based approach for GitOps with GitLab scripting and variables",{"title":153,"searchDepth":154,"depth":154,"links":155},"",2,[],"engineering","2022-04-07","This eight-part tutorial series demonstrates how to use GitLab as a best-in-class GitOps tool.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670178/Blog/Hero%20Images/GitLab-Ops.png",{},true,"/en-us/blog/the-ultimate-guide-to-gitops-with-gitlab",{"title":5,"description":158,"ogTitle":5,"ogDescription":158,"noIndex":161,"ogImage":162,"ogUrl":167,"ogSiteName":168,"ogType":169,"canonicalUrls":167},"https://about.gitlab.com/blog/the-ultimate-guide-to-gitops-with-gitlab/","https://about.gitlab.com","article","the-ultimate-guide-to-gitops-with-gitlab","en-us/blog/the-ultimate-guide-to-gitops-with-gitlab",[173,174,19],"DevOps","tutorial","BlogPost","h_IIsJxJ_908pOyuUGrlZ_jd4jLNfcgDw0g_Xl0hePA",{"logo":178,"freeTrial":183,"sales":188,"login":193,"items":198,"search":525,"minimal":556,"duo":575,"switchNav":584,"pricingDeployment":595},{"config":179},{"href":180,"dataGaName":181,"dataGaLocation":182},"/","gitlab logo","header",{"text":184,"config":185},"Get free trial",{"href":186,"dataGaName":187,"dataGaLocation":182},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":189,"config":190},"Request a demo",{"href":191,"dataGaName":192,"dataGaLocation":182},"/sales/?contact-topic=request-demo","sales",{"text":194,"config":195},"Sign in",{"href":196,"dataGaName":197,"dataGaLocation":182},"https://gitlab.com/users/sign_in/","sign in",[199,228,328,333,447,503],{"text":200,"config":201,"menu":203},"Platform",{"dataNavLevelOne":202},"platform",{"type":204,"columns":205},"cards",[206,212,220],{"title":200,"description":207,"link":208},"The intelligent orchestration platform for DevSecOps",{"text":209,"config":210},"Explore our Platform",{"href":211,"dataGaName":202,"dataGaLocation":182},"/platform/",{"title":213,"description":214,"link":215},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":216,"config":217},"Meet GitLab Duo",{"href":218,"dataGaName":219,"dataGaLocation":182},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":221,"description":222,"link":223},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":224,"config":225},"Learn more",{"href":226,"dataGaName":227,"dataGaLocation":182},"/why-gitlab/","why gitlab",{"text":229,"left":164,"config":230,"menu":232},"Product",{"dataNavLevelOne":231},"solutions",{"type":233,"link":234,"columns":238,"feature":307},"lists",{"text":235,"config":236},"View all Solutions",{"href":237,"dataGaName":231,"dataGaLocation":182},"/solutions/",[239,263,286],{"title":240,"description":241,"link":242,"items":247},"Automation","CI/CD and automation to accelerate deployment",{"config":243},{"icon":244,"href":245,"dataGaName":246,"dataGaLocation":182},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[248,252,255,259],{"text":249,"config":250},"CI/CD",{"href":251,"dataGaLocation":182,"dataGaName":249},"/solutions/continuous-integration/",{"text":213,"config":253},{"href":218,"dataGaLocation":182,"dataGaName":254},"gitlab duo agent platform - product menu",{"text":256,"config":257},"Source Code Management",{"href":258,"dataGaLocation":182,"dataGaName":256},"/solutions/source-code-management/",{"text":260,"config":261},"Automated Software Delivery",{"href":245,"dataGaLocation":182,"dataGaName":262},"Automated software delivery",{"title":264,"description":265,"link":266,"items":271},"Security","Deliver code faster without compromising security",{"config":267},{"href":268,"dataGaName":269,"dataGaLocation":182,"icon":270},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[272,276,281],{"text":273,"config":274},"Application Security Testing",{"href":268,"dataGaName":275,"dataGaLocation":182},"Application security testing",{"text":277,"config":278},"Software Supply Chain Security",{"href":279,"dataGaLocation":182,"dataGaName":280},"/solutions/supply-chain/","Software supply chain security",{"text":282,"config":283},"Software Compliance",{"href":284,"dataGaName":285,"dataGaLocation":182},"/solutions/software-compliance/","software compliance",{"title":287,"link":288,"items":293},"Measurement",{"config":289},{"icon":290,"href":291,"dataGaName":292,"dataGaLocation":182},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[294,298,302],{"text":295,"config":296},"Visibility & Measurement",{"href":291,"dataGaLocation":182,"dataGaName":297},"Visibility and Measurement",{"text":299,"config":300},"Value Stream Management",{"href":301,"dataGaLocation":182,"dataGaName":299},"/solutions/value-stream-management/",{"text":303,"config":304},"Analytics & Insights",{"href":305,"dataGaLocation":182,"dataGaName":306},"/solutions/analytics-and-insights/","Analytics and insights",{"title":308,"type":233,"items":309},"GitLab for",[310,316,322],{"text":311,"config":312},"Enterprise",{"icon":313,"href":314,"dataGaLocation":182,"dataGaName":315},"Building","/enterprise/","enterprise",{"text":317,"config":318},"Small Business",{"icon":319,"href":320,"dataGaLocation":182,"dataGaName":321},"Work","/small-business/","small business",{"text":323,"config":324},"Public Sector",{"icon":325,"href":326,"dataGaLocation":182,"dataGaName":327},"Organization","/solutions/public-sector/","public sector",{"text":329,"config":330},"Pricing",{"href":331,"dataGaName":332,"dataGaLocation":182,"dataNavLevelOne":332},"/pricing/","pricing",{"text":334,"config":335,"menu":337},"Resources",{"dataNavLevelOne":336},"resources",{"type":233,"link":338,"columns":342,"feature":436},{"text":339,"config":340},"View all resources",{"href":341,"dataGaName":336,"dataGaLocation":182},"/resources/",[343,376,403],{"title":344,"items":345},"Getting started",[346,351,356,361,366,371],{"text":347,"config":348},"Install",{"href":349,"dataGaName":350,"dataGaLocation":182},"/install/","install",{"text":352,"config":353},"Quick start guides",{"href":354,"dataGaName":355,"dataGaLocation":182},"/get-started/","quick setup checklists",{"text":357,"config":358},"Learn",{"href":359,"dataGaLocation":182,"dataGaName":360},"https://university.gitlab.com/","learn",{"text":362,"config":363},"Product documentation",{"href":364,"dataGaName":365,"dataGaLocation":182},"https://docs.gitlab.com/","product documentation",{"text":367,"config":368},"Best practice videos",{"href":369,"dataGaName":370,"dataGaLocation":182},"/getting-started-videos/","best practice videos",{"text":372,"config":373},"Integrations",{"href":374,"dataGaName":375,"dataGaLocation":182},"/integrations/","integrations",{"title":377,"items":378},"Discover",[379,384,389,394,398],{"text":380,"config":381},"Customer success stories",{"href":382,"dataGaName":383,"dataGaLocation":182},"/customers/","customer success stories",{"text":385,"config":386},"Blog",{"href":387,"dataGaName":388,"dataGaLocation":182},"/blog/","blog",{"text":390,"config":391},"Demo Hub",{"href":392,"dataGaName":393,"dataGaLocation":182},"/demo-hub/","demo hub",{"text":395,"config":396},"The Source",{"href":397,"dataGaName":388,"dataGaLocation":182},"/the-source/",{"text":399,"config":400},"Remote",{"href":401,"dataGaName":402,"dataGaLocation":182},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":404,"items":405},"Connect",[406,411,416,421,426,431],{"text":407,"config":408},"GitLab Services",{"href":409,"dataGaName":410,"dataGaLocation":182},"/services/","services",{"text":412,"config":413},"Contribute",{"href":414,"dataGaName":415,"dataGaLocation":182},"https://contributors.gitlab.com","contribute",{"text":417,"config":418},"Community",{"href":419,"dataGaName":420,"dataGaLocation":182},"/community/","community",{"text":422,"config":423},"Forum",{"href":424,"dataGaName":425,"dataGaLocation":182},"https://forum.gitlab.com/","forum",{"text":427,"config":428},"Events",{"href":429,"dataGaName":430,"dataGaLocation":182},"/events/","events",{"text":432,"config":433},"Partners",{"href":434,"dataGaName":435,"dataGaLocation":182},"/partners/","partners",{"config":437,"title":440,"text":441,"link":442},{"background":438,"textColor":439},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":443,"config":444},"Read the latest",{"href":445,"dataGaName":446,"dataGaLocation":182},"/whats-new/","whats new",{"text":448,"config":449,"menu":451},"Company",{"dataNavLevelOne":450},"company",{"type":233,"columns":452},[453],{"items":454},[455,460,466,468,473,478,483,488,493,498],{"text":456,"config":457},"About",{"href":458,"dataGaName":459,"dataGaLocation":182},"/company/","about",{"text":461,"config":462,"footerGa":465},"Jobs",{"href":463,"dataGaName":464,"dataGaLocation":182},"/jobs/","jobs",{"dataGaName":464},{"text":427,"config":467},{"href":429,"dataGaName":430,"dataGaLocation":182},{"text":469,"config":470},"Leadership",{"href":471,"dataGaName":472,"dataGaLocation":182},"/company/team/e-group/","leadership",{"text":474,"config":475},"Handbook",{"href":476,"dataGaName":477,"dataGaLocation":182},"https://handbook.gitlab.com/","handbook",{"text":479,"config":480},"Investor relations",{"href":481,"dataGaName":482,"dataGaLocation":182},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":484,"config":485},"Trust Center",{"href":486,"dataGaName":487,"dataGaLocation":182},"/security/","trust center",{"text":489,"config":490},"AI Transparency Center",{"href":491,"dataGaName":492,"dataGaLocation":182},"/ai-transparency-center/","ai transparency center",{"text":494,"config":495},"Newsletter",{"href":496,"dataGaName":497,"dataGaLocation":182},"/company/contact/#contact-forms","newsletter",{"text":499,"config":500},"Press",{"href":501,"dataGaName":502,"dataGaLocation":182},"/press/","press",{"text":504,"config":505,"menu":506},"Contact us",{"dataNavLevelOne":450},{"type":233,"columns":507},[508],{"items":509},[510,515,520],{"text":511,"config":512},"Talk to sales",{"href":513,"dataGaName":514,"dataGaLocation":182},"/sales/","talk to sales",{"text":516,"config":517},"Support portal",{"href":518,"dataGaName":519,"dataGaLocation":182},"https://support.gitlab.com/hc/en-us","support portal",{"text":521,"config":522},"Customer portal",{"href":523,"dataGaName":524,"dataGaLocation":182},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":526,"login":527,"suggestions":534},"Close",{"text":528,"link":529},"To search repositories and projects, login to",{"text":530,"config":531},"gitlab.com",{"href":196,"dataGaName":532,"dataGaLocation":533},"search login","search",{"text":535,"default":536},"Suggestions",[537,539,543,545,549,553],{"text":213,"config":538},{"href":218,"dataGaName":213,"dataGaLocation":533},{"text":540,"config":541},"Code Suggestions (AI)",{"href":542,"dataGaName":540,"dataGaLocation":533},"/solutions/code-suggestions/",{"text":249,"config":544},{"href":251,"dataGaName":249,"dataGaLocation":533},{"text":546,"config":547},"GitLab on AWS",{"href":548,"dataGaName":546,"dataGaLocation":533},"/partners/technology-partners/aws/",{"text":550,"config":551},"GitLab on Google Cloud",{"href":552,"dataGaName":550,"dataGaLocation":533},"/partners/technology-partners/google-cloud-platform/",{"text":554,"config":555},"Why GitLab?",{"href":226,"dataGaName":554,"dataGaLocation":533},{"freeTrial":557,"mobileIcon":562,"desktopIcon":567,"secondaryButton":570},{"text":558,"config":559},"Start free trial",{"href":560,"dataGaName":187,"dataGaLocation":561},"https://gitlab.com/-/trials/new/","nav",{"altText":563,"config":564},"Gitlab Icon",{"src":565,"dataGaName":566,"dataGaLocation":561},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":563,"config":568},{"src":569,"dataGaName":566,"dataGaLocation":561},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":571,"config":572},"Get Started",{"href":573,"dataGaName":574,"dataGaLocation":561},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":576,"mobileIcon":580,"desktopIcon":582},{"text":577,"config":578},"Learn more about GitLab Duo",{"href":218,"dataGaName":579,"dataGaLocation":561},"gitlab duo",{"altText":563,"config":581},{"src":565,"dataGaName":566,"dataGaLocation":561},{"altText":563,"config":583},{"src":569,"dataGaName":566,"dataGaLocation":561},{"button":585,"mobileIcon":590,"desktopIcon":592},{"text":586,"config":587},"/switch",{"href":588,"dataGaName":589,"dataGaLocation":561},"#contact","switch",{"altText":563,"config":591},{"src":565,"dataGaName":566,"dataGaLocation":561},{"altText":563,"config":593},{"src":594,"dataGaName":566,"dataGaLocation":561},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":596,"mobileIcon":601,"desktopIcon":603},{"text":597,"config":598},"Back to pricing",{"href":331,"dataGaName":599,"dataGaLocation":561,"icon":600},"back to pricing","GoBack",{"altText":563,"config":602},{"src":565,"dataGaName":566,"dataGaLocation":561},{"altText":563,"config":604},{"src":569,"dataGaName":566,"dataGaLocation":561},{"title":606,"titleMobile":607,"button":608,"config":613},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":224,"config":609},{"href":610,"dataGaName":611,"dataGaLocation":612},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":614,"disabled":161},"release",{"data":616},{"text":617,"source":618,"edit":624,"contribute":629,"config":634,"items":639,"minimal":845},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":619,"config":620},"View page source",{"href":621,"dataGaName":622,"dataGaLocation":623},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":625,"config":626},"Edit this page",{"href":627,"dataGaName":628,"dataGaLocation":623},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":630,"config":631},"Please contribute",{"href":632,"dataGaName":633,"dataGaLocation":623},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":635,"facebook":636,"youtube":637,"linkedin":638},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[640,687,738,781,813],{"title":329,"links":641,"subMenu":656},[642,646,651],{"text":643,"config":644},"View plans",{"href":331,"dataGaName":645,"dataGaLocation":623},"view plans",{"text":647,"config":648},"Why Premium?",{"href":649,"dataGaName":650,"dataGaLocation":623},"/pricing/premium/","why premium",{"text":652,"config":653},"Why Ultimate?",{"href":654,"dataGaName":655,"dataGaLocation":623},"/pricing/ultimate/","why ultimate",[657],{"title":658,"links":659},"Contact Us",[660,663,665,667,672,677,682],{"text":661,"config":662},"Contact sales",{"href":513,"dataGaName":192,"dataGaLocation":623},{"text":516,"config":664},{"href":518,"dataGaName":519,"dataGaLocation":623},{"text":521,"config":666},{"href":523,"dataGaName":524,"dataGaLocation":623},{"text":668,"config":669},"Status",{"href":670,"dataGaName":671,"dataGaLocation":623},"https://status.gitlab.com/","status",{"text":673,"config":674},"Terms of use",{"href":675,"dataGaName":676,"dataGaLocation":623},"/terms/","terms of use",{"text":678,"config":679},"Privacy statement",{"href":680,"dataGaName":681,"dataGaLocation":623},"/privacy/","privacy statement",{"text":683,"config":684},"Cookie preferences",{"dataGaName":685,"dataGaLocation":623,"id":686,"isOneTrustButton":164},"cookie preferences","ot-sdk-btn",{"title":229,"links":688,"subMenu":697},[689,693],{"text":690,"config":691},"DevSecOps platform",{"href":211,"dataGaName":692,"dataGaLocation":623},"devsecops platform",{"text":694,"config":695},"AI-Assisted Development",{"href":218,"dataGaName":696,"dataGaLocation":623},"ai-assisted development",[698],{"title":699,"links":700},"Topics",[701,706,709,713,718,723,728,733],{"text":702,"config":703},"CICD",{"href":704,"dataGaName":705,"dataGaLocation":623},"/topics/ci-cd/","cicd",{"text":19,"config":707},{"href":18,"dataGaName":708,"dataGaLocation":623},"gitops",{"text":173,"config":710},{"href":711,"dataGaName":712,"dataGaLocation":623},"/topics/devops/","devops",{"text":714,"config":715},"Version Control",{"href":716,"dataGaName":717,"dataGaLocation":623},"/topics/version-control/","version control",{"text":719,"config":720},"DevSecOps",{"href":721,"dataGaName":722,"dataGaLocation":623},"/topics/devsecops/","devsecops",{"text":724,"config":725},"Cloud Native",{"href":726,"dataGaName":727,"dataGaLocation":623},"/topics/cloud-native/","cloud native",{"text":729,"config":730},"AI for Coding",{"href":731,"dataGaName":732,"dataGaLocation":623},"/topics/devops/ai-for-coding/","ai for coding",{"text":734,"config":735},"Agentic AI",{"href":736,"dataGaName":737,"dataGaLocation":623},"/topics/agentic-ai/","agentic ai",{"title":739,"links":740},"Solutions",[741,743,745,750,754,757,761,763,765,768,771,776],{"text":273,"config":742},{"href":268,"dataGaName":273,"dataGaLocation":623},{"text":262,"config":744},{"href":245,"dataGaName":246,"dataGaLocation":623},{"text":746,"config":747},"Agile development",{"href":748,"dataGaName":749,"dataGaLocation":623},"/solutions/agile-delivery/","agile delivery",{"text":751,"config":752},"SCM",{"href":258,"dataGaName":753,"dataGaLocation":623},"source code management",{"text":702,"config":755},{"href":251,"dataGaName":756,"dataGaLocation":623},"continuous integration & delivery",{"text":758,"config":759},"Value stream management",{"href":301,"dataGaName":760,"dataGaLocation":623},"value stream management",{"text":19,"config":762},{"href":133,"dataGaName":708,"dataGaLocation":623},{"text":311,"config":764},{"href":314,"dataGaName":315,"dataGaLocation":623},{"text":766,"config":767},"Small business",{"href":320,"dataGaName":321,"dataGaLocation":623},{"text":769,"config":770},"Public sector",{"href":326,"dataGaName":327,"dataGaLocation":623},{"text":772,"config":773},"Education",{"href":774,"dataGaName":775,"dataGaLocation":623},"/solutions/education/","education",{"text":777,"config":778},"Financial services",{"href":779,"dataGaName":780,"dataGaLocation":623},"/solutions/finance/","financial services",{"title":334,"links":782},[783,785,787,789,792,794,797,799,801,803,805,807,809,811],{"text":347,"config":784},{"href":349,"dataGaName":350,"dataGaLocation":623},{"text":352,"config":786},{"href":354,"dataGaName":355,"dataGaLocation":623},{"text":357,"config":788},{"href":359,"dataGaName":360,"dataGaLocation":623},{"text":362,"config":790},{"href":364,"dataGaName":791,"dataGaLocation":623},"docs",{"text":385,"config":793},{"href":387,"dataGaName":388,"dataGaLocation":623},{"text":795,"config":796},"What's new",{"href":445,"dataGaName":446,"dataGaLocation":623},{"text":380,"config":798},{"href":382,"dataGaName":383,"dataGaLocation":623},{"text":399,"config":800},{"href":401,"dataGaName":402,"dataGaLocation":623},{"text":407,"config":802},{"href":409,"dataGaName":410,"dataGaLocation":623},{"text":412,"config":804},{"href":414,"dataGaName":415,"dataGaLocation":623},{"text":417,"config":806},{"href":419,"dataGaName":420,"dataGaLocation":623},{"text":422,"config":808},{"href":424,"dataGaName":425,"dataGaLocation":623},{"text":427,"config":810},{"href":429,"dataGaName":430,"dataGaLocation":623},{"text":432,"config":812},{"href":434,"dataGaName":435,"dataGaLocation":623},{"title":448,"links":814},[815,817,819,821,823,825,829,834,836,838,840],{"text":456,"config":816},{"href":458,"dataGaName":450,"dataGaLocation":623},{"text":461,"config":818},{"href":463,"dataGaName":464,"dataGaLocation":623},{"text":469,"config":820},{"href":471,"dataGaName":472,"dataGaLocation":623},{"text":474,"config":822},{"href":476,"dataGaName":477,"dataGaLocation":623},{"text":479,"config":824},{"href":481,"dataGaName":482,"dataGaLocation":623},{"text":826,"config":827},"Sustainability",{"href":828,"dataGaName":826,"dataGaLocation":623},"/sustainability/",{"text":830,"config":831},"Diversity, inclusion and belonging (DIB)",{"href":832,"dataGaName":833,"dataGaLocation":623},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":484,"config":835},{"href":486,"dataGaName":487,"dataGaLocation":623},{"text":494,"config":837},{"href":496,"dataGaName":497,"dataGaLocation":623},{"text":499,"config":839},{"href":501,"dataGaName":502,"dataGaLocation":623},{"text":841,"config":842},"Modern Slavery Transparency Statement",{"href":843,"dataGaName":844,"dataGaLocation":623},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":846},[847,850,853],{"text":848,"config":849},"Terms",{"href":675,"dataGaName":676,"dataGaLocation":623},{"text":851,"config":852},"Cookies",{"dataGaName":685,"dataGaLocation":623,"id":686,"isOneTrustButton":164},{"text":854,"config":855},"Privacy",{"href":680,"dataGaName":681,"dataGaLocation":623},[857],{"id":858,"title":7,"body":160,"config":859,"content":861,"description":160,"extension":865,"meta":866,"navigation":164,"path":867,"seo":868,"stem":869,"__hash__":870},"blogAuthors/en-us/blog/authors/viktor-nagy.yml",{"template":860},"BlogAuthor",{"name":7,"config":862},{"headshot":863,"ctfId":864},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662918/Blog/Author%20Headshots/nagy-headshot.jpg","nagyvgitlab","yml",{},"/en-us/blog/authors/viktor-nagy",{},"en-us/blog/authors/viktor-nagy","rM3QZ5iaPa1fk9rDH9Dq-owlsuuFm699I03jWP1dUY4",[872,881,889],{"title":873,"description":874,"heroImage":875,"category":156,"date":876,"authors":877,"slug":880,"externalUrl":160},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[878,879],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":882,"description":883,"heroImage":884,"category":156,"date":885,"authors":886,"slug":888,"externalUrl":160},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[887],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":890,"description":891,"heroImage":892,"category":156,"date":893,"authors":894,"slug":896,"externalUrl":160},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[895],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":898},[899,913,925,937],{"id":900,"categories":901,"header":903,"text":904,"button":905,"image":910},"ai-modernization",[902],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":906,"config":907},"Get your AI maturity score",{"href":908,"dataGaName":909,"dataGaLocation":388},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":911},{"src":912},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":914,"categories":915,"header":917,"text":904,"button":918,"image":922},"devops-modernization",[916,722],"product","Are you just managing tools or shipping innovation?",{"text":919,"config":920},"Get your DevOps maturity score",{"href":921,"dataGaName":909,"dataGaLocation":388},"/assessments/devops-modernization-assessment/",{"config":923},{"src":924},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":926,"categories":927,"header":929,"text":904,"button":930,"image":934},"security-modernization",[928],"security","Are you trading speed for security?",{"text":931,"config":932},"Get your security maturity score",{"href":933,"dataGaName":909,"dataGaLocation":388},"/assessments/security-modernization-assessment/",{"config":935},{"src":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":938,"paths":939,"header":942,"text":943,"button":944,"image":949},"github-azure-migration",[940,941],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":945,"config":946},"See how GitLab compares to GitHub",{"href":947,"dataGaName":948,"dataGaLocation":388},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":950},{"src":924},{"header":952,"blurb":953,"button":954,"secondaryButton":959},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":955,"config":956},"Get your free trial",{"href":957,"dataGaName":187,"dataGaLocation":958},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":661,"config":960},{"href":513,"dataGaName":192,"dataGaLocation":958},1786734932319]