<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sigstore Archives - Linuxcent</title>
	<atom:link href="https://linuxcent.com/tag/sigstore/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxcent.com/tag/sigstore/</link>
	<description>Infrastructure security, from the kernel up.</description>
	<lastBuildDate>Sat, 09 May 2026 18:42:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://linuxcent.com/wp-content/uploads/2026/04/favicon-512x512-1-150x150.png</url>
	<title>Sigstore Archives - Linuxcent</title>
	<link>https://linuxcent.com/tag/sigstore/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211632295</site>	<item>
		<title>Security Hardens: Supply Chain, Pod Security, and the API Cleanup (2020–2022)</title>
		<link>https://linuxcent.com/kubernetes-pod-security-supply-chain/</link>
					<comments>https://linuxcent.com/kubernetes-pod-security-supply-chain/#respond</comments>
		
		<dc:creator><![CDATA[Vamshi Krishna Santhapuri]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 19:31:04 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Cloud Native]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Kubernetes Security]]></category>
		<category><![CDATA[Pod Security]]></category>
		<category><![CDATA[Sigstore]]></category>
		<category><![CDATA[Supply Chain Security]]></category>
		<guid isPermaLink="false">https://linuxcent.com/kubernetes-pod-security-supply-chain/</guid>

					<description><![CDATA[<p><span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 6</span> <span class="rt-label rt-postfix">minutes</span></span>PSP was deprecated. Pod Security Standards replaced it. Sigstore arrived. Trace how v1.19–v1.23 hardened the Kubernetes supply chain — and what SolarWinds forced the industry to do.</p>
<p>The post <a href="https://linuxcent.com/kubernetes-pod-security-supply-chain/">Security Hardens: Supply Chain, Pod Security, and the API Cleanup (2020–2022)</a> appeared first on <a href="https://linuxcent.com">Linuxcent</a>.</p>
]]></description>
										<content:encoded><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 6</span> <span class="rt-label rt-postfix">minutes</span></span><style>
