<!DOCTYPE html>
<html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#" class="scroll-smooth">
  <head>
            <!-- Standard Favicon -->
    <link rel="icon" type="image/png" sizes="16x16" href="/sites/default/themes/custom/assets/favicons/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/sites/default/themes/custom/assets/favicons/favicon-32x32.png">
    <link rel="shortcut icon" href="/sites/default/themes/custom/assets/favicons/favicon.ico">
    <link rel="icon" type="image/x-icon" href="/sites/default/themes/custom/assets/favicons/favicon.ico">
    <!-- Apple Touch Icon (iOS) -->
    <link rel="apple-touch-icon" sizes="180x180" href="/sites/default/themes/custom/assets/favicons/apple-touch-icon.png">
    <!-- Android Chrome Icons -->
    <link rel="icon" type="image/png" sizes="192x192" href="/sites/default/themes/custom/assets/favicons/android-chrome-192x192.png">
    <link rel="icon" type="image/png" sizes="512x512" href="/sites/default/themes/custom/assets/favicons/android-chrome-512x512.png">
    <!-- Web App Manifest -->
    <link rel="manifest" href="/sites/default/themes/custom/assets/favicons/site.webmanifest">

        <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="theme-color" content="#4C00FF">

    <meta charset="utf-8" />
<meta property="og:url" content="https://www.puppet.com/blog" />
<meta property="og:title" content="Blog | Puppet" />
<meta property="og:image" content="https://www.puppet.com/sites/default/files/image-social-share-default.jpg" />
<meta property="og:image:url" content="https://www.puppet.com/sites/default/files/image-social-share-default.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Blog | Puppet" />
<meta name="twitter:site" content="@perforce" />
<meta name="twitter:creator" content="@perforce" />
<meta name="MobileOptimized" content="width" />
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script id="gtmScript" nonce="T_eYyZtJFE6z4I_8OGaEEw" data-gtm-nonce="T_eYyZtJFE6z4I_8OGaEEw">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id=GTM-PF6FV6'+dl;var n=d.querySelector('[nonce]');n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PF6FV6');</script>
<link rel="alternate" hreflang="en" href="https://www.puppet.com/blog" />
<link rel="stylesheet" href="/styles/node/234/8186/backgrounds.css" />
<link rel="icon" href="/sites/default/files/favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="canonical" href="https://www.puppet.com/blog" />
<script nonce="T_eYyZtJFE6z4I_8OGaEEw">window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};a2a_config.icon_color = "#4C00FF";</script>

    <title>Blog | Puppet</title>
    <link rel="stylesheet" media="all" href="/sites/default/files/css/css_rUj-wdjbZIKOg8qO4pJj9QXfX44tXjqYenWM6JYmUQQ.css?delta=0&amp;language=en&amp;theme=p4base&amp;include=eJxVTtGOwzAI-6E00aT7n4oOlnJLEwR0bf9-ubt10z1g2UbGAKI3qEeCF4k3bdUDcAIec2kTlDCRO-lIuzQjHG9curSUqZL29bUpJdRVoET4hj3Q7oXr_fReMsjXBEbpB06eQb0fGTbGTH66M-e59PEBLpdjQNB3WJRtCQIKWUFmOzs-TlyrrFNhmwmDzM2bbSw9-abxijUYO_VWGqGQeuLKHuwwp-XvwQfTZukX49JwLf8tJZNWjR80ZGV8AmDUfhE" />
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css" />
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_Kk36M6qgIRKxWc53f6ROrkL49BXkL4Y8A8GInNCGSao.css?delta=2&amp;language=en&amp;theme=p4base&amp;include=eJxVTtGOwzAI-6E00aT7n4oOlnJLEwR0bf9-ubt10z1g2UbGAKI3qEeCF4k3bdUDcAIec2kTlDCRO-lIuzQjHG9curSUqZL29bUpJdRVoET4hj3Q7oXr_fReMsjXBEbpB06eQb0fGTbGTH66M-e59PEBLpdjQNB3WJRtCQIKWUFmOzs-TlyrrFNhmwmDzM2bbSw9-abxijUYO_VWGqGQeuLKHuwwp-XvwQfTZukX49JwLf8tJZNWjR80ZGV8AmDUfhE" />
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_R7CuxPUHk88Z4vSPNecPuozR4UdlIL-qzO1ktL0tZXE.css?delta=3&amp;language=en&amp;theme=p4base&amp;include=eJxVTtGOwzAI-6E00aT7n4oOlnJLEwR0bf9-ubt10z1g2UbGAKI3qEeCF4k3bdUDcAIec2kTlDCRO-lIuzQjHG9curSUqZL29bUpJdRVoET4hj3Q7oXr_fReMsjXBEbpB06eQb0fGTbGTH66M-e59PEBLpdjQNB3WJRtCQIKWUFmOzs-TlyrrFNhmwmDzM2bbSw9-abxijUYO_VWGqGQeuLKHuwwp-XvwQfTZukX49JwLf8tJZNWjR80ZGV8AmDUfhE" />

    
  </head>
  <body class="site-puppet">
      <!-- Google Tag  Manager (noscript) -->
    <noscript>
      <iframe class="hidden invisible" src="//www.googletagmanager.com/ns.html?id=GTM-PF6FV6" height="0" width="0"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->
        <a href="#main-content" class="visually-hidden focusable">
      Skip to main content
    </a>
    <div data-sitewide-alert aria-live="polite"></div>

      <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas>
    



<div  class="layout-container">
  <header >
            <div id="top-nav-bar">
  <div class="region--header-top">
    <div class="max-w-container mx-auto relative block">
    <div  id="block-p4base-perforcesite" class="block">
  
    
      

            <div class="text-long"><div><div class="photoswipe-gallery"><div><a href="https://www.perforce.com" title="Perforce"><svg style="margin-top:-10px;" id="logo-perforce-icon-reg" width="30" height="30" viewBox="0 0 176.53 144.22"><g><path d="M122.2,50.37l-16.76,9.68,4.24,2.45c5.01,2.89,5.55,7.69,5.55,9.62s-.54,6.73-5.55,9.62l-75.84,43.79c-5.01,2.89-9.44.96-11.11,0-1.67-.96-5.55-3.83-5.55-9.62V28.32c0-5.79,3.88-8.66,5.55-9.62,1.67-.96,6.09-2.89,11.11,0l20.09,11.6,17.17-9.91L42.42,3.83C33.56-1.28,22.99-1.28,14.14,3.83,5.29,8.95,0,18.1,0,28.32v87.58c0,10.22,5.29,19.38,14.14,24.49,4.43,2.56,9.28,3.83,14.14,3.83s9.71-1.28,14.14-3.83l75.84-43.79c8.85-5.11,14.14-14.27,14.14-24.49,0-8.6-3.75-16.43-10.2-21.74Z" fill="#4c00ff" /><path d="M54.33,93.86l16.76-9.68-4.24-2.45c-5.01-2.89-5.55-7.69-5.55-9.62s.54-6.73,5.55-9.62l75.84-43.79c5.01-2.89,9.44-.96,11.11,0,1.67.96,5.55,3.83,5.55,9.62v87.58c0,5.79-3.88,8.66-5.55,9.62-1.67.96-6.09,2.89-11.11,0l-20.09-11.6-17.17,9.91,28.68,16.56c8.85,5.11,19.43,5.11,28.28,0,8.85-5.11,14.14-14.27,14.14-24.49V28.32c0-10.22-5.29-19.38-14.14-24.49-4.43-2.56-9.28-3.83-14.14-3.83s-9.71,1.28-14.14,3.83L58.27,47.62c-8.85,5.11-14.14,14.27-14.14,24.49,0,8.6,3.75,16.43,10.2,21.74Z" fill="#4c00ff" /></g></svg></a></div></div></div></div>
      
  </div>

    </div>
  </div>

                  
  <div id="branding-mm">

        <div class="flex items-center justify-between px-8 py-4 fixed z-50 bg-white w-full h-24">
      <div  id="block-p4base-sitebranding" class="block my-auto mr-8">
  
    
    <div class="branding-flex flex items-center gap-6">
              <a
        href="https://www.perforce.com"
        class="perforce-logo"
        aria-label="Perforce"
      >
      </a>
            <a href="/" rel="home" target="_blank">
      <img src="/sites/default/files/logo-puppet-reg_0.svg" alt="Puppet" fetchpriority="high" class="lg:max-w-[18.75rem] max-w-[12rem] max-h-[40px] w-48" />
    </a>
      
  </div>
