<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>CICD on Valérian Pyckaert</title>
    <link>https://valerian-pyckaert.dev/tags/cicd/</link>
    <description>Recent content in CICD on Valérian Pyckaert</description>
    <image>
      <title>Valérian Pyckaert</title>
      <url>https://valerian-pyckaert.dev/images/default-cover.svg</url>
      <link>https://valerian-pyckaert.dev/images/default-cover.svg</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 16 Jul 2026 19:00:39 +0200</lastBuildDate>
    <atom:link href="https://valerian-pyckaert.dev/tags/cicd/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Infracost</title>
      <link>https://valerian-pyckaert.dev/posts/infracost/</link>
      <pubDate>Thu, 16 Jul 2026 19:00:39 +0200</pubDate>
      <guid>https://valerian-pyckaert.dev/posts/infracost/</guid>
      <description>Infracost implémentation et utilisation pour l&amp;#39;analyse des coûts IaC.</description>
      <content:encoded><![CDATA[<p>Dans la continuité du post précédent sur mon outil CLI d&rsquo;analyse de coûts à partir d&rsquo;export FOCUS, je vous propose aujourd&rsquo;hui de découvrir <a href="https://www.infracost.io/">Infracost</a>.</p>
<p>Il permet de <strong>Shift Left</strong> (terme souvent utilisé en FinOps) en intégrant la prévision des coûts directement dans le workflow de développement, en particulier lors de l&rsquo;utilisation d&rsquo;Infrastructure as Code (IaC) comme Terraform.</p>
<h2 id="mise-en-place">Mise en place</h2>
<h3 id="installation">Installation</h3>
<p>Windows</p>
<blockquote>
<p>choco install infracost</p>
</blockquote>
<p>Mac/Linux</p>
<blockquote>
<p>brew install infracost</p>
</blockquote>
<p>Validation</p>
<blockquote>
<p>infracost &ndash;version #retourne 2.9.x</p>
</blockquote>
<h3 id="api-key">API Key</h3>
<p>Il est possible d&rsquo;expérimenter gratuitement l&rsquo;outil en récupèrant une clé d&rsquo;API.</p>
<blockquote>
<p>infracost setup</p>
</blockquote>
<p>Suivez les instructions pour créer un compte et obtenir votre clé d&rsquo;API.</p>
<h3 id="premier-scan">Premier scan</h3>
<p>Pour tester l&rsquo;outil je l&rsquo;ai implémenté dans mon projet fil rouge <a href="https://github.com/Bernedotcom2312/theforge-infra">TheForge</a> en CLI pour démarrer.</p>
<p><img alt="Infracost first scan" loading="lazy" src="/infracost-first-scan.png"></p>
<p>Pour avoir plus de détails :</p>
<pre tabindex="0"><code>infracost inspect --failing

Failing policies  (1 policy · 1 resource)

⚙️  Compute - consider using current generation machine types
   google_container_node_pool.primary_nodes · gke.tf:25
   N1s are first-generation general purpose VMs. For most use-cases (excluding GPU workloads), Google recommends one of
   their second-generation types such as:
   
   - **E2** offers the lowest total cost of ownership with up to 31% savings compared to N1.
   - **N2** uses 2nd Gen Intel Xeon Scalable Processors (Cascade Lake) and offers a greater than 20% price-performance
   improvement for many workloads and support up to 25% more memory per vCPU.
   - **N2D** uses latest 2nd Gen AMD EPYC (Rome) CPUs, and support the highest core count and memory of any
   general-purpose Compute Engine VM.
</code></pre><p>Le message est explicite, le template Terraform utilisé pour créer le cluster GKE est obsolète et il est recommandé d&rsquo;utiliser un type de machine plus récent pour réduire les coûts.
Fixons cette erreur.</p>
<p>En utilisant le calculateur de côuts GCP j&rsquo;obtiens un tarif de 39$/mois pour une machine n1-standard-1 (1 vCPU, 3.75 GB RAM) et 27$/mois pour une machine e2-medium (1 vCPU, 4 GB RAM) et jusqu&rsquo;à 13$/mois en basculant sur des machines &ldquo;spot&rdquo;.</p>
<p>C&rsquo;est cette dernière option que j&rsquo;ai choisie car il s&rsquo;agit d&rsquo;un cluster de test, nous verrons un peu plus loin le résultat.</p>
<h2 id="quelques-features">Quelques features</h2>
<h3 id="cli">CLI</h3>
<p>Sa CLI est plutôt bien fournie et dispose notamment de nombreuses fonctionnalités telles que :</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">infracost inspect --group-by resource  Show every resource sorted by cost
</span></span><span class="line"><span class="cl">infracost inspect --failing  Show only failing policies
</span></span><span class="line"><span class="cl">infracost inspect --group-by policy  Group results by policy
</span></span><span class="line"><span class="cl">infracost inspect --policy &lt;name&gt;  Drill into a specific policy
</span></span><span class="line"><span class="cl">infracost inspect --diagnostics  Show warning-severity diagnostics from this scan
</span></span><span class="line"><span class="cl">infracost inspect --json  Re-run with full JSON output
</span></span></code></pre></div><p><em>Vous noterez que certaines commandes sont similaires à celles de l&rsquo;outil FOCUS que j&rsquo;ai présenté dans le post précédent, la grande différence étant qu&rsquo;Infracost fait des estimations de coûts à partir de l&rsquo;IaC là où ma CLI se base sur les coûts réels.
Les deux outils ont des similarités mais sont complémentaires.</em></p>
<h3 id="dashboard">Dashboard</h3>
<p>Infracost propose également une interface web <a href="https://dashboard.infracost.io/org/theforge/overview">dashboard</a> pour visualiser les coûts et vos politiques FinOps.</p>
<h3 id="agents-ia">Agents IA</h3>
<p>Infracost s&rsquo;intègre avec vos agents IA, vous pouvez ainsi donner accès à Claude / Copilot accès à votre organisation pour qu&rsquo;ils puissent vous aider à analyser vos coûts et vos politiques FinOps.</p>
<p><strong>Claude</strong></p>
<blockquote>
<p>claude plugin marketplace add infracost/agent-skills
claude plugin install infracost@infracost</p>
</blockquote>
<p><strong>Copilot</strong></p>
<blockquote>
<p>copilot plugin marketplace add infracost/agent-skills
copilot plugin install infracost@infracost</p>
</blockquote>
<p>puis <code>Give me a full cost breakdown of this project and highlight the most expensive resources.</code></p>
<h3 id="extension-ide">Extension IDE</h3>
<ul>
<li>VsCode : <code>ext install Infracost.infracost</code></li>
<li>JetBrains : <code>https://plugins.jetbrains.com/plugin/24761-infracost</code></li>
</ul>
<h2 id="integration-cicd">Integration CI/CD</h2>
<p>Enfin, il est possible d&rsquo;intégrer ces scans dans des pipelines de CI/CD et d&rsquo;intégrer le rapport dans vos revues de PR.
Infracost bénéficie d&rsquo;une intégration native avec GitHub Actions, GitLab CI/CD et Azure Pipelines si vous avez suivi l&rsquo;étape de setup vous devriez en bénéficier par défaut.</p>
<p>Sinon il est également possible d&rsquo; implémenter manuellement les scans dans vos pipelines.</p>
<p>Enfin, le fichier de configuration <code>infracost.yml</code> permet de personnaliser le comportement de l&rsquo;outil et des scans.</p>
<p>Résultat après avoir corrigé les remontées du scan précédent et poussé une PR :
<img alt="Infracost Github Integrations" loading="lazy" src="/infracost-github-integration.png"></p>
<h2 id="pour-aller-plus-loin">Pour aller plus loin</h2>
<p>Comme nous l&rsquo;avons vu, Infracost est un outil complet pour mettre en place une stratégie FinOps et &ldquo;Shift Left&rdquo; dans vos projets IaC.
Il est possible d&rsquo;aller plus loin et d&rsquo;avoir une vision globale de vos coûts cloud à travers vos différents repository.
Infracost est aussi capable de vous accompagner sur la stratégie de tagging de vos ressources et de mener des itérations FinOps &ldquo;Campaigns&rdquo; dans une optique d&rsquo;amélioration continue.</p>
<p>N&rsquo;hésitez pas à consulter la <a href="https://www.infracost.io/docs/">documentation officielle</a> pour découvrir toutes les fonctionnalités et possibilités offertes par Infracost.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
