[{"data":1,"prerenderedAt":954},["ShallowReactive",2],{"/blog/tags/gitops":3,"navigation-en-us":19,"banner-en-us":447,"footer-en-us":458,"GitOps-tag-posts-en-us":701},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":12,"meta":13,"navigation":14,"path":15,"seo":16,"slug":6,"stem":17,"testContent":6,"type":6,"__hash__":18},"blogTags/en-us/blog/tags/gitops.yml","Gitops",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":11},"GitOps","gitops","yml",{},true,"/en-us/blog/tags/gitops",{},"en-us/blog/tags/gitops","brgqHPcR1HdRZOUSrtu5G6doBuLk_8I5Gh8aTkBr1Ok",{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":367,"minimal":398,"duo":417,"switchNav":426,"pricingDeployment":437},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Request a demo",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/?contact-topic=request-demo","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,70,170,175,289,345],{"text":42,"config":43,"menu":45},"Platform",{"dataNavLevelOne":44},"platform",{"type":46,"columns":47},"cards",[48,54,62],{"title":42,"description":49,"link":50},"The intelligent orchestration platform for DevSecOps",{"text":51,"config":52},"Explore our Platform",{"href":53,"dataGaName":44,"dataGaLocation":24},"/platform/",{"title":55,"description":56,"link":57},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":58,"config":59},"Meet GitLab Duo",{"href":60,"dataGaName":61,"dataGaLocation":24},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":63,"description":64,"link":65},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":66,"config":67},"Learn more",{"href":68,"dataGaName":69,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":71,"left":14,"config":72,"menu":74},"Product",{"dataNavLevelOne":73},"solutions",{"type":75,"link":76,"columns":80,"feature":149},"lists",{"text":77,"config":78},"View all Solutions",{"href":79,"dataGaName":73,"dataGaLocation":24},"/solutions/",[81,105,128],{"title":82,"description":83,"link":84,"items":89},"Automation","CI/CD and automation to accelerate deployment",{"config":85},{"icon":86,"href":87,"dataGaName":88,"dataGaLocation":24},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[90,94,97,101],{"text":91,"config":92},"CI/CD",{"href":93,"dataGaLocation":24,"dataGaName":91},"/solutions/continuous-integration/",{"text":55,"config":95},{"href":60,"dataGaLocation":24,"dataGaName":96},"gitlab duo agent platform - product menu",{"text":98,"config":99},"Source Code Management",{"href":100,"dataGaLocation":24,"dataGaName":98},"/solutions/source-code-management/",{"text":102,"config":103},"Automated Software Delivery",{"href":87,"dataGaLocation":24,"dataGaName":104},"Automated software delivery",{"title":106,"description":107,"link":108,"items":113},"Security","Deliver code faster without compromising security",{"config":109},{"href":110,"dataGaName":111,"dataGaLocation":24,"icon":112},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[114,118,123],{"text":115,"config":116},"Application Security Testing",{"href":110,"dataGaName":117,"dataGaLocation":24},"Application security testing",{"text":119,"config":120},"Software Supply Chain Security",{"href":121,"dataGaLocation":24,"dataGaName":122},"/solutions/supply-chain/","Software supply chain security",{"text":124,"config":125},"Software Compliance",{"href":126,"dataGaName":127,"dataGaLocation":24},"/solutions/software-compliance/","software compliance",{"title":129,"link":130,"items":135},"Measurement",{"config":131},{"icon":132,"href":133,"dataGaName":134,"dataGaLocation":24},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[136,140,144],{"text":137,"config":138},"Visibility & Measurement",{"href":133,"dataGaLocation":24,"dataGaName":139},"Visibility and Measurement",{"text":141,"config":142},"Value Stream Management",{"href":143,"dataGaLocation":24,"dataGaName":141},"/solutions/value-stream-management/",{"text":145,"config":146},"Analytics & Insights",{"href":147,"dataGaLocation":24,"dataGaName":148},"/solutions/analytics-and-insights/","Analytics and insights",{"title":150,"type":75,"items":151},"GitLab for",[152,158,164],{"text":153,"config":154},"Enterprise",{"icon":155,"href":156,"dataGaLocation":24,"dataGaName":157},"Building","/enterprise/","enterprise",{"text":159,"config":160},"Small Business",{"icon":161,"href":162,"dataGaLocation":24,"dataGaName":163},"Work","/small-business/","small business",{"text":165,"config":166},"Public Sector",{"icon":167,"href":168,"dataGaLocation":24,"dataGaName":169},"Organization","/solutions/public-sector/","public sector",{"text":171,"config":172},"Pricing",{"href":173,"dataGaName":174,"dataGaLocation":24,"dataNavLevelOne":174},"/pricing/","pricing",{"text":176,"config":177,"menu":179},"Resources",{"dataNavLevelOne":178},"resources",{"type":75,"link":180,"columns":184,"feature":278},{"text":181,"config":182},"View all resources",{"href":183,"dataGaName":178,"dataGaLocation":24},"/resources/",[185,218,245],{"title":186,"items":187},"Getting started",[188,193,198,203,208,213],{"text":189,"config":190},"Install",{"href":191,"dataGaName":192,"dataGaLocation":24},"/install/","install",{"text":194,"config":195},"Quick start guides",{"href":196,"dataGaName":197,"dataGaLocation":24},"/get-started/","quick setup checklists",{"text":199,"config":200},"Learn",{"href":201,"dataGaLocation":24,"dataGaName":202},"https://university.gitlab.com/","learn",{"text":204,"config":205},"Product documentation",{"href":206,"dataGaName":207,"dataGaLocation":24},"https://docs.gitlab.com/","product documentation",{"text":209,"config":210},"Best practice videos",{"href":211,"dataGaName":212,"dataGaLocation":24},"/getting-started-videos/","best practice videos",{"text":214,"config":215},"Integrations",{"href":216,"dataGaName":217,"dataGaLocation":24},"/integrations/","integrations",{"title":219,"items":220},"Discover",[221,226,231,236,240],{"text":222,"config":223},"Customer success stories",{"href":224,"dataGaName":225,"dataGaLocation":24},"/customers/","customer success stories",{"text":227,"config":228},"Blog",{"href":229,"dataGaName":230,"dataGaLocation":24},"/blog/","blog",{"text":232,"config":233},"Demo Hub",{"href":234,"dataGaName":235,"dataGaLocation":24},"/demo-hub/","demo hub",{"text":237,"config":238},"The Source",{"href":239,"dataGaName":230,"dataGaLocation":24},"/the-source/",{"text":241,"config":242},"Remote",{"href":243,"dataGaName":244,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":246,"items":247},"Connect",[248,253,258,263,268,273],{"text":249,"config":250},"GitLab Services",{"href":251,"dataGaName":252,"dataGaLocation":24},"/services/","services",{"text":254,"config":255},"Contribute",{"href":256,"dataGaName":257,"dataGaLocation":24},"https://contributors.gitlab.com","contribute",{"text":259,"config":260},"Community",{"href":261,"dataGaName":262,"dataGaLocation":24},"/community/","community",{"text":264,"config":265},"Forum",{"href":266,"dataGaName":267,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":269,"config":270},"Events",{"href":271,"dataGaName":272,"dataGaLocation":24},"/events/","events",{"text":274,"config":275},"Partners",{"href":276,"dataGaName":277,"dataGaLocation":24},"/partners/","partners",{"config":279,"title":282,"text":283,"link":284},{"background":280,"textColor":281},"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":285,"config":286},"Read the latest",{"href":287,"dataGaName":288,"dataGaLocation":24},"/whats-new/","whats new",{"text":290,"config":291,"menu":293},"Company",{"dataNavLevelOne":292},"company",{"type":75,"columns":294},[295],{"items":296},[297,302,308,310,315,320,325,330,335,340],{"text":298,"config":299},"About",{"href":300,"dataGaName":301,"dataGaLocation":24},"/company/","about",{"text":303,"config":304,"footerGa":307},"Jobs",{"href":305,"dataGaName":306,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":306},{"text":269,"config":309},{"href":271,"dataGaName":272,"dataGaLocation":24},{"text":311,"config":312},"Leadership",{"href":313,"dataGaName":314,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":316,"config":317},"Handbook",{"href":318,"dataGaName":319,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":321,"config":322},"Investor relations",{"href":323,"dataGaName":324,"dataGaLocation":24},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":326,"config":327},"Trust Center",{"href":328,"dataGaName":329,"dataGaLocation":24},"/security/","trust center",{"text":331,"config":332},"AI Transparency Center",{"href":333,"dataGaName":334,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":336,"config":337},"Newsletter",{"href":338,"dataGaName":339,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":341,"config":342},"Press",{"href":343,"dataGaName":344,"dataGaLocation":24},"/press/","press",{"text":346,"config":347,"menu":348},"Contact us",{"dataNavLevelOne":292},{"type":75,"columns":349},[350],{"items":351},[352,357,362],{"text":353,"config":354},"Talk to sales",{"href":355,"dataGaName":356,"dataGaLocation":24},"/sales/","talk to sales",{"text":358,"config":359},"Support portal",{"href":360,"dataGaName":361,"dataGaLocation":24},"https://support.gitlab.com/hc/en-us","support portal",{"text":363,"config":364},"Customer portal",{"href":365,"dataGaName":366,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":368,"login":369,"suggestions":376},"Close",{"text":370,"link":371},"To search repositories and projects, login to",{"text":372,"config":373},"gitlab.com",{"href":38,"dataGaName":374,"dataGaLocation":375},"search login","search",{"text":377,"default":378},"Suggestions",[379,381,385,387,391,395],{"text":55,"config":380},{"href":60,"dataGaName":55,"dataGaLocation":375},{"text":382,"config":383},"Code Suggestions (AI)",{"href":384,"dataGaName":382,"dataGaLocation":375},"/solutions/code-suggestions/",{"text":91,"config":386},{"href":93,"dataGaName":91,"dataGaLocation":375},{"text":388,"config":389},"GitLab on AWS",{"href":390,"dataGaName":388,"dataGaLocation":375},"/partners/technology-partners/aws/",{"text":392,"config":393},"GitLab on Google Cloud",{"href":394,"dataGaName":392,"dataGaLocation":375},"/partners/technology-partners/google-cloud-platform/",{"text":396,"config":397},"Why GitLab?",{"href":68,"dataGaName":396,"dataGaLocation":375},{"freeTrial":399,"mobileIcon":404,"desktopIcon":409,"secondaryButton":412},{"text":400,"config":401},"Start free trial",{"href":402,"dataGaName":29,"dataGaLocation":403},"https://gitlab.com/-/trials/new/","nav",{"altText":405,"config":406},"Gitlab Icon",{"src":407,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":405,"config":410},{"src":411,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":413,"config":414},"Get Started",{"href":415,"dataGaName":416,"dataGaLocation":403},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":418,"mobileIcon":422,"desktopIcon":424},{"text":419,"config":420},"Learn more about GitLab Duo",{"href":60,"dataGaName":421,"dataGaLocation":403},"gitlab duo",{"altText":405,"config":423},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":425},{"src":411,"dataGaName":408,"dataGaLocation":403},{"button":427,"mobileIcon":432,"desktopIcon":434},{"text":428,"config":429},"/switch",{"href":430,"dataGaName":431,"dataGaLocation":403},"#contact","switch",{"altText":405,"config":433},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":435},{"src":436,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":438,"mobileIcon":443,"desktopIcon":445},{"text":439,"config":440},"Back to pricing",{"href":173,"dataGaName":441,"dataGaLocation":403,"icon":442},"back to pricing","GoBack",{"altText":405,"config":444},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":446},{"src":411,"dataGaName":408,"dataGaLocation":403},{"title":448,"titleMobile":449,"button":450,"config":455},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":66,"config":451},{"href":452,"dataGaName":453,"dataGaLocation":454},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":456,"disabled":457},"release",false,{"data":459},{"text":460,"source":461,"edit":467,"contribute":472,"config":477,"items":482,"minimal":690},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":462,"config":463},"View page source",{"href":464,"dataGaName":465,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":468,"config":469},"Edit this page",{"href":470,"dataGaName":471,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":473,"config":474},"Please contribute",{"href":475,"dataGaName":476,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":478,"facebook":479,"youtube":480,"linkedin":481},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[483,530,582,626,658],{"title":171,"links":484,"subMenu":499},[485,489,494],{"text":486,"config":487},"View plans",{"href":173,"dataGaName":488,"dataGaLocation":466},"view plans",{"text":490,"config":491},"Why Premium?",{"href":492,"dataGaName":493,"dataGaLocation":466},"/pricing/premium/","why premium",{"text":495,"config":496},"Why Ultimate?",{"href":497,"dataGaName":498,"dataGaLocation":466},"/pricing/ultimate/","why ultimate",[500],{"title":501,"links":502},"Contact Us",[503,506,508,510,515,520,525],{"text":504,"config":505},"Contact sales",{"href":355,"dataGaName":34,"dataGaLocation":466},{"text":358,"config":507},{"href":360,"dataGaName":361,"dataGaLocation":466},{"text":363,"config":509},{"href":365,"dataGaName":366,"dataGaLocation":466},{"text":511,"config":512},"Status",{"href":513,"dataGaName":514,"dataGaLocation":466},"https://status.gitlab.com/","status",{"text":516,"config":517},"Terms of use",{"href":518,"dataGaName":519,"dataGaLocation":466},"/terms/","terms of use",{"text":521,"config":522},"Privacy statement",{"href":523,"dataGaName":524,"dataGaLocation":466},"/privacy/","privacy statement",{"text":526,"config":527},"Cookie preferences",{"dataGaName":528,"dataGaLocation":466,"id":529,"isOneTrustButton":14},"cookie preferences","ot-sdk-btn",{"title":71,"links":531,"subMenu":540},[532,536],{"text":533,"config":534},"DevSecOps platform",{"href":53,"dataGaName":535,"dataGaLocation":466},"devsecops platform",{"text":537,"config":538},"AI-Assisted Development",{"href":60,"dataGaName":539,"dataGaLocation":466},"ai-assisted development",[541],{"title":542,"links":543},"Topics",[544,549,552,557,562,567,572,577],{"text":545,"config":546},"CICD",{"href":547,"dataGaName":548,"dataGaLocation":466},"/topics/ci-cd/","cicd",{"text":10,"config":550},{"href":551,"dataGaName":11,"dataGaLocation":466},"/topics/gitops/",{"text":553,"config":554},"DevOps",{"href":555,"dataGaName":556,"dataGaLocation":466},"/topics/devops/","devops",{"text":558,"config":559},"Version Control",{"href":560,"dataGaName":561,"dataGaLocation":466},"/topics/version-control/","version control",{"text":563,"config":564},"DevSecOps",{"href":565,"dataGaName":566,"dataGaLocation":466},"/topics/devsecops/","devsecops",{"text":568,"config":569},"Cloud Native",{"href":570,"dataGaName":571,"dataGaLocation":466},"/topics/cloud-native/","cloud native",{"text":573,"config":574},"AI for Coding",{"href":575,"dataGaName":576,"dataGaLocation":466},"/topics/devops/ai-for-coding/","ai for coding",{"text":578,"config":579},"Agentic AI",{"href":580,"dataGaName":581,"dataGaLocation":466},"/topics/agentic-ai/","agentic ai",{"title":583,"links":584},"Solutions",[585,587,589,594,598,601,605,608,610,613,616,621],{"text":115,"config":586},{"href":110,"dataGaName":115,"dataGaLocation":466},{"text":104,"config":588},{"href":87,"dataGaName":88,"dataGaLocation":466},{"text":590,"config":591},"Agile development",{"href":592,"dataGaName":593,"dataGaLocation":466},"/solutions/agile-delivery/","agile delivery",{"text":595,"config":596},"SCM",{"href":100,"dataGaName":597,"dataGaLocation":466},"source code management",{"text":545,"config":599},{"href":93,"dataGaName":600,"dataGaLocation":466},"continuous integration & delivery",{"text":602,"config":603},"Value stream management",{"href":143,"dataGaName":604,"dataGaLocation":466},"value stream management",{"text":10,"config":606},{"href":607,"dataGaName":11,"dataGaLocation":466},"/solutions/gitops/",{"text":153,"config":609},{"href":156,"dataGaName":157,"dataGaLocation":466},{"text":611,"config":612},"Small business",{"href":162,"dataGaName":163,"dataGaLocation":466},{"text":614,"config":615},"Public sector",{"href":168,"dataGaName":169,"dataGaLocation":466},{"text":617,"config":618},"Education",{"href":619,"dataGaName":620,"dataGaLocation":466},"/solutions/education/","education",{"text":622,"config":623},"Financial services",{"href":624,"dataGaName":625,"dataGaLocation":466},"/solutions/finance/","financial services",{"title":176,"links":627},[628,630,632,634,637,639,642,644,646,648,650,652,654,656],{"text":189,"config":629},{"href":191,"dataGaName":192,"dataGaLocation":466},{"text":194,"config":631},{"href":196,"dataGaName":197,"dataGaLocation":466},{"text":199,"config":633},{"href":201,"dataGaName":202,"dataGaLocation":466},{"text":204,"config":635},{"href":206,"dataGaName":636,"dataGaLocation":466},"docs",{"text":227,"config":638},{"href":229,"dataGaName":230,"dataGaLocation":466},{"text":640,"config":641},"What's new",{"href":287,"dataGaName":288,"dataGaLocation":466},{"text":222,"config":643},{"href":224,"dataGaName":225,"dataGaLocation":466},{"text":241,"config":645},{"href":243,"dataGaName":244,"dataGaLocation":466},{"text":249,"config":647},{"href":251,"dataGaName":252,"dataGaLocation":466},{"text":254,"config":649},{"href":256,"dataGaName":257,"dataGaLocation":466},{"text":259,"config":651},{"href":261,"dataGaName":262,"dataGaLocation":466},{"text":264,"config":653},{"href":266,"dataGaName":267,"dataGaLocation":466},{"text":269,"config":655},{"href":271,"dataGaName":272,"dataGaLocation":466},{"text":274,"config":657},{"href":276,"dataGaName":277,"dataGaLocation":466},{"title":290,"links":659},[660,662,664,666,668,670,674,679,681,683,685],{"text":298,"config":661},{"href":300,"dataGaName":292,"dataGaLocation":466},{"text":303,"config":663},{"href":305,"dataGaName":306,"dataGaLocation":466},{"text":311,"config":665},{"href":313,"dataGaName":314,"dataGaLocation":466},{"text":316,"config":667},{"href":318,"dataGaName":319,"dataGaLocation":466},{"text":321,"config":669},{"href":323,"dataGaName":324,"dataGaLocation":466},{"text":671,"config":672},"Sustainability",{"href":673,"dataGaName":671,"dataGaLocation":466},"/sustainability/",{"text":675,"config":676},"Diversity, inclusion and belonging (DIB)",{"href":677,"dataGaName":678,"dataGaLocation":466},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":326,"config":680},{"href":328,"dataGaName":329,"dataGaLocation":466},{"text":336,"config":682},{"href":338,"dataGaName":339,"dataGaLocation":466},{"text":341,"config":684},{"href":343,"dataGaName":344,"dataGaLocation":466},{"text":686,"config":687},"Modern Slavery Transparency Statement",{"href":688,"dataGaName":689,"dataGaLocation":466},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":691},[692,695,698],{"text":693,"config":694},"Terms",{"href":518,"dataGaName":519,"dataGaLocation":466},{"text":696,"config":697},"Cookies",{"dataGaName":528,"dataGaLocation":466,"id":529,"isOneTrustButton":14},{"text":699,"config":700},"Privacy",{"href":523,"dataGaName":524,"dataGaLocation":466},[702,710,719,727,736,745,753,761,768,777,784,793,799,805,812,818,824,830,838,846,853,861,868,875,882,890,899,907,915,923,931,938,946],{"title":703,"heroImage":704,"category":566,"description":705,"authors":706,"date":708,"slug":709,"externalUrl":6},"Consolidate your GitLab stack with Gitaly on Kubernetes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","Discover how to install Gitaly on Kubernetes, which is now generally available.",[707],"Olivier Campeau","2026-05-07","gitaly-on-kubernetes-generally-available",{"title":711,"heroImage":712,"category":713,"description":714,"authors":715,"date":717,"slug":718,"externalUrl":6},"How to use OCI images as the source of truth for continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097601/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20Use%20this%20page%20as%20a%20reference%20for%20thumbnail%20sizes_76Tn5jFmEHY5LFj8RdDjNY_1750097600692.png","open-source","Discover the benefits of using Open Container Initiative images as part of GitOps workflows and the many features GitLab offers to simplify deployments to Kubernetes.",[716],"Daniel Helfand","2025-02-19","how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery",{"title":720,"heroImage":721,"category":722,"description":723,"authors":724,"date":725,"slug":726,"externalUrl":6},"How to stream logs through the GitLab Dashboard for Kubernetes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662245/Blog/Hero%20Images/blog-image-template-1800x945__16_.png","engineering","In GitLab 17.2, users can now view Kubernetes pod and container logs directly via the GitLab UI. This tutorial shows how to use this new feature to simplify monitoring Kubernetes infrastructure.",[716],"2024-08-19","how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes",{"title":728,"heroImage":729,"category":722,"description":730,"authors":731,"date":734,"slug":735,"externalUrl":6},"Quick setup of a GKE Cluster with ArgoCD pre-installed using Terraform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665989/Blog/Hero%20Images/AdobeStock_618473457.jpg","Use this tutorial as a great starting point to manage your cluster entirely through GitOps.",[732,733],"Noah Ing","Siddharth Mathur","2024-01-31","quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform",{"title":737,"heroImage":738,"category":739,"description":740,"authors":741,"date":743,"slug":744,"externalUrl":6},"Removing tags from our small SaaS runner on Linux","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669863/Blog/Hero%20Images/security-pipelines.jpg","news","With GitLab 17.0, we are removing most tags from our small SaaS runner on Linux. Find out if you are affected and the change you need to make.",[742],"Gabriel Engel","2023-08-15","removing-tags-from-small-saas-runner-on-linux",{"title":746,"heroImage":747,"category":722,"description":748,"authors":749,"date":751,"slug":752,"externalUrl":6},"Set up Flux for GitOps to deploy workloads on OpenShift","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682825/Blog/Hero%20Images/genericworkflow.jpg","Learn how to set up a sample project, complete a bootstrap Flux installation, and authenticate your installation with a project deploy token.",[750],"Bart Zhang","2023-07-05","set-up-flux-for-gitops-on-openshift",{"title":754,"heroImage":755,"category":722,"description":756,"authors":757,"date":759,"slug":760,"externalUrl":6},"GitOps with GitLab: What you need to know about the Flux CD integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678356/Blog/Hero%20Images/balance-speed-security-devops.jpg","Inside the decision to integrate Flux CD with the GitLab agent for Kubernetes and what it means to you.",[758],"Viktor Nagy","2023-02-08","why-did-we-choose-to-integrate-fluxcd-with-gitlab",{"title":762,"heroImage":763,"category":722,"description":764,"authors":765,"date":766,"slug":767,"externalUrl":6},"Simple Kubernetes management with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670037/Blog/Hero%20Images/auto-deploy-google-cloud.jpg","Follow our tutorial to provision a Kubernetes cluster and manage it with IAC using Terraform and Helm in 20 minutes or less.",[732],"2022-11-15","simple-kubernetes-management-with-gitlab",{"title":769,"heroImage":770,"category":722,"description":771,"authors":772,"date":775,"slug":776,"externalUrl":6},"How to provision dynamic review environments using merge requests and Argo CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681920/Blog/Hero%20Images/kubernetes.png","Here's how to use the Argo CD ApplicationSet to provision a ‘ReviewOps’ environment based on merge request changes.",[773,774],"Joe Randazzo","Madou Coulibaly","2022-08-02","how-to-provision-reviewops",{"title":778,"heroImage":779,"category":566,"description":780,"authors":781,"date":782,"slug":783,"externalUrl":6},"How what we learned at KubeCon EU 2022 will impact our product roadmaps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097776/Blog/Hero%20Images/Blog/Hero%20Images/2_2.png_1750097776369.png","Platform integrations and secrets management are among our product team's primary takeaways. Find out why.",[758],"2022-05-31","the-kubecon-summary-from-a-product-perspective",{"title":785,"heroImage":786,"category":739,"description":787,"authors":788,"date":791,"slug":792,"externalUrl":6},"Pull-based GitOps moving to GitLab Free tier","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670178/Blog/Hero%20Images/GitLab-Ops.png","Learn how this change provides organizations increased flexibility, security, scalability, and automation in cloud-native environments.",[789,790],"Sandra Gittlen","Lauren Minning","2022-05-18","pull-based-kubernetes-deployments-coming-to-gitlab-free-tier",{"title":794,"heroImage":786,"category":722,"description":795,"authors":796,"date":797,"slug":798,"externalUrl":6},"The ultimate guide to GitOps with GitLab","This eight-part tutorial series demonstrates how to use GitLab as a best-in-class GitOps tool.",[758],"2022-04-07","the-ultimate-guide-to-gitops-with-gitlab",{"title":800,"heroImage":786,"category":722,"description":801,"authors":802,"date":803,"slug":804,"externalUrl":6},"GitOps with GitLab: Turn a GitLab agent for Kubernetes installation to manage itself","This is the eighth and last article in a series of tutorials on how to do GitOps with GitLab.",[758],"2022-03-30","gitops-with-gitlab-manage-the-agent",{"title":806,"heroImage":807,"category":722,"description":808,"authors":809,"date":810,"slug":811,"externalUrl":6},"GitOps with GitLab: Connecting GitLab with a Kubernetes cluster - Auto DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","This is the 6th article in a series of tutorials on how to do GitOps with GitLab",[758],"2022-02-08","gitops-with-gitlab-auto-devops",{"title":813,"heroImage":807,"category":722,"description":814,"authors":815,"date":816,"slug":817,"externalUrl":6},"GitOps with GitLab: How to tackle secrets management","In part four of our GitOps series, we learn how to manage secrets with the GitLab Agent for Kubernetes.",[758],"2021-12-02","gitops-with-gitlab-secrets-management",{"title":819,"heroImage":807,"category":722,"description":820,"authors":821,"date":822,"slug":823,"externalUrl":6},"GitOps with GitLab: Infrastructure provisioning with GitLab and Terraform","In part two of our GitOps series, we set up the infrastructure using GitLab and Terraform. Here's everything you need to know.",[758],"2021-11-04","gitops-with-gitlab-infrastructure-provisioning",{"title":825,"heroImage":807,"category":722,"description":826,"authors":827,"date":828,"slug":829,"externalUrl":6},"Here's how to do GitOps with GitLab","This is the first in a seven-part series on GitOps using GitLab's DevOps Platform.",[758],"2021-10-21","gitops-with-gitlab",{"title":831,"heroImage":832,"category":722,"description":833,"authors":834,"date":836,"slug":837,"externalUrl":6},"How to use Terratag to automatically manage tags and labels for your Terraform Code","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682137/Blog/Hero%20Images/blog-image.png","This blog addresses how you can do that easily and automatically when using Terraform and Terratag (an open source project by env0) on top of the Gitlab CI/CD platform.",[835],"Itzik Gan Baruch","2021-09-14","gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources",{"title":839,"heroImage":840,"category":566,"description":841,"authors":842,"date":844,"slug":845,"externalUrl":6},"How to deploy the GitLab Agent for Kubernetes with limited permissions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668655/Blog/Hero%20Images/seabass-creatives-U3m4_cKbUfc-unsplash.jpg"," Learn how to deploy the GitLab Agent for Kubernetes with Limited Permissions.",[843],"Fernando Diaz","2021-09-10","setting-up-the-k-agent",{"title":847,"heroImage":807,"category":722,"description":848,"authors":849,"date":851,"slug":852,"externalUrl":6},"How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2","Learn how GitLab supports agentless approach for GitOps on AWS.",[850],"Cesar Saavedra","2021-08-10","how-to-agentless-gitops-aws",{"title":854,"heroImage":855,"category":722,"description":856,"authors":857,"date":859,"slug":860,"externalUrl":6},"How GitLab 14 satisfies the need for speed with modern DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682089/Blog/Hero%20Images/racecar_devops.jpg","GitLab 14: Ship with velocity, ship with confidence",[858],"Parker Ennis","2021-07-29","velocity-with-confidence",{"title":862,"heroImage":863,"category":722,"description":864,"authors":865,"date":866,"slug":867,"externalUrl":6},"How to use a push-based approach for GitOps with GitLab scripting and variables","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682051/Blog/Hero%20Images/agentless-gitops-vars-cover-880x587.jpg","Learn how GitLab supports agentless approach for GitOps with scripting and variables.",[850],"2021-07-23","how-to-agentless-gitops-vars",{"title":869,"heroImage":870,"category":722,"description":871,"authors":872,"date":873,"slug":874,"externalUrl":6},"GitOps viewed as part of the Ops evolution","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682062/Blog/Hero%20Images/food-train.jpg","Examine the evolution that led to GitOps",[758],"2021-07-12","gitops-as-the-evolution-of-operations",{"title":876,"heroImage":877,"category":722,"description":878,"authors":879,"date":880,"slug":881,"externalUrl":6},"How to use a pull-based (agent-based) approach for GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682037/Blog/Hero%20Images/agent-based-gitops-cover-880x587.jpg","Learn how GitLab supports agent-based approach for GitOps",[850],"2021-06-23","how-to-use-agent-based-gitops",{"title":883,"heroImage":884,"category":722,"description":885,"authors":886,"date":888,"slug":889,"externalUrl":6},"How to get GitOps right with infrastructure as code security","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663403/Blog/Hero%20Images/gitops-partner-cover-image.jpg","Learn how the GitLab and Indeni integration makes security a core component of your GitOps workflow.",[887],"Ulrica de Fort-Menares","2021-06-10","how-to-get-gitops-right-with-iac-security",{"title":891,"heroImage":892,"category":722,"description":893,"authors":894,"date":897,"slug":898,"externalUrl":6},"3 Ways to approach GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669635/Blog/Hero%20Images/gitops-cover.jpg","Learn about how GitLab users can employ GitOps to cover both Kubernetes and non-Kubernetes environments",[895,896],"Saumya Upadhyaya","Dov Hershkovitch","2021-04-27","gitops-done-3-ways",{"title":900,"heroImage":901,"category":722,"description":902,"authors":903,"date":905,"slug":906,"externalUrl":6},"Production-grade infrastructure, GitOps convergence, and DevSecOps in under 5 minutes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665839/Blog/Hero%20Images/devops.png","Unlock production-grade infrastructure and development workflows in under five minutes with Five Minute Production App: a blend of solutions offered by AWS, Hashicorp Terraform, and GitLab.",[904],"Sri Rangan","2021-02-24","production-grade-infra-devsecops-with-five-minute-production",{"title":908,"heroImage":909,"category":910,"description":908,"authors":911,"date":913,"slug":914,"externalUrl":6},"Being A Better Ally","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679611/Blog/Hero%20Images/cook-county-blog-unsplash.jpg","unfiltered",[912],"David O'Regan","2020-09-09","being-a-better-ally",{"title":916,"heroImage":917,"category":910,"description":918,"authors":919,"date":921,"slug":922,"externalUrl":6},"Using GitLab Pages to Report Local COVID-19 Rates","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681476/Blog/Hero%20Images/thisisengineering-raeng-0jTZTMyGym8-unsplash.jpg","How I used GitLab pages to publish up-to-date local infection rates.",[920],"Matt Nohr","2020-08-06","gitlab-pages-for-covid",{"title":924,"heroImage":925,"category":910,"description":926,"authors":927,"date":929,"slug":930,"externalUrl":6},"Administering your GitLab for Education License","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681419/Blog/Hero%20Images/servers_image.jpg","Getting ready for fall semester and wondering how to set up your GitLab License? We've got you covered!",[928],"Christina Hupy, Ph.D.","2020-07-10","administering-gitlab-edu",{"title":932,"heroImage":933,"category":910,"description":934,"authors":935,"date":936,"slug":937,"externalUrl":6},"Better Code Reviews GitLab Style","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663502/Blog/Hero%20Images/paperclips.jpg","Better Code Reviews - A selection of tools for your tool-belt when it comes to code reviews.",[912],"2020-06-08","better-code-reviews",{"title":939,"heroImage":940,"category":722,"description":941,"authors":942,"date":944,"slug":945,"externalUrl":6},"What tracking down missing TCP Keepalives taught me about Docker, Golang, and GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680874/Blog/Hero%20Images/network.jpg","An in-depth recap of debugging a bug in the Docker client library.",[943],"Stan Hu","2019-11-15","tracking-down-missing-tcp-keepalives",{"title":947,"heroImage":948,"category":292,"description":949,"authors":950,"date":952,"slug":953,"externalUrl":6},"Announcing GitLab for DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671668/Blog/Hero%20Images/integrated.jpg","GitLab brings development, security, and operations into a single application.",[951],"Erica Lindberg","2019-06-20","announcing-gitlab-devsecops",1786803755121]