</div>
<nav role="navigation" aria-labelledby="block-p4base-mainmenusystem-menu" id="block-p4base-mainmenusystem" class="order-2 xl:order-1 xl:border-none md:border-l border-solid border-gray-300">
            
  <h2 class="visually-hidden" id="block-p4base-mainmenusystem-menu">Main Menu System</h2>
  

        
<nav
  class="relative w-full"
  aria-label="Main navigation"
  x-data="{
    mobileOpen: false,
    activeItem: null,
    closeTimer: null,
    toggleItem(index) {
      this.activeItem = this.activeItem === index ? null : index;
    }
  }"
>

    <div class="xl:hidden flex items-center justify-end">
    <button
      class="flex items-center gap-2 px-3 py-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
      @click="mobileOpen = true"
      :aria-expanded="mobileOpen ? 'true' : 'false'"
      aria-controls="main-nav-menu"
      aria-label="Open navigation menu"
    >
      <span class="text-[2.25rem] leading-none">☰</span>
      <span class="sr-only">Open menu</span>
    </button>
  </div>

    <div
    x-show="mobileOpen"
    x-transition:enter="transition ease-out duration-300"
    x-transition:enter-start="opacity-0 translate-x-full"
    x-transition:enter-end="opacity-100 translate-x-0"
    x-transition:leave="transition ease-in duration-200"
    x-transition:leave-start="opacity-100 translate-x-0"
    x-transition:leave-end="opacity-0 translate-x-full"
    class="fixed inset-0 bg-white z-50 flex flex-col h-screen overflow-y-auto xl:hidden"
    x-cloak
    @keydown.escape.window="mobileOpen = false"
    role="dialog"
    aria-modal="true"
    aria-label="Mobile navigation"
  >

        <div class="flex items-center justify-between px-4 py-3 border-b border-gray-100 flex-shrink-0">

            <div class="flex-shrink-0">
        <div  class="block my-auto mr-8">
  
    
    <div class="branding-flex flex items-center gap-6">
              <a
        href="https://www.perforce.com"
        class="perforce-logo"
        aria-label="Perforce"
      >
      </a>
            <a href="/" rel="home" target="_blank">
      <img src="/sites/default/files/logo-puppet-reg_0.svg" alt="Puppet" fetchpriority="high" class="lg:max-w-[18.75rem] max-w-[12rem] max-h-[40px] w-48" />
    </a>
        <a href="/" rel="home" class="hidden">Puppet</a>
    
  </div>
</div>

      </div>

            <button
        class="flex items-center gap-2 px-3 py-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 mr-8"
        @click="mobileOpen = false"
        aria-label="Close navigation menu"
      >
        <span class="text-base leading-none">✖</span>
        <span class="sr-only">Close menu</span>
      </button>

    </div>
    <div class="mobile-search md:hidden">
      <div  data-drupal-selector="views-exposed-form-sitewide-search-page-search" class="block views-exposed-form bef-exposed-form">
  
      <h2 class="h2">Sitewide Search</h2>
    
      <form action="/search" method="get" id="views-exposed-form-sitewide-search-page-search" accept-charset="UTF-8">

        <div class="relative mx-auto">
        <input
                type="text"
                name="keys"
                value=""
                placeholder="Search..."
                class="w-[800px] placeholder:text-p4-primary text-base text-p4-dark py-4 px-4 pr-12 border rounded-md focus:outline-none focus:ring-0 focus:border-transparent"
        />

                <button
                type="submit"
                name=""
                value="Apply"
                class="absolute top-1/2 right-8 transform -translate-y-1/2"
                aria-label="Search"
        >
            <svg class="w-6 h-6 text-p4-primary" id="icon_search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"
                      d="M17.4 9.2c0 4.5-3.7 8.2-8.2 8.2S1 13.8 1 9.2 4.7 1 9.2 1s8.2 3.7 8.2 8.2ZM15 15l8 8"/>
            </svg>

        </button>
    </div>

        
    
    
</form>
  </div>

    </div>  
        <ul class="menu menu-level-0 flex flex-col w-full flex-1 overflow-y-auto !pl-2">
      
                                
                
        <li
          class="menu-item list-none border-gray-100"
        >

          <div class="flex items-center justify-between">

                                                              
                          <span class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="open ? &quot;true&quot; : &quot;false&quot;">Solutions</span>
            
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 0 ? null : 0"
                :aria-expanded="activeItem === 0 ? 'true' : 'false'"
                aria-label="Toggle Solutions submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 0 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 0"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5278" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5284" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Industries</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5279" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/government">Government</a></div>
       
</div></div>
              <div>

<div id="p-5280" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/healthcare">Healthcare</a></div>
       
</div></div>
              <div>

<div id="p-5281" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/financial-services">Financial Services</a></div>
       
</div></div>
              <div>

<div id="p-5282" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/retail-consumer-goods">Retail and Consumer Goods</a></div>
       
</div></div>
              <div>

<div id="p-5283" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/software-it-services">Software and IT Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
                
        <li
          class="menu-item list-none border-gray-100"
        >

          <div class="flex items-center justify-between">

                                                              
                          <span class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="open ? &quot;true&quot; : &quot;false&quot;">Products</span>
            
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 1 ? null : 1"
                :aria-expanded="activeItem === 1 ? 'true' : 'false'"
                aria-label="Toggle Products submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 1 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 1"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5285" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5287" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Core</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Core Configuration Management and Infrastructure Automation Tool</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5286" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-core">Puppet Core</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5289" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Enterprise</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>An IT Operations Platform Designed to Automate, Scale and Secure your Infrastructure</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5288" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-enterprise">Puppet Enterprise</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5292" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Professional Services</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Suite of Managed Puppet Services to Simplify Infrastructure Management</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5290" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services">Professional Services</a></div>
       
</div></div>
              <div>

<div id="p-5291" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services/black-belt/contact">Puppet Black Belt Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
                
        <li
          class="menu-item list-none border-gray-100"
        >

          <div class="flex items-center justify-between">

                                                              
                          <span class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="open ? &quot;true&quot; : &quot;false&quot;">Learn</span>
            
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 2 ? null : 2"
                :aria-expanded="activeItem === 2 ? 'true' : 'false'"
                aria-label="Toggle Learn submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 2 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 2"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5293" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5301" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Resources</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5294" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/blog">Blog</a></div>
       
</div></div>
              <div>

<div id="p-5295" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/customers/case-studies">Customer Case Studies</a></div>
       