pre{position:relative;background:#1e1e1e;color:#d4d4d4;<br />
    padding:16px 16px 16px 20px;border-radius:6px;overflow-x:auto;<br />
    font-family:'JetBrains Mono','Fira Code','Cascadia Code',Consolas,'Courier New',monospace;<br />
    font-size:.88em;line-height:1.6;border-left:4px solid #555}<br />
code{background:#f4f4f4;padding:2px 5px;border-radius:3px;font-size:.9em}<br />
pre code{background:transparent;padding:0;color:inherit}<br />
pre[data-lang="bash"],pre[data-lang="sh"],<br />
pre[data-lang="shell"],pre[data-lang="zsh"]{border-left-color:#4ec9b0}<br />
pre[data-lang="yaml"],pre[data-lang="json"],<br />
pre[data-lang="toml"],pre[data-lang="xml"]{border-left-color:#569cd6}<br />
pre[data-lang="python"],pre[data-lang="go"],pre[data-lang="rust"],<br />
pre[data-lang="java"],pre[data-lang="c"],pre[data-lang="cpp"]{border-left-color:#c586c0}<br />
pre[data-lang="text"],pre[data-lang="output"],<br />
pre[data-lang="console"]{border-left-color:#888}<br />
.lc-copy-btn{position:absolute;top:8px;right:8px;background:#2d2d2d;color:#ccc;<br />
    border:1px solid #444;border-radius:4px;padding:3px 9px;font-size:.75em;<br />
    font-family:system-ui,sans-serif;cursor:pointer;opacity:0;<br />
    transition:opacity .15s,background .15s;line-height:1.6}<br />
pre:hover .lc-copy-btn{opacity:1}<br />
.lc-copy-btn:hover{background:#3a3a3a;color:#fff}<br />
.lc-copy-btn.copied{color:#4ec9b0;border-color:#4ec9b0}<br />
.lc-lang-badge{position:absolute;top:8px;left:20px;font-family:system-ui,sans-serif;<br />
    font-size:.7em;color:#666;text-transform:uppercase;letter-spacing:.04em;<br />
    line-height:1;pointer-events:none;opacity:0;transition:opacity .15s}<br />
pre:hover .lc-lang-badge{opacity:1}<br />
table{border-collapse:collapse;width:100%;margin:16px 0}<br />
th,td{border:1px solid #ddd;padding:10px 14px;text-align:left}<br />
th{background:#f0f0f0;font-weight:600}<br />
tr:nth-child(even){background:#fafafa}<br />
</style>
<p><script>
(function(){
  if(window.__lcCodeEnhanced)return;
  window.__lcCodeEnhanced=true;
  function enhance(){
    document.querySelectorAll('pre').forEach(function(pre){
      var code=pre.querySelector('code');
      var lang='';
      if(code){var m=(code.className||'').match(/language-(\S+)/);if(m)lang=m[1].toLowerCase();}
      if(lang)pre.setAttribute('data-lang',lang);
      if(lang){var badge=document.createElement('span');badge.className='lc-lang-badge';badge.textContent=lang;pre.insertBefore(badge,pre.firstChild);}
      var btn=document.createElement('button');
      btn.className='lc-copy-btn';btn.textContent='Copy';btn.setAttribute('aria-label','Copy code to clipboard');
      pre.appendChild(btn);
      btn.addEventListener('click',function(){
        var text=code?code.innerText:pre.innerText;
        if(navigator.clipboard&&window.isSecureContext){
          navigator.clipboard.writeText(text).then(function(){ok(btn);}).catch(function(){fb(text,btn);});
        }else{fb(text,btn);}
      });
    });
  }
  function ok(btn){btn.textContent='Copied!';btn.classList.add('copied');setTimeout(function(){btn.textContent='Copy';btn.classList.remove('copied');},2000);}
  function fb(text,btn){
    try{var ta=document.createElement('textarea');ta.value=text;ta.style.cssText='position:fixed;left:-9999px;top:-9999px;opacity:0';document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);ok(btn);}
    catch(e){btn.textContent='✗ Failed';setTimeout(function(){btn.textContent='Copy';},2000);}
  }
  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',enhance);}else{enhance();}
})();
</script></p>
<hr />
<h2 id="introduction">Introduction</h2>
<p>The 2020–2022 period redefined what &#8220;secure Kubernetes&#8221; meant. A global pandemic moved workloads to cloud-native infrastructure faster than security practices could follow. SolarWinds happened. Log4Shell happened. The software supply chain became a crisis.</p>
<p>At the same time, the Kubernetes project was doing something it had been reluctant to do: removing APIs and features, including PodSecurityPolicy — the primary security primitive that most enterprise clusters depended on. The replacement was simpler, but the migration was not.</p>
<hr />
<h2 id="kubernetes-119-lts-behavior-ingress-stable-august-2020">Kubernetes 1.19 — LTS Behavior, Ingress Stable (August 2020)</h2>
<p>1.19 extended the support window to one year (from nine months). This was an acknowledgment that enterprise organizations couldn&#8217;t upgrade four times per year — a common complaint from operations teams.</p>
<ul>
<li><strong>Ingress</strong> graduated to stable: <code class="" data-line="">networking.k8s.io/v1</code> — after years as a beta resource, Ingress finally had a stable API</li>
<li><strong>Immutable ConfigMaps and Secrets</strong> to beta: Configuration protection becomes broadly available</li>
<li><strong>EndpointSlices</strong> to GA: The replacement for Endpoints — shards pod-to-service mappings to avoid the single large Endpoints object that caused control plane stress at scale (10,000+ endpoints for a single service)</li>
<li><strong>Structured logging</strong> (alpha): Machine-parseable log output from Kubernetes control plane components — a prerequisite for reliable SIEM integration</li>
</ul>
<pre><code class="" data-line=""># EndpointSlice: distributed representation of service endpoints
kubectl get endpointslices -n production -l kubernetes.io/service-name=api-service
NAME                  ADDRESSTYPE   PORTS   ENDPOINTS                                   AGE
api-service-abc12     IPv4          8080    10.0.1.5,10.0.1.6,10.0.1.7 + 47 more...   2d
api-service-def34     IPv4          8080    10.0.2.1,10.0.2.2,10.0.2.3 + 47 more...   2d
</code></pre>
<hr />
<h2 id="kubernetes-120-dockershim-deprecated-december-2020">Kubernetes 1.20 — Dockershim Deprecated (December 2020)</h2>
<p>The announcement in 1.20 that the Docker shim was deprecated caused more panic than any previous Kubernetes deprecation. The message was misread by many as &#8220;Kubernetes is dropping Docker support&#8221; — the PR catastrophe that followed required the Kubernetes blog to publish a dedicated clarification post.</p>
<p>The reality: <strong>Docker-built images continued to work on Kubernetes.</strong> What was being removed was the code in the kubelet that talked directly to Docker&#8217;s daemon using a non-standard interface, rather than through the Container Runtime Interface (CRI). Docker images conform to the OCI (Open Container Initiative) image specification — they run on any CRI-compliant runtime.</p>
<p>The migration path:<br />
&#8211; <strong>containerd</strong>: The runtime that Docker itself used internally. Moving to containerd meant removing the Docker layer entirely — the kubelet talks directly to containerd via CRI<br />
&#8211; <strong>CRI-O</strong>: An OCI-focused runtime designed specifically for Kubernetes, minimal and purpose-built</p>
<pre><code class="" data-line=""># Before (Docker socket): kubelet → dockershim → Docker daemon → containerd → runc
# After (direct CRI):     kubelet → containerd → runc
#                    or:  kubelet → CRI-O → runc

# Check runtime in use on a node
kubectl get node worker-1 -o jsonpath=&#039;{.status.nodeInfo.containerRuntimeVersion}&#039;
# containerd://1.6.4
</code></pre>
<p>Also in 1.20:<br />
&#8211; <strong>API Priority and Fairness</strong> beta: Rate-limit API server requests by priority — prevents a runaway controller from starving other API clients<br />
&#8211; <strong>CronJobs</strong> stable: Scheduled jobs graduate after years in beta<br />
&#8211; <strong>Volume snapshot</strong> stable</p>
<hr />
<h2 id="the-solarwinds-context-december-2020">The SolarWinds Context (December 2020)</h2>
<p>The SolarWinds supply chain attack, disclosed in December 2020, didn&#8217;t directly target Kubernetes. But it accelerated an existing conversation in the cloud-native community: if the build pipeline is compromised, signed binaries mean nothing. If the image registry is compromised, admission control on image names means nothing.</p>
<p>The attack catalyzed work on several fronts:<br />
&#8211; <strong>Sigstore</strong>: An open-source project (Google, Red Hat, Purdue University) for signing and verifying software artifacts including container images<br />
&#8211; <strong>SLSA (Supply chain Levels for Software Artifacts)</strong>: A framework for incrementally improving supply chain security, from basic build provenance to hermetic builds with verified dependencies<br />
&#8211; <strong>SBOM (Software Bill of Materials)</strong>: A machine-readable inventory of software components in an image — required by US Executive Order 14028 (May 2021) for software sold to the federal government</p>
<hr />
<h2 id="kubernetes-121-podsecuritypolicy-deprecation-april-2021">Kubernetes 1.21 — PodSecurityPolicy Deprecation (April 2021)</h2>
<p>PodSecurityPolicy was deprecated in 1.21, announcing its removal in 1.25. The deprecation was contentious — PSP was the only built-in mechanism for enforcing pod security constraints, and every security-conscious cluster depended on it, despite its many flaws.</p>
<p>The replacement approach: <strong>Pod Security Standards</strong> — three predefined security profiles:</p>
<table>
<thead>
<tr>
<th>Profile</th>
<th>Description</th>
<th>Use Case</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Privileged</strong></td>
<td>No restrictions</td>
<td>System-level workloads, trusted components</td>
</tr>
<tr>
<td><strong>Baseline</strong></td>
<td>Prevents known privilege escalations</td>
<td>General application workloads</td>
</tr>
<tr>
<td><strong>Restricted</strong></td>
<td>Hardened; follows current best practices</td>
<td>High-security workloads</td>
</tr>
</tbody>
</table>
<p>Other 1.21 highlights:<br />
&#8211; <strong>CronJobs</strong> stable<br />
&#8211; <strong>Immutable ConfigMaps and Secrets</strong> stable<br />
&#8211; <strong>Graceful node shutdown</strong> beta: The kubelet gracefully terminates pods when a node shuts down (not just when the kubelet stops)<br />
&#8211; <strong>PodDisruptionBudget</strong> stable</p>
<hr />
<h2 id="kubernetes-122-the-great-api-removal-august-2021">Kubernetes 1.22 — The Great API Removal (August 2021)</h2>
<p>1.22 was the most disruptive Kubernetes release for operations teams since 1.0. Several long-lived beta APIs were removed:</p>
<table>
<thead>
<tr>
<th>Removed API</th>
<th>Replacement</th>
<th>Used By</th>
</tr>
</thead>
<tbody>
<tr>
<td>networking.k8s.io/v1beta1 Ingress</td>
<td>networking.k8s.io/v1</td>
<td>Every ingress resource</td>
</tr>
<tr>
<td>batch/v1beta1 CronJob</td>
<td>batch/v1</td>
<td>Every scheduled job</td>
</tr>
<tr>
<td>apiextensions.k8s.io/v1beta1 CRD</td>
<td>apiextensions.k8s.io/v1</td>
<td>Every CRD definition</td>
</tr>
<tr>
<td>rbac.authorization.k8s.io/v1beta1</td>
<td>rbac.authorization.k8s.io/v1</td>
<td>RBAC resources</td>
</tr>
</tbody>
</table>
<p>Teams with Helm charts, Terraform modules, and CI/CD pipelines built against beta API versions had to update their manifests. This was the moment that finally drove home the message: beta APIs in Kubernetes are not stable — they will be removed.</p>
<p>Also in 1.22:<br />
&#8211; <strong>Server-Side Apply</strong> stable: Apply semantics moved server-side — field ownership tracking, conflict detection, and merge strategies are handled by the API server rather than client-side kubectl<br />
&#8211; <strong>Memory manager</strong> stable: Better NUMA-aware memory allocation for latency-sensitive workloads<br />
&#8211; <strong>Bound Service Account Token Volumes</strong> stable: Time-limited, audience-bound tokens for pods — replacing the long-lived, cluster-wide service account tokens that were a persistent security concern</p>
<pre><code class="" data-line=""># Bound service account token — expires, audience-restricted
# Projected volume mounts a time-limited token (default 1h expiry)
volumes:
- name: token
  projected:
    sources:
    - serviceAccountToken:
        audience: api
        expirationSeconds: 3600
        path: token
</code></pre>
<p>The bound token change was significant from a security perspective: previously, a service account token extracted from a pod would be valid indefinitely, for any audience. Projected tokens expire and are tied to a specific audience.</p>
<hr />
<h2 id="pod-security-admission-kubernetes-122-ga-in-125">Pod Security Admission (Kubernetes 1.22, GA in 1.25)</h2>
<p>The replacement for PodSecurityPolicy was <strong>Pod Security Admission</strong> — an admission controller built into the API server (no webhook required) that enforces the three Pod Security Standards at the namespace level:</p>
<pre><code class="" data-line=""># Namespace-level security enforcement
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/enforce-version: v1.25
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: v1.25
</code></pre>
<p>The three modes:<br />
&#8211; <strong>enforce</strong>: Reject pods that violate the policy<br />
&#8211; <strong>audit</strong>: Allow the pod but add an audit annotation<br />
&#8211; <strong>warn</strong>: Allow the pod and send a warning to the client</p>
<p>Pod Security Admission is deliberately simpler than PSP. It does less — it enforces three fixed profiles, not arbitrary rules. For arbitrary policy, you still need OPA/Gatekeeper or Kyverno. But the simplicity means it works reliably, with no authorization edge cases.</p>
<hr />
<h2 id="kubernetes-123-dual-stack-stable-hpa-v2-stable-december-2021">Kubernetes 1.23 — Dual-Stack Stable, HPA v2 Stable (December 2021)</h2>
<ul>
<li><strong>IPv4/IPv6 dual-stack</strong> stable: Pods and Services can have both IPv4 and IPv6 addresses — critical for organizations running mixed-stack networks or migrating from IPv4 to IPv6</li>
<li><strong>HPA v2</strong> stable: Horizontal Pod Autoscaler with support for multiple metrics (CPU, memory, custom metrics from Prometheus, external metrics). Scale on Prometheus metrics, not just CPU:</li>
</ul>
<pre><code class="" data-line="">apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: api-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: api
  minReplicas: 2
  maxReplicas: 20
  metrics:
  - type: Pods
    pods:
      metric:
        name: http_requests_per_second
      target:
        type: AverageValue
        averageValue: 1000m
</code></pre>
<ul>
<li><strong>FlexVolume</strong> deprecated (in favor of CSI): Another step in the driver out-of-tree migration</li>
</ul>
<hr />
<h2 id="the-log4shell-moment-december-2021">The Log4Shell Moment (December 2021)</h2>
<p>Log4Shell (CVE-2021-44228) hit on December 9, 2021. The vulnerability allowed unauthenticated remote code execution in any Java application using Log4j 2.x. The blast radius was enormous — Log4j was in everything.</p>
<p>For Kubernetes operators, Log4Shell crystallized several operational realities:</p>
<p><strong>Inventory problem</strong>: Do you know which of your pods is running a Java application? Do you know which version of Log4j it includes? Without an SBOM pipeline and admission-time image scanning, you probably don&#8217;t have a reliable answer.</p>
<p><strong>Patch velocity problem</strong>: Once you know which images are vulnerable, how quickly can you rebuild and redeploy? Organizations with GitOps pipelines and image update automation (Flux&#8217;s image reflector, ArgoCD Image Updater) could respond in hours. Organizations without this infrastructure measured response time in days.</p>
<p><strong>Runtime detection problem</strong>: Can you detect exploitation attempts in real time? Falco rules for Log4Shell JNDI lookup patterns were available within hours of disclosure — but only organizations already running Falco could use them.</p>
<p>Log4Shell made the case for supply chain security, image scanning, SBOM generation, and runtime detection tooling more effectively than any conference talk.</p>
<hr />
<h2 id="sigstore-and-the-supply-chain-response">Sigstore and the Supply Chain Response</h2>
<p>In 2021, Sigstore reached a point where its tooling — <strong>cosign</strong> (image signing), <strong>rekor</strong> (transparency log), <strong>fulcio</strong> (keyless signing via OIDC) — was production-ready.</p>
<p>The keyless signing model was significant: instead of managing long-lived signing keys (which themselves become a supply chain risk), fulcio issues short-lived certificates tied to an OIDC identity (a GitHub Actions workflow, a GitLab CI job). The signature proves that a specific workflow built the image.</p>
<pre><code class="" data-line=""># Sign an image as part of CI (keyless, OIDC-based)
cosign sign --yes ghcr.io/org/app:v1.0.0

# Verify before deploying
cosign verify \
  --certificate-identity-regexp &quot;https://github.com/org/app/.github/workflows/build.yml&quot; \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  ghcr.io/org/app:v1.0.0
</code></pre>
<p>Policy engines (OPA/Gatekeeper, Kyverno) could be configured to reject pods using unsigned or unverified images at admission time — closing the loop from build provenance to runtime enforcement.</p>
<hr />
<h2 id="key-takeaways">Key Takeaways</h2>
<ul>
<li>Dockershim deprecation in 1.20 was about removing the non-standard interface, not about dropping Docker image compatibility — containers built with Docker run on containerd or CRI-O without changes</li>
<li>The API removals in 1.22 were operationally painful but necessary — beta APIs in Kubernetes are not production-stable commitments</li>
<li>Pod Security Admission (PSP&#8217;s replacement) trades power for reliability — three fixed profiles enforced at the namespace level, built into the API server, no authorization edge cases</li>
<li>SolarWinds and Log4Shell made supply chain security a board-level concern; Sigstore, SBOM, and admission-time image verification moved from &#8220;nice to have&#8221; to operational requirements</li>
<li>Bound service account tokens (1.22 stable) addressed a persistent security gap: pod tokens that expire and are audience-restricted rather than long-lived cluster-wide credentials</li>
</ul>
<hr />
<h2 id="whats-next">What&#8217;s Next</h2>
<p><a href="ep04-operator-era.md">← EP04: The Operator Era</a> | <a href="ep06-runtime-reckoning.md">EP06: The Runtime Reckoning →</a></p>
<p><em>Series: Kubernetes: From Borg to Platform Engineering | linuxcent.com</em></p>
<p><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_copy_link" href="https://www.addtoany.com/add_to/copy_link?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&amp;linkname=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" title="Copy Link" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Flinuxcent.com%2Fkubernetes-pod-security-supply-chain%2F&#038;title=Security%20Hardens%3A%20Supply%20Chain%2C%20Pod%20Security%2C%20and%20the%20API%20Cleanup%20%282020%E2%80%932022%29" data-a2a-url="https://linuxcent.com/kubernetes-pod-security-supply-chain/" data-a2a-title="Security Hardens: Supply Chain, Pod Security, and the API Cleanup (2020–2022)"></a></p><p>The post <a href="https://linuxcent.com/kubernetes-pod-security-supply-chain/">Security Hardens: Supply Chain, Pod Security, and the API Cleanup (2020–2022)</a> appeared first on <a href="https://linuxcent.com">Linuxcent</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxcent.com/kubernetes-pod-security-supply-chain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1653</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: linuxcent.com @ 2026-08-22 11:08:29 by W3 Total Cache
-->