[{"data":1,"prerenderedAt":1000},["ShallowReactive",2],{"/en-us/blog/tags/gitops":3,"navigation-en-us":19,"banner-en-us":440,"footer-en-us":451,"GitOps-tag-posts-en-us":691},{"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":360,"minimal":391,"duo":410,"switchNav":419,"pricingDeployment":430},{"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},"Talk to sales",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/","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,279,340],{"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":268},{"text":181,"config":182},"View all resources",{"href":183,"dataGaName":178,"dataGaLocation":24},"/resources/",[185,218,240],{"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,235],{"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},"The Source",{"href":234,"dataGaName":230,"dataGaLocation":24},"/the-source/",{"text":236,"config":237},"Remote",{"href":238,"dataGaName":239,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":241,"items":242},"Connect",[243,248,253,258,263],{"text":244,"config":245},"GitLab Services",{"href":246,"dataGaName":247,"dataGaLocation":24},"/services/","services",{"text":249,"config":250},"Community",{"href":251,"dataGaName":252,"dataGaLocation":24},"/community/","community",{"text":254,"config":255},"Forum",{"href":256,"dataGaName":257,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":259,"config":260},"Events",{"href":261,"dataGaName":262,"dataGaLocation":24},"/events/","events",{"text":264,"config":265},"Partners",{"href":266,"dataGaName":267,"dataGaLocation":24},"/partners/","partners",{"config":269,"title":272,"text":273,"link":274},{"background":270,"textColor":271},"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":275,"config":276},"Read the latest",{"href":277,"dataGaName":278,"dataGaLocation":24},"/releases/whats-new/","whats new",{"text":280,"config":281,"menu":283},"Company",{"dataNavLevelOne":282},"company",{"type":75,"columns":284},[285],{"items":286},[287,292,298,300,305,310,315,320,325,330,335],{"text":288,"config":289},"About",{"href":290,"dataGaName":291,"dataGaLocation":24},"/company/","about",{"text":293,"config":294,"footerGa":297},"Jobs",{"href":295,"dataGaName":296,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":296},{"text":259,"config":299},{"href":261,"dataGaName":262,"dataGaLocation":24},{"text":301,"config":302},"Leadership",{"href":303,"dataGaName":304,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":306,"config":307},"Team",{"href":308,"dataGaName":309,"dataGaLocation":24},"/company/team/","team",{"text":311,"config":312},"Handbook",{"href":313,"dataGaName":314,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":316,"config":317},"Investor relations",{"href":318,"dataGaName":319,"dataGaLocation":24},"https://ir.gitlab.com/","investor relations",{"text":321,"config":322},"Trust Center",{"href":323,"dataGaName":324,"dataGaLocation":24},"/security/","trust center",{"text":326,"config":327},"AI Transparency Center",{"href":328,"dataGaName":329,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":331,"config":332},"Newsletter",{"href":333,"dataGaName":334,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":336,"config":337},"Press",{"href":338,"dataGaName":339,"dataGaLocation":24},"/press/","press",{"text":341,"config":342,"menu":343},"Contact us",{"dataNavLevelOne":282},{"type":75,"columns":344},[345],{"items":346},[347,350,355],{"text":31,"config":348},{"href":33,"dataGaName":349,"dataGaLocation":24},"talk to sales",{"text":351,"config":352},"Support portal",{"href":353,"dataGaName":354,"dataGaLocation":24},"https://support.gitlab.com","support portal",{"text":356,"config":357},"Customer portal",{"href":358,"dataGaName":359,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":361,"login":362,"suggestions":369},"Close",{"text":363,"link":364},"To search repositories and projects, login to",{"text":365,"config":366},"gitlab.com",{"href":38,"dataGaName":367,"dataGaLocation":368},"search login","search",{"text":370,"default":371},"Suggestions",[372,374,378,380,384,388],{"text":55,"config":373},{"href":60,"dataGaName":55,"dataGaLocation":368},{"text":375,"config":376},"Code Suggestions (AI)",{"href":377,"dataGaName":375,"dataGaLocation":368},"/solutions/code-suggestions/",{"text":91,"config":379},{"href":93,"dataGaName":91,"dataGaLocation":368},{"text":381,"config":382},"GitLab on AWS",{"href":383,"dataGaName":381,"dataGaLocation":368},"/partners/technology-partners/aws/",{"text":385,"config":386},"GitLab on Google Cloud",{"href":387,"dataGaName":385,"dataGaLocation":368},"/partners/technology-partners/google-cloud-platform/",{"text":389,"config":390},"Why GitLab?",{"href":68,"dataGaName":389,"dataGaLocation":368},{"freeTrial":392,"mobileIcon":397,"desktopIcon":402,"secondaryButton":405},{"text":393,"config":394},"Start free trial",{"href":395,"dataGaName":29,"dataGaLocation":396},"https://gitlab.com/-/trials/new/","nav",{"altText":398,"config":399},"Gitlab Icon",{"src":400,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":398,"config":403},{"src":404,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":406,"config":407},"Get Started",{"href":408,"dataGaName":409,"dataGaLocation":396},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":411,"mobileIcon":415,"desktopIcon":417},{"text":412,"config":413},"Learn more about GitLab Duo",{"href":60,"dataGaName":414,"dataGaLocation":396},"gitlab duo",{"altText":398,"config":416},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":418},{"src":404,"dataGaName":401,"dataGaLocation":396},{"button":420,"mobileIcon":425,"desktopIcon":427},{"text":421,"config":422},"/switch",{"href":423,"dataGaName":424,"dataGaLocation":396},"#contact","switch",{"altText":398,"config":426},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":428},{"src":429,"dataGaName":401,"dataGaLocation":396},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":431,"mobileIcon":436,"desktopIcon":438},{"text":432,"config":433},"Back to pricing",{"href":173,"dataGaName":434,"dataGaLocation":396,"icon":435},"back to pricing","GoBack",{"altText":398,"config":437},{"src":400,"dataGaName":401,"dataGaLocation":396},{"altText":398,"config":439},{"src":404,"dataGaName":401,"dataGaLocation":396},{"title":441,"button":442,"config":447},"See how agentic AI transforms software delivery",{"text":443,"config":444},"Sign up for GitLab Transcend on June 10",{"href":445,"dataGaName":446,"dataGaLocation":24},"/releases/whats-new/#sign-up","transcend event",{"layout":448,"icon":449,"disabled":450},"release","AiStar",false,{"data":452},{"text":453,"source":454,"edit":460,"contribute":465,"config":470,"items":475,"minimal":680},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":455,"config":456},"View page source",{"href":457,"dataGaName":458,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":461,"config":462},"Edit this page",{"href":463,"dataGaName":464,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":466,"config":467},"Please contribute",{"href":468,"dataGaName":469,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":471,"facebook":472,"youtube":473,"linkedin":474},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[476,523,575,619,646],{"title":171,"links":477,"subMenu":492},[478,482,487],{"text":479,"config":480},"View plans",{"href":173,"dataGaName":481,"dataGaLocation":459},"view plans",{"text":483,"config":484},"Why Premium?",{"href":485,"dataGaName":486,"dataGaLocation":459},"/pricing/premium/","why premium",{"text":488,"config":489},"Why Ultimate?",{"href":490,"dataGaName":491,"dataGaLocation":459},"/pricing/ultimate/","why ultimate",[493],{"title":494,"links":495},"Contact Us",[496,499,501,503,508,513,518],{"text":497,"config":498},"Contact sales",{"href":33,"dataGaName":34,"dataGaLocation":459},{"text":351,"config":500},{"href":353,"dataGaName":354,"dataGaLocation":459},{"text":356,"config":502},{"href":358,"dataGaName":359,"dataGaLocation":459},{"text":504,"config":505},"Status",{"href":506,"dataGaName":507,"dataGaLocation":459},"https://status.gitlab.com/","status",{"text":509,"config":510},"Terms of use",{"href":511,"dataGaName":512,"dataGaLocation":459},"/terms/","terms of use",{"text":514,"config":515},"Privacy statement",{"href":516,"dataGaName":517,"dataGaLocation":459},"/privacy/","privacy statement",{"text":519,"config":520},"Cookie preferences",{"dataGaName":521,"dataGaLocation":459,"id":522,"isOneTrustButton":14},"cookie preferences","ot-sdk-btn",{"title":71,"links":524,"subMenu":533},[525,529],{"text":526,"config":527},"DevSecOps platform",{"href":53,"dataGaName":528,"dataGaLocation":459},"devsecops platform",{"text":530,"config":531},"AI-Assisted Development",{"href":60,"dataGaName":532,"dataGaLocation":459},"ai-assisted development",[534],{"title":535,"links":536},"Topics",[537,542,545,550,555,560,565,570],{"text":538,"config":539},"CICD",{"href":540,"dataGaName":541,"dataGaLocation":459},"/topics/ci-cd/","cicd",{"text":10,"config":543},{"href":544,"dataGaName":11,"dataGaLocation":459},"/topics/gitops/",{"text":546,"config":547},"DevOps",{"href":548,"dataGaName":549,"dataGaLocation":459},"/topics/devops/","devops",{"text":551,"config":552},"Version Control",{"href":553,"dataGaName":554,"dataGaLocation":459},"/topics/version-control/","version control",{"text":556,"config":557},"DevSecOps",{"href":558,"dataGaName":559,"dataGaLocation":459},"/topics/devsecops/","devsecops",{"text":561,"config":562},"Cloud Native",{"href":563,"dataGaName":564,"dataGaLocation":459},"/topics/cloud-native/","cloud native",{"text":566,"config":567},"AI for Coding",{"href":568,"dataGaName":569,"dataGaLocation":459},"/topics/devops/ai-for-coding/","ai for coding",{"text":571,"config":572},"Agentic AI",{"href":573,"dataGaName":574,"dataGaLocation":459},"/topics/agentic-ai/","agentic ai",{"title":576,"links":577},"Solutions",[578,580,582,587,591,594,598,601,603,606,609,614],{"text":115,"config":579},{"href":110,"dataGaName":115,"dataGaLocation":459},{"text":104,"config":581},{"href":87,"dataGaName":88,"dataGaLocation":459},{"text":583,"config":584},"Agile development",{"href":585,"dataGaName":586,"dataGaLocation":459},"/solutions/agile-delivery/","agile delivery",{"text":588,"config":589},"SCM",{"href":100,"dataGaName":590,"dataGaLocation":459},"source code management",{"text":538,"config":592},{"href":93,"dataGaName":593,"dataGaLocation":459},"continuous integration & delivery",{"text":595,"config":596},"Value stream management",{"href":143,"dataGaName":597,"dataGaLocation":459},"value stream management",{"text":10,"config":599},{"href":600,"dataGaName":11,"dataGaLocation":459},"/solutions/gitops/",{"text":153,"config":602},{"href":156,"dataGaName":157,"dataGaLocation":459},{"text":604,"config":605},"Small business",{"href":162,"dataGaName":163,"dataGaLocation":459},{"text":607,"config":608},"Public sector",{"href":168,"dataGaName":169,"dataGaLocation":459},{"text":610,"config":611},"Education",{"href":612,"dataGaName":613,"dataGaLocation":459},"/solutions/education/","education",{"text":615,"config":616},"Financial services",{"href":617,"dataGaName":618,"dataGaLocation":459},"/solutions/finance/","financial services",{"title":176,"links":620},[621,623,625,627,630,632,634,636,638,640,642,644],{"text":189,"config":622},{"href":191,"dataGaName":192,"dataGaLocation":459},{"text":194,"config":624},{"href":196,"dataGaName":197,"dataGaLocation":459},{"text":199,"config":626},{"href":201,"dataGaName":202,"dataGaLocation":459},{"text":204,"config":628},{"href":206,"dataGaName":629,"dataGaLocation":459},"docs",{"text":227,"config":631},{"href":229,"dataGaName":230,"dataGaLocation":459},{"text":222,"config":633},{"href":224,"dataGaName":225,"dataGaLocation":459},{"text":236,"config":635},{"href":238,"dataGaName":239,"dataGaLocation":459},{"text":244,"config":637},{"href":246,"dataGaName":247,"dataGaLocation":459},{"text":249,"config":639},{"href":251,"dataGaName":252,"dataGaLocation":459},{"text":254,"config":641},{"href":256,"dataGaName":257,"dataGaLocation":459},{"text":259,"config":643},{"href":261,"dataGaName":262,"dataGaLocation":459},{"text":264,"config":645},{"href":266,"dataGaName":267,"dataGaLocation":459},{"title":280,"links":647},[648,650,652,654,656,658,660,664,669,671,673,675],{"text":288,"config":649},{"href":290,"dataGaName":282,"dataGaLocation":459},{"text":293,"config":651},{"href":295,"dataGaName":296,"dataGaLocation":459},{"text":301,"config":653},{"href":303,"dataGaName":304,"dataGaLocation":459},{"text":306,"config":655},{"href":308,"dataGaName":309,"dataGaLocation":459},{"text":311,"config":657},{"href":313,"dataGaName":314,"dataGaLocation":459},{"text":316,"config":659},{"href":318,"dataGaName":319,"dataGaLocation":459},{"text":661,"config":662},"Sustainability",{"href":663,"dataGaName":661,"dataGaLocation":459},"/sustainability/",{"text":665,"config":666},"Diversity, inclusion and belonging (DIB)",{"href":667,"dataGaName":668,"dataGaLocation":459},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":321,"config":670},{"href":323,"dataGaName":324,"dataGaLocation":459},{"text":331,"config":672},{"href":333,"dataGaName":334,"dataGaLocation":459},{"text":336,"config":674},{"href":338,"dataGaName":339,"dataGaLocation":459},{"text":676,"config":677},"Modern Slavery Transparency Statement",{"href":678,"dataGaName":679,"dataGaLocation":459},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":681},[682,685,688],{"text":683,"config":684},"Terms",{"href":511,"dataGaName":512,"dataGaLocation":459},{"text":686,"config":687},"Cookies",{"dataGaName":521,"dataGaLocation":459,"id":522,"isOneTrustButton":14},{"text":689,"config":690},"Privacy",{"href":516,"dataGaName":517,"dataGaLocation":459},[692,703,713,724,735,745,755,764,775,784,795,803,811,820,828,836,844,854,864,873,883,892,901,910,920,931,941,951,961,971,980,990],{"content":693,"config":701},{"title":694,"heroImage":695,"category":696,"description":697,"authors":698,"date":700},"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.",[699],"Daniel Helfand","2025-02-19",{"slug":702,"externalUrl":-1},"how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery",{"content":704,"config":711},{"title":705,"heroImage":706,"category":707,"description":708,"authors":709,"date":710},"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.",[699],"2024-08-19",{"slug":712,"externalUrl":-1},"how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes",{"content":714,"config":722},{"title":715,"heroImage":716,"category":707,"description":717,"authors":718,"date":721},"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.",[719,720],"Noah Ing","Siddharth Mathur","2024-01-31",{"slug":723,"externalUrl":-1},"quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform",{"content":725,"config":733},{"title":726,"heroImage":727,"category":728,"description":729,"authors":730,"date":732},"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.",[731],"Gabriel Engel","2023-08-15",{"slug":734,"externalUrl":-1},"removing-tags-from-small-saas-runner-on-linux",{"content":736,"config":743},{"title":737,"heroImage":738,"category":707,"description":739,"authors":740,"date":742},"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.",[741],"Bart Zhang","2023-07-05",{"slug":744,"externalUrl":-1},"set-up-flux-for-gitops-on-openshift",{"content":746,"config":753},{"title":747,"heroImage":748,"category":707,"description":749,"authors":750,"date":752},"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.",[751],"Viktor Nagy","2023-02-08",{"slug":754,"externalUrl":-1},"why-did-we-choose-to-integrate-fluxcd-with-gitlab",{"content":756,"config":762},{"title":757,"heroImage":758,"category":707,"description":759,"authors":760,"date":761},"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.",[719],"2022-11-15",{"slug":763,"externalUrl":-1},"simple-kubernetes-management-with-gitlab",{"content":765,"config":773},{"title":766,"heroImage":767,"category":707,"description":768,"authors":769,"date":772},"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.",[770,771],"Joe Randazzo","Madou Coulibaly","2022-08-02",{"slug":774,"externalUrl":-1},"how-to-provision-reviewops",{"content":776,"config":782},{"title":777,"heroImage":778,"category":559,"description":779,"authors":780,"date":781},"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.",[751],"2022-05-31",{"slug":783,"externalUrl":-1},"the-kubecon-summary-from-a-product-perspective",{"content":785,"config":793},{"title":786,"heroImage":787,"category":728,"description":788,"authors":789,"date":792},"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.",[790,791],"Sandra Gittlen","Lauren Minning","2022-05-18",{"slug":794,"externalUrl":-1},"pull-based-kubernetes-deployments-coming-to-gitlab-free-tier",{"content":796,"config":801},{"title":797,"heroImage":787,"category":707,"description":798,"authors":799,"date":800},"The ultimate guide to GitOps with GitLab","This eight-part tutorial series demonstrates how to use GitLab as a best-in-class GitOps tool.",[751],"2022-04-07",{"slug":802,"externalUrl":-1},"the-ultimate-guide-to-gitops-with-gitlab",{"content":804,"config":809},{"title":805,"heroImage":787,"category":707,"description":806,"authors":807,"date":808},"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.",[751],"2022-03-30",{"slug":810,"externalUrl":-1},"gitops-with-gitlab-manage-the-agent",{"content":812,"config":818},{"title":813,"heroImage":814,"category":707,"description":815,"authors":816,"date":817},"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",[751],"2022-02-08",{"slug":819,"externalUrl":-1},"gitops-with-gitlab-auto-devops",{"content":821,"config":826},{"title":822,"heroImage":814,"category":707,"description":823,"authors":824,"date":825},"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.",[751],"2021-12-02",{"slug":827,"externalUrl":-1},"gitops-with-gitlab-secrets-management",{"content":829,"config":834},{"title":830,"heroImage":814,"category":707,"description":831,"authors":832,"date":833},"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.",[751],"2021-11-04",{"slug":835,"externalUrl":-1},"gitops-with-gitlab-infrastructure-provisioning",{"content":837,"config":842},{"title":838,"heroImage":814,"category":707,"description":839,"authors":840,"date":841},"Here's how to do GitOps with GitLab","This is the first in a seven-part series on GitOps using GitLab's DevOps Platform.",[751],"2021-10-21",{"slug":843,"externalUrl":-1},"gitops-with-gitlab",{"content":845,"config":852},{"title":846,"heroImage":847,"category":707,"description":848,"authors":849,"date":851},"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.",[850],"Itzik Gan Baruch","2021-09-14",{"slug":853,"externalUrl":-1},"gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources",{"content":855,"config":862},{"title":856,"heroImage":857,"category":559,"description":858,"authors":859,"date":861},"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.",[860],"Fernando Diaz","2021-09-10",{"slug":863,"externalUrl":-1},"setting-up-the-k-agent",{"content":865,"config":871},{"title":866,"heroImage":814,"category":707,"description":867,"authors":868,"date":870},"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.",[869],"Cesar Saavedra","2021-08-10",{"slug":872,"externalUrl":-1},"how-to-agentless-gitops-aws",{"content":874,"config":881},{"title":875,"heroImage":876,"category":707,"description":877,"authors":878,"date":880},"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",[879],"Parker Ennis","2021-07-29",{"slug":882,"externalUrl":-1},"velocity-with-confidence",{"content":884,"config":890},{"title":885,"heroImage":886,"category":707,"description":887,"authors":888,"date":889},"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.",[869],"2021-07-23",{"slug":891,"externalUrl":-1},"how-to-agentless-gitops-vars",{"content":893,"config":899},{"title":894,"heroImage":895,"category":707,"description":896,"authors":897,"date":898},"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",[751],"2021-07-12",{"slug":900,"externalUrl":-1},"gitops-as-the-evolution-of-operations",{"content":902,"config":908},{"title":903,"heroImage":904,"category":707,"description":905,"authors":906,"date":907},"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",[869],"2021-06-23",{"slug":909,"externalUrl":-1},"how-to-use-agent-based-gitops",{"content":911,"config":918},{"title":912,"heroImage":913,"category":707,"description":914,"authors":915,"date":917},"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.",[916],"Ulrica de Fort-Menares","2021-06-10",{"slug":919,"externalUrl":-1},"how-to-get-gitops-right-with-iac-security",{"content":921,"config":929},{"title":922,"heroImage":923,"category":707,"description":924,"authors":925,"date":928},"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",[926,927],"Saumya Upadhyaya","Dov Hershkovitch","2021-04-27",{"slug":930,"externalUrl":-1},"gitops-done-3-ways",{"content":932,"config":939},{"title":933,"heroImage":934,"category":707,"description":935,"authors":936,"date":938},"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.",[937],"Sri Rangan","2021-02-24",{"slug":940,"externalUrl":-1},"production-grade-infra-devsecops-with-five-minute-production",{"content":942,"config":949},{"title":943,"heroImage":944,"category":945,"description":943,"authors":946,"date":948},"Being A Better Ally","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679611/Blog/Hero%20Images/cook-county-blog-unsplash.jpg","unfiltered",[947],"David O'Regan","2020-09-09",{"slug":950,"externalUrl":-1},"being-a-better-ally",{"content":952,"config":959},{"title":953,"heroImage":954,"category":945,"description":955,"authors":956,"date":958},"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.",[957],"Matt Nohr","2020-08-06",{"slug":960,"externalUrl":-1},"gitlab-pages-for-covid",{"content":962,"config":969},{"title":963,"heroImage":964,"category":945,"description":965,"authors":966,"date":968},"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!",[967],"Christina Hupy, Ph.D.","2020-07-10",{"slug":970,"externalUrl":-1},"administering-gitlab-edu",{"content":972,"config":978},{"title":973,"heroImage":974,"category":945,"description":975,"authors":976,"date":977},"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.",[947],"2020-06-08",{"slug":979,"externalUrl":-1},"better-code-reviews",{"content":981,"config":988},{"title":982,"heroImage":983,"category":707,"description":984,"authors":985,"date":987},"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.",[986],"Stan Hu","2019-11-15",{"slug":989,"externalUrl":-1},"tracking-down-missing-tcp-keepalives",{"content":991,"config":998},{"title":992,"heroImage":993,"category":282,"description":994,"authors":995,"date":997},"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.",[996],"Erica Lindberg","2019-06-20",{"slug":999,"externalUrl":-1},"announcing-gitlab-devsecops",1777934918745]