</div></div>
              <div>

<div id="p-5296" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/ebooks-papers">eBooks &amp; Papers</a></div>
       
</div></div>
              <div>

<div id="p-5297" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/podcasts">Podcasts</a></div>
       
</div></div>
              <div>

<div id="p-5298" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/webinars">Webinars</a></div>
       
</div></div>
              <div>

<div id="p-5299" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/videos">Videos</a></div>
       
</div></div>
              <div>

<div id="p-5300" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources">All Resources</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5308" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Technical</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5302" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://help.puppet.com/">Documentation</a></div>
       
</div></div>
              <div>

<div id="p-5303" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/community">Community</a></div>
       
</div></div>
              <div>

<div id="p-5304" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/support/training">Training</a></div>
       
</div></div>
              <div>

<div id="p-5305" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/integrations">Puppet Integrations</a></div>
       
</div></div>
              <div>

<div id="p-5306" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet">Customer Support Portal</a></div>
       
</div></div>
              <div>

<div id="p-5307" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      

<div id="p-5309" class="paragraph paragraph--type--menu-featured-content paragraph--view-mode--default menu-featured-content p-4 hidden lg:block">
      <span class="font-bold my-4 leading-normal">Puppet: Intelligent Infrastructure Governance</span>
  
  <div class="rounded-3xl overflow-hidden mx-auto !my-4">
  




            <div class="field field--name-field-image field--type-entity-reference field--label-hidden"><div>
  
  




  <div class="field field--name-field-media-image field--type-image field--label-visually_hidden">
    <div class="visually-hidden">Image</div>
                          <img loading="lazy" src="/sites/default/files/2025-11/image-web-pup-solution-brief-intelligent-infrastructure-governance.png" width="600" height="400" alt="Two reports with dark blue and purple covers titled &quot;Puppet Healthcare Infrastructure Governance,&quot; featuring icons and text." />


                </div>

</div>
</div>
       
    </div>
  <span class="menu-link-list">
  

            <div class="text-long"><p>Advanced Automation for Security, Resiliency, and Efficiency</p>
</div>
      
  </span>

  <div class="menu-link-item mt-8">
    




            <div class="field field--name-field-link field--type-link field--label-hidden"><a href="/resources/puppet-infrastructure-governance">Get the Solution Brief &gt;</a></div>
          
    </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
                
        <li
          class="menu-item list-none border-gray-100"
        >

          <div class="flex items-center justify-between">

                                                              
                          <span class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="open ? &quot;true&quot; : &quot;false&quot;">Puppet Forge</span>
            
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 3 ? null : 3"
                :aria-expanded="activeItem === 3 ? 'true' : 'false'"
                aria-label="Toggle Puppet Forge submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 3 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 3"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5310" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5313" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5311" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/">Puppet Forge</a></div>
       
</div></div>
              <div>

<div id="p-5312" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/modules?limit=25&amp;sort_by=rank&amp;module_groups=base%20pe_only&amp;utm_term=trendemon&amp;_gl=1*15ymtg2*_gcl_aw*R0NMLjE3NzE4NjAyMjEuQ2p3S0NBaUFrdkRNQmhCTUVpd0FuVUE5QmQzS014dnQ2bDNhUHdya1M3YnBkU1NWZ0tUOGh5VHludC12c2VsMGNmNkVaNW91eGNLMVp4b0NUYm9RQXZEX0J3RQ..*_gcl_au*MTcxNjQxNDk3Ni4xNzY3MzY3MjMwLjE0Mzg3OTMzMjYuMTc3MzM0MjM4Ni4xNzczMzQyMzg1&amp;premium=true">Premium Modules</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
                
        <li
          class="menu-item list-none border-gray-100"
        >

          <div class="flex items-center justify-between">

                                                              
                          <span class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="open ? &quot;true&quot; : &quot;false&quot;">Company</span>
            
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 4 ? null : 4"
                :aria-expanded="activeItem === 4 ? 'true' : 'false'"
                aria-label="Toggle Company submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 4 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 4"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5314" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5321" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5315" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/about">About Puppet</a></div>
       
</div></div>
              <div>

<div id="p-5316" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/careers">Careers</a></div>
       
</div></div>
              <div>

<div id="p-5317" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/company/management-team">Leadership</a></div>
       
</div></div>
              <div>

<div id="p-5318" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/partner-ecosystem">Partners</a></div>
       
</div></div>
              <div>

<div id="p-5319" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/press">Press</a></div>
       
</div></div>
              <div>

<div id="p-5320" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
            <div class="mobile-utility-nav-container md:hidden block">
        <nav role="navigation" aria-labelledby="-menu">
      
  <h2 id="-menu"></h2>
  

        <ul class="utility-nav list-none md:flex hidden items-center desktop-utility-nav">

                                                                
  
      
            
    <li>

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Customer Portal Icon" src="/sites/default/files/2026-04/icon-simple-composition-window-man.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

              <a href="/downloads/puppet-enterprise" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Download Icon" src="/sites/default/files/2026-04/icon-simple-download-bottom.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

      
        
        
                      <a href="/contact" class="text-[1.15rem] underline xl1485:no-underline xl1485:p4-cta p4-cta--secondary xl1485:border xl1485:border-p4-primary xl1485:border-solid xl1485:!px-4 xl1485:py-2 xl1485:mt-0 xl1485:hover:!no-underline">
              Contact Us
            </a>

          
        
            
    </li>

      
            
    <li>

      
        
        
          
          <a href="/contact/demo-request" class="utility-nav__link underline xl1485:no-underline xl1485:!px-4 xl1485:mt-0 xl1485:p4-cta text-[1.15rem]">
            Get a Demo
          </a>
          
        
            
    </li>

  </ul>


                                                                
  
      
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="px-1 py-1">
          Login
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="/downloads/puppet-enterprise" class="px-1 py-1">
          Downloads
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
                      
            


<a href="/contact"  class="p4-cta p4-cta--secondary text-[1.15rem] border border-p4-primary border-solid !px-4 py-2 mt-0 hover:!no-underline">
      Contact Us
  </a>

          
        
            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
          
            


<a href="/contact/demo-request"  class="p4-cta text-[1.15rem] !px-4 mt-0">
      Get a Demo
  </a>
          
        
        
  </nav>

      </div>
    </ul>
  </div>

    <ul
    id="main-nav-menu"
    class="menu menu-level-0 hidden xl:flex xl:flex-row xl:items-stretch xl:gap-[1.2rem] w-full xl:w-auto !m-0"
  >
    
                        
            
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 0
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 0) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 0) ? null : 0" @keydown.space.prevent="activeItem = (activeItem === 0) ? null : 0" @keydown.escape.stop="activeItem = null">
          Solutions
        </button>
      
   
    <div
      x-show="activeItem === 0"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5278" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5284" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Industries</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5279" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/government">Government</a></div>
       
</div></div>
              <div>

<div id="p-5280" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/healthcare">Healthcare</a></div>
       
</div></div>
              <div>

<div id="p-5281" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/financial-services">Financial Services</a></div>
       
</div></div>
              <div>

<div id="p-5282" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/retail-consumer-goods">Retail and Consumer Goods</a></div>
       
</div></div>
              <div>

<div id="p-5283" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/software-it-services">Software and IT Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                        
            
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 1
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
              "
    >
            
                          
            
              <button  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 1) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 1) ? null : 1" @keydown.space.prevent="activeItem = (activeItem === 1) ? null : 1" @keydown.escape.stop="activeItem = null">
          Products
        </button>
      
   
    <div
      x-show="activeItem === 1"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 right-0
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      w-max">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5285" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5287" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Core</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Core Configuration Management and Infrastructure Automation Tool</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5286" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-core">Puppet Core</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5289" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Enterprise</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>An IT Operations Platform Designed to Automate, Scale and Secure your Infrastructure</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5288" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-enterprise">Puppet Enterprise</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5292" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Professional Services</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Suite of Managed Puppet Services to Simplify Infrastructure Management</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5290" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services">Professional Services</a></div>
       
</div></div>
              <div>

<div id="p-5291" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services/black-belt/contact">Puppet Black Belt Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                        
            
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 2
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
              "
    >
            
                          
            
              <button  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 2) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 2) ? null : 2" @keydown.space.prevent="activeItem = (activeItem === 2) ? null : 2" @keydown.escape.stop="activeItem = null">
          Learn
        </button>
      
   
    <div
      x-show="activeItem === 2"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 right-0
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      w-max">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5293" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5301" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Resources</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5294" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/blog">Blog</a></div>
       
</div></div>
              <div>

<div id="p-5295" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/customers/case-studies">Customer Case Studies</a></div>
       
</div></div>
              <div>

<div id="p-5296" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/ebooks-papers">eBooks &amp; Papers</a></div>
       
</div></div>
              <div>

<div id="p-5297" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/podcasts">Podcasts</a></div>
       
</div></div>
              <div>

<div id="p-5298" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/webinars">Webinars</a></div>
       
</div></div>
              <div>

<div id="p-5299" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/videos">Videos</a></div>
       
</div></div>
              <div>

<div id="p-5300" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources">All Resources</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5308" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Technical</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5302" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://help.puppet.com/">Documentation</a></div>
       
</div></div>
              <div>

<div id="p-5303" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/community">Community</a></div>
       
</div></div>
              <div>

<div id="p-5304" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/support/training">Training</a></div>
       
</div></div>
              <div>

<div id="p-5305" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/integrations">Puppet Integrations</a></div>
       
</div></div>
              <div>

<div id="p-5306" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet">Customer Support Portal</a></div>
       
</div></div>
              <div>

<div id="p-5307" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      

<div id="p-5309" class="paragraph paragraph--type--menu-featured-content paragraph--view-mode--default menu-featured-content p-4 hidden lg:block">
      <span class="font-bold my-4 leading-normal">Puppet: Intelligent Infrastructure Governance</span>
  
  <div class="rounded-3xl overflow-hidden mx-auto !my-4">
  




            <div class="field field--name-field-image field--type-entity-reference field--label-hidden"><div>
  
  




  <div class="field field--name-field-media-image field--type-image field--label-visually_hidden">
    <div class="visually-hidden">Image</div>
                          <img loading="lazy" src="/sites/default/files/2025-11/image-web-pup-solution-brief-intelligent-infrastructure-governance.png" width="600" height="400" alt="Two reports with dark blue and purple covers titled &quot;Puppet Healthcare Infrastructure Governance,&quot; featuring icons and text." />


                </div>

</div>
</div>
       
    </div>
  <span class="menu-link-list">
  

            <div class="text-long"><p>Advanced Automation for Security, Resiliency, and Efficiency</p>
</div>
      
  </span>

  <div class="menu-link-item mt-8">
    




            <div class="field field--name-field-link field--type-link field--label-hidden"><a href="/resources/puppet-infrastructure-governance">Get the Solution Brief &gt;</a></div>
          
    </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                        
            
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 3
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 3) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 3) ? null : 3" @keydown.space.prevent="activeItem = (activeItem === 3) ? null : 3" @keydown.escape.stop="activeItem = null">
          Puppet Forge
        </button>
      
   
    <div
      x-show="activeItem === 3"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5310" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5313" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5311" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/">Puppet Forge</a></div>
       
</div></div>
              <div>

<div id="p-5312" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/modules?limit=25&amp;sort_by=rank&amp;module_groups=base%20pe_only&amp;utm_term=trendemon&amp;_gl=1*15ymtg2*_gcl_aw*R0NMLjE3NzE4NjAyMjEuQ2p3S0NBaUFrdkRNQmhCTUVpd0FuVUE5QmQzS014dnQ2bDNhUHdya1M3YnBkU1NWZ0tUOGh5VHludC12c2VsMGNmNkVaNW91eGNLMVp4b0NUYm9RQXZEX0J3RQ..*_gcl_au*MTcxNjQxNDk3Ni4xNzY3MzY3MjMwLjE0Mzg3OTMzMjYuMTc3MzM0MjM4Ni4xNzczMzQyMzg1&amp;premium=true">Premium Modules</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                        
            
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 4
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 4) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 4) ? null : 4" @keydown.space.prevent="activeItem = (activeItem === 4) ? null : 4" @keydown.escape.stop="activeItem = null">
          Company
        </button>
      
   
    <div
      x-show="activeItem === 4"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5314" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5321" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5315" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/about">About Puppet</a></div>
       
</div></div>
              <div>

<div id="p-5316" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/careers">Careers</a></div>
       
</div></div>
              <div>

<div id="p-5317" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/company/management-team">Leadership</a></div>
       
</div></div>
              <div>

<div id="p-5318" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/partner-ecosystem">Partners</a></div>
       
</div></div>
              <div>

<div id="p-5319" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/press">Press</a></div>
       
</div></div>
              <div>

<div id="p-5320" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
      </ul>
</nav>
  </nav>
<nav role="navigation" aria-labelledby="block-p4base-utilitynav-menu" id="block-p4base-utilitynav" class="py-8 px-2 text-[.9rem] [&amp;_li]:mx-3 hidden md:flex items-center justify-end xl:order-2 order-1 ml-auto">
  
            
  <h2 class="visually-hidden" id="block-p4base-utilitynav-menu">Utility Nav</h2>
  

  <div class="flex items-center gap-2">
    

      <div x-data="{ open: false }" class="relative flex items-center">
    <!-- Search Icon Button -->
    <button @click="open = true" class="hover:text-gray-300 dark:text-p4-teal focus:outline-none" id="search-button" aria-label="Open Site Search" title="Open Site Search">
      <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-6 h-6">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-4.35-4.35M16 10a6 6 0 1 0-12 0 6 6 0 0 0 12 0z"/>
      </svg>
    </button>

    <!-- Fullscreen Search Overlay -->
    <div x-show="open" x-transition.opacity x-cloak
         @click.away="open = false"
         @keydown.escape.window="open = false"
         x-init="$watch('open', value => {
         if (value) {
            $nextTick(() => {
            const input = document.querySelector('#search-modal-content input[type=text]');
            if (input) input.focus();
          });
         }
       })"
         class="fixed inset-0 bg-p4-primary bg-opacity-90 flex items-center justify-center z-50">

      <div class="container p-4 relative">
          <!-- Search Form Container -->
        <div id="search-modal-content" class="w-full flex items-center justify-center">
          <div  data-drupal-selector="views-exposed-form-sitewide-search-page-search" class="block views-exposed-form bef-exposed-form">
  
      <h2 class="h2">Sitewide Search</h2>
    
      <form action="/search" method="get" id="views-exposed-form-sitewide-search-page-search" accept-charset="UTF-8">

        <div class="relative mx-auto">
        <input
                type="text"
                name="keys"
                value=""
                placeholder="Search..."
                class="w-[800px] placeholder:text-p4-primary text-base text-p4-dark py-4 px-4 pr-12 border rounded-md focus:outline-none focus:ring-0 focus:border-transparent"
        />

                <button
                type="submit"
                name=""
                value="Apply"
                class="absolute top-1/2 right-8 transform -translate-y-1/2"
                aria-label="Search"
        >
            <svg class="w-6 h-6 text-p4-primary" id="icon_search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"
                      d="M17.4 9.2c0 4.5-3.7 8.2-8.2 8.2S1 13.8 1 9.2 4.7 1 9.2 1s8.2 3.7 8.2 8.2ZM15 15l8 8"/>
            </svg>

        </button>
    </div>

        
    
    
</form>
  </div>

            <!-- Close Button -->
            <button @click="open = false"
                    class="ml-8 w-10 h-10 bg-p4-teal text-p4-dark hover:text-black text-xl rounded-full flex items-center justify-center">
                ✖
            </button>
        </div>
      </div>
    </div>
  </div>


        <div>
              <ul class="utility-nav list-none md:flex hidden items-center desktop-utility-nav">

                                                                
  
      
            
    <li>

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Customer Portal Icon" src="/sites/default/files/2026-04/icon-simple-composition-window-man.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

              <a href="/downloads/puppet-enterprise" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Download Icon" src="/sites/default/files/2026-04/icon-simple-download-bottom.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

      
        
        
                      <a href="/contact" class="text-[1.15rem] underline xl1485:no-underline xl1485:p4-cta p4-cta--secondary xl1485:border xl1485:border-p4-primary xl1485:border-solid xl1485:!px-4 xl1485:py-2 xl1485:mt-0 xl1485:hover:!no-underline">
              Contact Us
            </a>

          
        
            
    </li>

      
            
    <li>

      
        
        
          
          <a href="/contact/demo-request" class="utility-nav__link underline xl1485:no-underline xl1485:!px-4 xl1485:mt-0 xl1485:p4-cta text-[1.15rem]">
            Get a Demo
          </a>
          
        
            
    </li>

  </ul>


                                                                
  
      
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="px-1 py-1">
          Login
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="/downloads/puppet-enterprise" class="px-1 py-1">
          Downloads
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
                      
            


<a href="/contact"  class="p4-cta p4-cta--secondary text-[1.15rem] border border-p4-primary border-solid !px-4 py-2 mt-0 hover:!no-underline">
      Contact Us
  </a>

          
        
            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
          
            


<a href="/contact/demo-request"  class="p4-cta text-[1.15rem] !px-4 mt-0">
      Get a Demo
  </a>
          
        
        
          </div>
  </div>
</nav>

    </div>

  </div>

        </header>

<main role="main"  class="main-content px-0 pt-[96px]">
    
    
    
    
    <a id="main-content" tabindex="-1"></a>                <div>
        
<div  id="block-p4base-headerfieldblock" class="block block-- w-full">
  
    
      




      <div class="field field--name-field-header field--type-entity-reference-revisions field--label-hidden">
              <div>


<div id="p-3007" class="header-listings">
  
<div class="listings-hero px-4 py-10 min-h-[350px] flex items-center bg- bg-cover bg-center bg-no-repeat">
    <div class="max-w-container w-full mx-auto">
        <div class="md:flex max-md:mt-6">  
            <div class="md:w-8/12 mr-8 sm:max-w-[55%] place-content-center sm:flex-none ">
                                    

<h1  class="heading">
                Blog
      </h1>
                                            </div>
                        <div class="md:w-4/12 mt-6 md:mt-0 relative">
                
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block my-6 absolute ml-6">Featured | Blog</span>                                    
<img
   class="w-full h-auto object-cover rounded-3xl"
      src="https://www.puppet.com/sites/default/files/2026-03/pup-blog-vendor-backed%20puppet-core-740x390_0.jpg"
  alt="Making the Case for Vendor-Backed Puppet Core "
  />
                                                
                
<a
   class="text-sm w-full px-4 block absolute bottom-0 py-2 bg-p4-primary rounded-3xl text-p4-white"
    href="/blog/why-talk-about-puppet-core"
>
      Making the Case for Vendor-Backed Puppet Core 
  </a>
            </div>    
                    </div>
    </div>    
</div>
</div>
</div>
          </div>
  
  </div>

    <div data-drupal-messages-fallback class="hidden"></div><div  id="block-p4base-content" class="block">
  
    
      
<article  class="node">

  
    

  
  <div>
    


            <div class="subnav field field--name-field-subnav field--type-entity-reference field--label-hidden bg-p4-primary shadow-xl">


                                  
    

<ul  class="menu max-w-container mx-auto list-none hidden md:flex">
        
<li  class="menu__item flex leading-5">
                      <a href="/resources" class="menu__link" data-drupal-link-system-path="node/237">Resources</a>
                </li>
      
<li  class="menu__item flex leading-5">
                      <a href="/resources/ebooks-papers" class="menu__link" data-drupal-link-system-path="node/240">eBooks &amp; Papers</a>
                </li>
      
<li  class="menu__item flex leading-5">
                      <a href="/resources/webinars" class="menu__link" data-drupal-link-system-path="node/243">Webinars</a>
                </li>
      
<li  class="menu__item flex leading-5">
                      <a href="/resources/videos" class="menu__link" data-drupal-link-system-path="node/249">Videos</a>
                </li>
      
<li  class="menu__item flex leading-5">
                      <a href="/resources/podcasts" class="menu__link" data-drupal-link-system-path="node/642">Podcasts</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--active">
                      <a href="/blog" class="menu__link menu__link--active is-active" data-drupal-link-system-path="node/234" aria-current="page">Blog</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--with-sub" x-data="{
            open: false,
            leftOffset: 0,
            adjustDropdown() {
                  const dropdown = this.$el.querySelector(&#039;.menu--sub&#039;);
                  dropdown.style.display = &#039;block&#039;;
                  dropdown.style.visibility = &#039;hidden&#039;;
                  dropdown.style.left = &#039;0px&#039;;
                  const rect = dropdown.getBoundingClientRect();
                  const windowWidth = window.innerWidth;

                  let leftValue = 0;
                  const rightOverflow = rect.right - windowWidth;
                  if (rightOverflow &gt; 0) {
                  leftValue = -rightOverflow -  10;
                  }

                  const leftOverflow = rect.left;
                  if (leftOverflow &lt; 0) {
                  leftValue = -leftOverflow + 10;
                  }

                dropdown.style.removeProperty(&#039;left&#039;);
                dropdown.style.visibility = &#039;visible&#039;;
                if (leftOverflow &lt; 0 || rightOverflow &gt; 0) {
                  console.log(&#039;shift&#039;);
                  dropdown.style.left = `${leftValue}px`;
                  dropdown.style.visibility = &#039;visible&#039;;
                }
            }
          }" @mouseenter="open = true; adjustDropdown()" @mouseleave="open = false">
                          <button
                  class="menu__link menu__link--with-sub flex items-center cursor-default "
                  :aria-expanded="open"
                  @click.prevent="open = !open"
          >
              Community
              <svg
                      xmlns="http://www.w3.org/2000/svg"
                      viewBox="0 0 10 6"
                      class="ml-2 w-[14px] h-[14px] mt-[2px]"
                      fill="currentColor"
              >
                  <path d="M0 0h10L5 6z"></path>
              </svg>
          </button>

                    <span class="expand-sub"></span>
                                                        
    

<ul  class="menu menu--sub menu--sub-1 list-none px-6 py-4 z-40" x-show="open" x-transition:enter="transition ease-out duration-200 transform" x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-out duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @focusout="await $nextTick(); if (! $el.contains(document.activeElement)) open = false">
        
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/283">Overview</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/contribute" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/75">Contribute</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="https://slack.puppet.com/" class="menu__link menu__link--sub menu__link--sub-1">Connect (Slack)</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/calendar" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/339">Calendar</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/open-source/open-source-puppet" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/76">Open Source Puppet</a>
                </li>
      
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="https://forge.puppet.com/" class="menu__link menu__link--sub menu__link--sub-1">The Forge</a>
                </li>
  </ul>
  
      </li>
      
<li  class="menu__item flex leading-5">
                      <a href="/customers" class="menu__link" data-drupal-link-system-path="node/235">Customer Stories</a>
                </li>
  </ul>
  

<div x-data="{
    mobileMenuOpen: false,
    toggleMenu() {
        this.mobileMenuOpen = !this.mobileMenuOpen;
        console.log(this.mobileMenuOpen);
        if (this.mobileMenuOpen) {
            document.body.style.overflow = 'hidden';
        } else {

            document.body.style.overflow = '';
        }
    }
}" class="md:hidden">
        <button
            @click="toggleMenu()"
            class="md:hidden w-full flex items-center px-8 py-4 rounded-3xl flex justify-between">
        <span class="mr-2 text-white">Overview</span>
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6" class="w-4 h-4 text-p4-teal" fill="currentColor">
            <path d="M0 0h10L5 6z" />
        </svg>

    </button>

        <nav :class="mobileMenuOpen ? 'block' : 'hidden'" class="mega-menu mt-2 md:block bg-white">
        <div class="fixed inset-0 bg-white z-[500] peer-checked:flex lg:hidden flex-col overflow-y-auto">
            <!-- Close Button -->
            <div class="text-right px-4 py-2 border-b">
                <label @click="toggleMenu()"  class="cursor-pointer text-xl">✖</label>
            </div>
            <!-- Menu Items -->
            <ul class="flex-1 flex flex-col gap-y-4 px-4 py-6 list-none">
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Resources
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/ebooks-papers" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                eBooks &amp; Papers
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/webinars" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Webinars
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/videos" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Videos
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/podcasts" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Podcasts
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/blog" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Blog
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Accordion Toggle for Submenus -->
                                                        <input id="toggle-community-1435613872" type="checkbox"
                                   class="hidden peer"/>
                            <label for="toggle-community-1435613872"
                                   class="flex items-center justify-between py-2 px-4 font-medium cursor-pointer text-lg">
                                Community
                                <!-- Triangle Icon -->
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2"
                                     stroke="currentColor"
                                     class="size-5 shrink-0 transition-transform duration-300 peer-checked:rotate-90"
                                     aria-hidden="true">
                                    <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"/>
                                </svg>
                            </label>

                            <!-- Dropdown Content -->
                            <ul class="hidden peer-checked:block space-y-2 list-none">
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community"
                                               class="hover:underline text-p4-dark">
                                                Overview
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/contribute"
                                               class="hover:underline text-p4-dark">
                                                Contribute
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="https://slack.puppet.com/"
                                               class="hover:underline text-p4-dark">
                                                Connect (Slack)
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/calendar"
                                               class="hover:underline text-p4-dark">
                                                Calendar
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/open-source/open-source-puppet"
                                               class="hover:underline text-p4-dark">
                                                Open Source Puppet
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="https://forge.puppet.com/"
                                               class="hover:underline text-p4-dark">
                                                The Forge
                                            </a>
                                                                            </li>
                                                            </ul>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/customers" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Customer Stories
                            </a>
                                            </li>
                            </ul>
        </div>
    </nav>
</div></div>
      
  </div>

</article>


  </div>
<div  id="block-p4base-views-block-blog-block-1" class="block views-element-container">
  
    
      <div><div class="js-view-dom-id-ac454c2671cd0c170bb6dc7513e372d066f1642f4b49705c7ceb4217ca5c9909">
  
  
  

  
  <form class="views-exposed-form bef-exposed-form" data-bef-auto-submit="" data-bef-auto-submit-delay="500" data-bef-auto-submit-minimum-length="3" data-bef-auto-submit-full-form="" data-drupal-selector="views-exposed-form-blog-block-1" action="/blog" method="get" id="views-exposed-form-blog-block-1" accept-charset="UTF-8">
  <div class="js-form-item form-item">
      <label for="edit-field-topics-target-id" class="visually-hidden form-item__label">Topics</label>
        <div class="form-item__dropdown"><select data-drupal-selector="edit-field-topics-target-id" id="edit-field-topics-target-id" name="field_topics_target_id" class="form-select form-item__select"><option value="All" selected="selected">Topic</option><option value="45">Announcements &amp; Events</option><option value="51">Cloud</option><option value="48">Community &amp; Open Source</option><option value="40">Configuration Management</option><option value="44">DevOps</option><option value="46">Ecosystems &amp; Integrations</option><option value="50">Glossary</option><option value="43">Government</option><option value="39">How to &amp; Use Cases</option><option value="47">Infrastructure Automation</option><option value="52">Platform Engineering</option><option value="42">Products &amp; Services</option><option value="41">Security &amp; Compliance</option><option value="49">Windows</option></select></div>
        </div>
<div class="js-form-item form-item">
      <label for="edit-blog-created-year" class="visually-hidden form-item__label">Sort by Year</label>
        <div class="form-item__dropdown"><select data-drupal-selector="edit-blog-created-year" id="edit-blog-created-year" name="blog_created_year" class="form-select form-item__select"><option value="All" selected="selected">Sort By Year</option><option value="2026">2026</option><option value="2025">2025</option><option value="2024">2024</option><option value="2023">2023</option><option value="2022">2022</option><option value="2021">2021</option><option value="2020">2020</option><option value="2019">2019</option></select></div>
        </div>
<div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions--3"><input data-bef-auto-submit-click="" class="js-hide button js-form-submit form-submit form-item__textfield" data-drupal-selector="edit-submit-blog" type="submit" id="edit-submit-blog" value="Apply" />
</div>


</form>

  

  




<div class="views-view-responsive-grid views-view-responsive-grid--horizontal" style="--views-responsive-grid--column-count:3;--views-responsive-grid--cell-min-width:350px;--views-responsive-grid--layout-gap:10px;">
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/nis2-poland-ksc-act-compliance" title="Poland’s KSC Act Is Now in Force: Why NIS2 Compliance Starts with Infrastructure Automation "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/image-pup-blog-nis2-poland.png" alt="Poland’s KSC Act Is Now in Force: Why NIS2 Compliance Starts with Infrastructure Automation " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Poland’s KSC Act Is Now in Force: Why NIS2 Compliance Starts with Infrastructure Automation 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Poland’s NIS2 implementation under the KSC Act puts infrastructure automation directly in scope. Learn the risks of unmanaged tooling and how Puppet helps enforce secure, auditable configurations. 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/uk-cyber-essentials-2026" title="UK Cyber Essentials is Raising the Bar. Governance is How Teams Keep It There. "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/pup-blog-security-compliance-enforcement-740x390-03.jpg" alt="UK Cyber Essentials is Raising the Bar. Governance is How Teams Keep It There. " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      UK Cyber Essentials is Raising the Bar. Governance is How Teams Keep It There. 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        The full details on the April 2026 update to the UK&#039;s Cyber Essentials. Learn how to meet the updated requirements, close governance gaps, and stay compliant. 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
  







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/emea-hybrid-it-security-compliance" title="What EMEA Infrastructure Leaders Are Saying About Security, Compliance, &amp; Hybrid IT "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/pup-blog-security-compliance-740x390-02.jpg" alt="What EMEA Infrastructure Leaders Are Saying About Security, Compliance, &amp; Hybrid IT " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      What EMEA Infrastructure Leaders Are Saying About Security, Compliance, &amp; Hybrid IT 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Learn what EMEA teams are prioritizing right now while facing tighter regulations, rising security pressures, shifting cloud strategies, and the practical realities of automation and AI.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Community &amp; Open Source
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/what-is-sovereign-cloud" title="What is Sovereign Cloud? What Engineers and IT Leaders Need to Know "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/pup-blog-sovereign-cloud-740x390.jpg" alt="What is Sovereign Cloud? What Engineers and IT Leaders Need to Know " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      What is Sovereign Cloud? What Engineers and IT Leaders Need to Know 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Learn what sovereign cloud is, why it matters now, and how organizations meet data sovereignty laws without sacrificing speed, automation, or DevOps.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Cloud, Glossary
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/ai-assisted-puppet-module-development" title="Generate a Puppet Module Using GitHub Copilot and VS Code "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/pup-blog-github-and%20vs-code-740x390.jpg" alt="Generate a Puppet Module Using GitHub Copilot and VS Code " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Generate a Puppet Module Using GitHub Copilot and VS Code 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        This tutorial shows how to use GitHub Copilot with the Puppet Model Context Protocol (MCP) server to generate, validate, and refine a Puppet module—even if you’re new to Puppet development. 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            DevOps, How to &amp; Use Cases
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/dod-compliance" title="DoD Compliance + DoD Configuration Management: How to Get Compliant with Less Effort"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-04/pup-blog-dod-compliance-and-cybersecurity-740x390.jpg" alt="DoD Compliance + DoD Configuration Management: How to Get Compliant with Less Effort" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      DoD Compliance + DoD Configuration Management: How to Get Compliant with Less Effort
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        How federal IT teams can automate DoD continuous compliance without the delay, risk, and cost of manual approaches. 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Government
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/cmmc-requirements" title="CMMC Requirements for 2026: How to Stay CMMC 2.0 Compliant &amp; Prove Maturity at Any Level"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2025-04/image-web-pup-blog-what-is-cmmc.jpg" alt="CMMC Requirements for 2026: How to Stay CMMC 2.0 Compliant &amp; Prove Maturity at Any Level" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      CMMC Requirements for 2026: How to Stay CMMC 2.0 Compliant &amp; Prove Maturity at Any Level
      </h3>
                
                                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Configuration Management
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/engineering-risk" title="From Abstract Risk to Real Impact: Why Security Is Everyone’s Job "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-03/pup-blog-why-security-740x390.jpg" alt="From Abstract Risk to Real Impact: Why Security Is Everyone’s Job " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      From Abstract Risk to Real Impact: Why Security Is Everyone’s Job 
      </h3>
                
                                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
      







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/why-talk-about-puppet-core" title="Making the Case for Vendor-Backed Puppet Core "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-03/pup-blog-vendor-backed%20puppet-core-740x390_0.jpg" alt="Making the Case for Vendor-Backed Puppet Core " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Making the Case for Vendor-Backed Puppet Core 
      </h3>
                
                                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Products &amp; Services, How to &amp; Use Cases, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/agent-vs-agentless-security" title="Agent vs. Agentless: What is better for Infrastructure Management? "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-02/pup-blog-agent-vs.-agentless-security-740x390.jpg" alt="Agent vs. Agentless: What is better for Infrastructure Management? " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Agent vs. Agentless: What is better for Infrastructure Management? 
      </h3>
                
                                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, DevOps
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/puppet-tam-service" title="How the Puppet Technical Account Management (TAM) Service Unlocks Success"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-02/pup-blog-tam-740x390.jpg" alt="How the Puppet Technical Account Management (TAM) Service Unlocks Success" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      How the Puppet Technical Account Management (TAM) Service Unlocks Success
      </h3>
                
                                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Products &amp; Services, DevOps
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/what-is-infrastructure-as-code" title="What is Infrastructure as Code (IaC)? Best Practices, Tools, Examples &amp; Why Every Organization Should Be Using It"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2025-03/image-blog-pup-what-is-infrastructure-as-code.jpg" alt="What is Infrastructure as Code (IaC)? Best Practices, Tools, Examples &amp; Why Every Organization Should Be Using It" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      What is Infrastructure as Code (IaC)? Best Practices, Tools, Examples &amp; Why Every Organization Should Be Using It
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        What is infrastructure as code (IaC)? It&#039;s the act of turning OS, app, security, storage &amp; other IT configurations as code. Learn how it&#039;s done &amp; tools here.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Infrastructure Automation, DevOps
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
  </div>

    

  <nav  class="pager" aria-label="Pagination" role="navigation">
    <ul  class="pager__items js-pager__items">
                                                                        <li  class="pager__item is-active">
                    <a  class="pager__link is-active" href="?page=0" title="Current page" aria-current="page" aria-current=&quot;page&quot;>
            <span  class="visually-hidden">
              Current page
            </span>1</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=1" title="Go to page 2" >
            <span  class="visually-hidden">
              Page 
            </span>2</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=2" title="Go to page 3" >
            <span  class="visually-hidden">
              Page 
            </span>3</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=3" title="Go to page 4" >
            <span  class="visually-hidden">
              Page 
            </span>4</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=4" title="Go to page 5" >
            <span  class="visually-hidden">
              Page 
            </span>5</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=5" title="Go to page 6" >
            <span  class="visually-hidden">
              Page 
            </span>6</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=6" title="Go to page 7" >
            <span  class="visually-hidden">
              Page 
            </span>7</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=7" title="Go to page 8" >
            <span  class="visually-hidden">
              Page 
            </span>8</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=8" title="Go to page 9" >
            <span  class="visually-hidden">
              Page 
            </span>9</a>
        </li>
                          <li  class="pager__item pager__item--ellipsis">&hellip;</li>
                          <li  class="pager__item pager__item--next">
          <a  class="pager__link pager__link--next" href="?page=1" title="Go to next page" rel="next">
            <span  class="visually-hidden">Next page</span>
            <span aria-hidden="true">››</span>
          </a>
        </li>
                          <li  class="pager__item pager__item--last">
          <a  class="pager__link pager__link--last" href="?page=18" title="Go to last page" >
            <span  class="visually-hidden">Last page</span>
            <span aria-hidden="true">Last »</span>
          </a>
        </li>
          </ul>
  </nav>


  
  

  
  
</div>
</div>

  </div>

  </div>

      </main>

            
<footer  class="footer footer-- min-h-72">
  <div  class="footer__inner">
    <!-- Footer Menu Section -->
    <div  class="footer__menu border-b border-p4-dark max-w-container mx-auto py-8">
        <nav role="navigation" aria-labelledby="block-p4base-footer-menu" id="block-p4base-footer">
            
  <h2 class="visually-hidden" id="block-p4base-footer-menu">Footer</h2>
  

        
  <div class="footer-menu">
<div class="mx-auto px-4 sm:px-6 grid grid-cols-1 sm:grid-cols-3 lg:grid-cols-5 gap-6">
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Products</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/products/puppet-enterprise" class="footer-menu__link text-p4-dark">Puppet Enterprise Platform</a></li>
                      <li class="list-none !pl-0"><a href="/products/puppet-core" class="footer-menu__link text-p4-dark">Puppet Core</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Forge</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="https://forge.puppet.com/modules" class="footer-menu__link text-p4-dark">Puppet Modules</a></li>
                      <li class="list-none !pl-0"><a href="https://forge.puppet.com/" class="footer-menu__link text-p4-dark">Visit Puppet Forge</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Resources</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/resources/ebooks-papers" class="footer-menu__link text-p4-dark">eBooks &amp; Papers</a></li>
                      <li class="list-none !pl-0"><a href="/resources/videos" class="footer-menu__link text-p4-dark">Videos</a></li>
                      <li class="list-none !pl-0"><a href="/resources/webinars" class="footer-menu__link text-p4-dark">Webinars</a></li>
                      <li class="list-none !pl-0"><a href="/resources/podcasts" class="footer-menu__link text-p4-dark">Podcasts</a></li>
                      <li class="list-none !pl-0"><a href="/blog" class="footer-menu__link text-p4-dark">Blog</a></li>
                      <li class="list-none !pl-0"><a href="/resources" class="footer-menu__link text-p4-dark">All Resources</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Support &amp; Services</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="footer-menu__link text-p4-dark">Customer Portal</a></li>
                      <li class="list-none !pl-0"><a href="https://help.puppet.com/" class="footer-menu__link text-p4-dark">Documentation</a></li>
                      <li class="list-none !pl-0"><a href="/professional-services" class="footer-menu__link text-p4-dark">Professional Services</a></li>
                      <li class="list-none !pl-0"><a href="/support/training" class="footer-menu__link text-p4-dark">Training &amp; Education</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Community</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/community" class="footer-menu__link text-p4-dark">Overview</a></li>
                  </ul>
          </div>
    </div>
</div>


  </nav>

    </div>

<!-- Branding and Social Media Section -->
<div  class="footer__branding_social max-w-container mx-auto py-6 flex items-center justify-between lg:flex-row flex-col">
  <!-- Branding Section -->
  <div  class="footer__branding max-w-[275px] flex-shrink-0">
    


<div  class="logo">
  
<a
   class="logo__link"
    href="/"
>
        

  
<img
   class="logo__image"
      src="/themes/custom/p4base/assets/images/logo.svg"
  alt="Logo"
  />
    </a>
</div>
    <div class="mt-4 text-xs">
      &copy; 2026 Perforce Software Inc. All Rights Reserved.
    </div>
    <div class="mt-2 text-xs text-center lg:text-left">
      <a href="https://www.perforce.com/privacy-policy">Privacy Policy</a> | 
      <a href="https://www.perforce.com/website-terms-use">Terms of Use</a> |
      <a href="https://www.perforce.com/legal">Legal</a> |
      <a href="https://trust.perforce.com/">Trust Center</a> |
      <a href="https://preferences.perforce.com/form/opt_out">Do Not Sell or Share My Personal Information</a>
    </div>
  </div>

  <!-- Social Menu Section -->
  <div  class="footer__social flex-shrink-0 lg:flex-row flex-col">
      <div class="social-menu">
        <ul class="social-menu__list flex !pl-0 [&>li]:!px-4 mt-4">
          </ul>
  </div>
  </div>
</div>

  </div>
</footer>

      </div>

  </div>

    
    <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/234","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxPageState":{"libraries":"eJx1T1tuwzAMu1ASo8DuY8iwYqvzC5LcNLefuyQd-rEPyyQlERR4rxXKbuAEy8q16ARkgGxI1UGaHKoiW3y2KujtSmlQMdC1Wukuk_43ErAgDwfMPQmtuzkd8amJyrfx3Buk5aRT-3IgaCA1KnixV7lwANbhOG_kA-qlRgoxjacz3G777IHfVrk6SjhnLP2SGpPkqQFDYGhRrhB_ytJL6y6RRPRTi1WrbNTG5hsuVMbRQoojCVpIyGoObRfFfIR-EG5ifusCd3h-CLn6nj5nGKXVIvTAOTD5o2dfmzaSaOXdnP8Py8uqRw","theme":"p4base","theme_token":null},"ajaxTrustedUrl":{"\/blog":true,"\/search":true},"data":{"extlink":{"extTarget":true,"extTargetAppendNewWindowDisplay":true,"extTargetAppendNewWindowLabel":"(opens in a new window)","extTargetNoOverride":true,"extNofollow":false,"extTitleNoOverride":false,"extNoreferrer":false,"extFollowNoOverride":false,"extClass":"0","extLabel":"(link is external)","extImgClass":false,"extSubdomains":true,"extExclude":"","extInclude":"\\.pdf$","extCssExclude":"","extCssInclude":"","extCssExplicit":"","extAlert":false,"extAlertText":"This link will take you to an external web site. We are not responsible for their content.","extHideIcons":false,"mailtoClass":"0","telClass":"0","mailtoLabel":"(link sends email)","telLabel":"(link is a phone number)","extUseFontAwesome":false,"extIconPlacement":"before","extPreventOrphan":true,"extFaLinkClasses":"fa fa-external-link","extFaMailtoClasses":"fa fa-envelope-o","extAdditionalLinkClasses":"","extAdditionalMailtoClasses":"","extAdditionalTelClasses":"","extFaTelClasses":"fa fa-phone","allowedDomains":[],"extExcludeNoreferrer":""}},"viewsAjaxHistory":{"renderPageItem":0,"initialExposedInput":{"views_dom_id:ac454c2671cd0c170bb6dc7513e372d066f1642f4b49705c7ceb4217ca5c9909":null}},"views":{"ajax_path":"\/views\/ajax","ajaxViews":{"views_dom_id:ac454c2671cd0c170bb6dc7513e372d066f1642f4b49705c7ceb4217ca5c9909":{"view_name":"blog","view_display_id":"block_1","view_args":"","view_path":"\/node\/234","view_base_path":null,"view_dom_id":"ac454c2671cd0c170bb6dc7513e372d066f1642f4b49705c7ceb4217ca5c9909","pager_element":0}}},"better_exposed_filters":{"autosubmit_exclude_textfield":false},"sitewideAlert":{"refreshInterval":2592000000,"automaticRefresh":false,"showCount":false,"serverSideRender":false},"photoswipe":{"selector":"a.photoswipe:not(.no-lightbox) \u003E img"},"csp":{"nonce":"T_eYyZtJFE6z4I_8OGaEEw"},"user":{"uid":0,"permissionsHash":"c0d2ecfc93d3b34d931d1045496250bcfda1cad2d2d181e33522d31b321f8ffd"}}</script>
<script src="/sites/default/files/js/js_1gDFtXtnsM2RUyEBl2vKMKc0yOs1BOKz4sp_JxNu8lY.js?scope=footer&amp;delta=0&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="https://static.addtoany.com/menu/page.js" defer></script>
<script src="/sites/default/files/js/js_urrNKu8rlPGL_eFRaA7EcNfUfYDh0k2ogOEL_OBJnQs.js?scope=footer&amp;delta=2&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="https://cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/alpinejs@3.14.3/dist/cdn.min.js"></script>
<script src="/sites/default/files/js/js_M2oN_DPnzC80LFiacQRyJAPyEqdrV_YQHxrnRB5AZo8.js?scope=footer&amp;delta=5&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="/sites/default/files/js/js_9vahm8Z78m2zqLiKy641tIcd8zlc4OzVHMItZifd1vc.js?scope=footer&amp;delta=8&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>

      </body>
</html>
