<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ahmed Bebars on Medium]]></title>
        <description><![CDATA[Stories by Ahmed Bebars on Medium]]></description>
        <link>https://medium.com/@abebars?source=rss-e24a4f981764------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*Qgcd29mb2SusKayXJ4gSBQ.jpeg</url>
            <title>Stories by Ahmed Bebars on Medium</title>
            <link>https://medium.com/@abebars?source=rss-e24a4f981764------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 19 Jul 2026 16:28:43 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@abebars/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Revolutionize Your AWS Management: Effortlessly Create myApplications Dashboards with Terraform…]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://aws.plainenglish.io/revolutionize-your-aws-management-effortlessly-create-myapplications-dashboards-with-terraform-d8fad8578ddc?source=rss-e24a4f981764------2"><img src="https://cdn-images-1.medium.com/max/1024/1*0dTKB73HElc0ms_EjTf8yQ.png" width="1024"></a></p><p class="medium-feed-snippet">In a world where a lot of resources might be created in a single AWS account, It&#x2019;s essential to have a clear way of accessing all of the&#x2026;</p><p class="medium-feed-link"><a href="https://aws.plainenglish.io/revolutionize-your-aws-management-effortlessly-create-myapplications-dashboards-with-terraform-d8fad8578ddc?source=rss-e24a4f981764------2">Continue reading on AWS in Plain English »</a></p></div>]]></description>
            <link>https://aws.plainenglish.io/revolutionize-your-aws-management-effortlessly-create-myapplications-dashboards-with-terraform-d8fad8578ddc?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/d8fad8578ddc</guid>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[automation]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Mon, 11 Dec 2023 06:17:19 GMT</pubDate>
            <atom:updated>2023-12-11T06:17:19.363Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Crafting the Future: A Deep Dive into Platform Engineering]]></title>
            <link>https://abebars.medium.com/crafting-the-future-a-deep-dive-into-platform-engineering-7ab0fb8a4bd8?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/7ab0fb8a4bd8</guid>
            <category><![CDATA[platform-engineering]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Sun, 12 Nov 2023 19:39:36 GMT</pubDate>
            <atom:updated>2023-11-12T19:39:36.863Z</atom:updated>
            <content:encoded><![CDATA[<p>The technological landscape is in constant flux, with innovations and developments setting new benchmarks in software delivery and operational efficiency. It’s a thrilling era to be a software engineer, particularly for a gopher like me, who harbors a penchant for Go and a passion for AWS. This article traverses our journey from traditional development operations to the advent of Platform Engineering, a journey I recently had the privilege of presenting.</p><h4>Breaking the Silos: The Emergence of DevOps</h4><p>Traditionally, software development harbored a disconnect between Development (Dev) and Operations (Ops), creating limitations and hindering seamless software delivery. DevOps emerged as a beacon of integration, blurring the demarcated lines and fostering a culture of collaboration and shared responsibility. It dismantled the silos and introduced a realm where continuous integration, delivery, and shared accountability became the cornerstones of modern software delivery.</p><h4>Why the Transition to Platform Engineering?</h4><p>While DevOps addressed the initial challenges of cloud-era demands by promoting a culture of collaboration and optimizing the software delivery lifecycle, the evolution didn’t stop there. The incessant pursuit for enhanced scalability, consistency, and efficiency paved the way for Platform Engineering. It emerged as a holistic discipline, synergizing the principles of DevOps to cater to the diverse nuances of the modern, cloud-centric world, ensuring seamless software development and deployment.</p><p>Platform Engineering encompasses the developer journey and extends to creating unified workflows. It starts with an idea, transverses through planning and designing, and culminates in delivering applications, all while ensuring each step is refined, seamless, and developer-friendly. The objective is to knit specialized disciplines coherently, enhancing operational efficiency and developer experience.</p><h3>Conclusion: The Journey Forward</h3><p>This transformative journey from a conventional software development lifecycle to centralized cloud orchestration and, ultimately, to a centralized developer platform exemplifies the relentless pursuit of excellence in software development. It’s a journey of continual learning, unceasing evolution, and the persistent quest for operational perfection.</p><p>As we delve deeper into the intricacies of Platform Engineering, we uncover its boundless potential, promising a future where operational and developmental realms coexist in a seamless symphony, pushing the boundaries of what we once deemed possible.</p><p>This journey is adorned with numerous learning curves, infinite possibilities, and iterative enhancements, promising a future of unceasing innovation and unparalleled operational excellence in the ever-expanding technology universe.</p><p>Feel free to intersperse the article with relevant screenshots from your slides to illustrate the concepts more vividly and visually represent the journey you are illustrating.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7ab0fb8a4bd8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Architecting for Resilience: Crafting Opinionated EKS Clusters with Karpenter & Cilium Cluster Mesh…]]></title>
            <link>https://aws.plainenglish.io/architecting-for-resilience-crafting-opinionated-eks-clusters-with-karpenter-cilium-cluster-mesh-c87cee1df934?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/c87cee1df934</guid>
            <category><![CDATA[cilium]]></category>
            <category><![CDATA[amazon-eks]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[mesh-networks]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Mon, 25 Sep 2023 18:07:02 GMT</pubDate>
            <atom:updated>2023-09-27T15:10:28.652Z</atom:updated>
            <content:encoded><![CDATA[<h3>Architecting for Resilience: Crafting Opinionated EKS Clusters with Karpenter &amp; Cilium Cluster Mesh — Part 1</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qGzYHiEpeVejOJur2mqWqw.png" /></figure><p>Welcome to the future of digital ecosystems, where robustness meets unparalleled innovation! We’re about to dive into a world where Amazon’s Elastic Kubernetes Service (EKS) isn’t just a service; it’s an unbreakable, scalable fortress! 🚀</p><p>Wondering how? We’re mixing it up with Karpenter to provide a faster and better scaling that enables a new set of possibilities, also using Cilium Cluster Mesh to connect our clusters and build for resiliency.</p><p>Cilium is our networking superhero, ensuring our clusters talk to each other smoothly, while Karpenter keeps an eye on the scale and provides us with the perfect cost efficiency.</p><p>In this thrill ride, we’re not just exploring tech but crafting resilient warriors ready to combat digital challenges! 🛡️ So buckle up as we whisk you away to a land where each EKS cluster is an unassailable castle in the cloud, and every service is a valiant knight guarding the gates!</p><p>Let’s make our EKS clusters fun, resilient, and ready to roll! 🎢</p><p>Here are a few reference links about the previous services and tools:</p><ul><li><a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html">What is Amazon EKS?</a></li><li><a href="https://cilium.io/use-cases/cluster-mesh/">Cluster Mesh</a></li><li><a href="https://karpenter.sh/">Karpenter</a></li></ul><h3>Setting the Stage: Crafting the VPC Setup 🏗️</h3><p>Before we jump into the exciting realms of Cilium Cluster Mesh and EKS Karpenter, let’s roll up our sleeves and start with the foundation — creating a Virtual Private Cloud (VPC). Imagine this VPC as the land where we will build our unassailable EKS castles. And remember, every robust castle starts with a solid foundation!</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bb0b4456713247a3e9bdb05e36bc3eec/href">https://medium.com/media/bb0b4456713247a3e9bdb05e36bc3eec/href</a></iframe><h3>Navigating the Sea of IPs: Creating a Secondary CIDR 🌐</h3><p>Our shiny new VPC is like a blank canvas, ready to host our future EKS clusters. But here’s the rub — IPs are like gold in the cloud world, and running out of them is a real bummer! IP exhaustion can stall our journey and leave our services stranded. But worry not! We’ve got a savvy solution — introducing a secondary CIDR block. This is like having a backup stash of gold, ensuring our pods never run out of valuable IPs!</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b4c5e61177834d7b4ee16d0e4aaf30fb/href">https://medium.com/media/b4c5e61177834d7b4ee16d0e4aaf30fb/href</a></iframe><p>When we’re sculpting our subnets, we’ll tag them with usage: Pods. Why, you ask? Because this little beacon of labeling will be our guiding light when we venture into installing Cilium! 🌟</p><h3>The Landing Ground is Ready: VPC Setup Complete! 🌐</h3><p>By wielding the powers of Terraform, we’ve crafted a formidable VPC, ripe and ready to host our unassailable EKS clusters. It’s not just any VPC; it’s a fortified domain strategically tagged and enriched with a secondary CIDR to ensure our pods have ample room to thrive. If you check your AWS console, you should see the created VPC like the following:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PSHeylsEFn-WumTKKAqyhA.png" /></figure><h3>Embarking on EKS: Initiating the Cluster Setup 🚀</h3><p>Having laid the solid groundwork with our fortified VPC, we are now ready to step into the world of EKS and bring our clusters to life! The journey of setting up our EKS Cluster will be a confluence of meticulous configurations, innovative integrations, and strategic optimizations. Let’s kickstart this expedition!</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5852866f4ab7dacc60671337af1be1ef/href">https://medium.com/media/5852866f4ab7dacc60671337af1be1ef/href</a></iframe><p>In the previous file, there are two things to keep in mind. First, we are applying specific taints to our nodes, so these nodes will only become ready for deployment once we have Cilium Installed; these taints will be removed automatically once Cilium Pod is working on the node.</p><pre>        key    = &quot;node.cilium.io/agent-not-ready&quot;<br>        value  = &quot;true&quot;<br>        effect = &quot;NO_SCHEDULE&quot;</pre><p>Second, We will only rely on one managed node group, but we will leverage Karpenter; however, karpenter needs to be deployed on a node. (This may change soon once the Karpenter is available on the EKS Control Plane.)</p><p><a href="https://github.com/aws/containers-roadmap/issues/1792">[EKS] Karpenter inside control plane · Issue #1792 · aws/containers-roadmap</a></p><p>Navigating back to the console, We should see the cluster being ready and deployments like (coredns, aws-node,kube-proxy) are deployed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9jfzc8WjCdmf0UZNT3_4tw.png" /></figure><h3>Networking Nirvana: Installing Cilium on the EKS Cluster 🕸️</h3><p>With the EKS Cluster firmly established and the initial Node Group ready to roll, it’s time to invite Cilium to the party! Cilium is our networking and security superhero, ensuring seamless communication between pods and enhancing our cluster’s security posture.</p><p>We will leverage the EKS Blueprint addon modules to install the Cilium helm chart with the required values. We will not deploy Cilium in a Changing mode but install it in Overlay Mode and Kube Proxy Free. Hence, we need to complete two steps ahead because EKS clusters are shipped by default with AWS VPC CNI and Kube Proxy installed, so we need to remove these. daemon sets first.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/635221203d49d2be20611fe5d16457e2/href">https://medium.com/media/635221203d49d2be20611fe5d16457e2/href</a></iframe><p>We can apply the helm chart with the necessary cilium configuration in the same step.</p><p>In this step, We will create a custom CNI Config and instrument cilium to use the Pods Subnets we made earlier; then, we pass this ConfigMap to cilium helm chart values.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b8c94d5b42cbf74377b3b39f2a7568d0/href">https://medium.com/media/b8c94d5b42cbf74377b3b39f2a7568d0/href</a></iframe><h4>Balancing Terraform and Helm: A Synchronized Approach 🧩</h4><p>I know there’s an undercurrent of preference for installing Helm through Terraform. Indeed, managing the state with Terraform offers elegance and control. However, installing and customizing charts and maintaining them centrally resonate more harmoniously when performed directly. This approach not only provides a consolidated management platform but also retains the flexibility of customization and scaling.</p><h4>Elevating with GitOps: A Gateway to Continuous Operations 🔄</h4><p>And there’s more! For those inclined towards a GitOps approach, this module serves as a conduit, supporting GitOps methodologies and ensuring continuous and consistent operational flows. It’s a paradigm where declarative configurations meet version control, opening avenues for automatic and reliable application deployment and management.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b9f78a5a165f49ef801daed2c826e405/href">https://medium.com/media/b9f78a5a165f49ef801daed2c826e405/href</a></iframe><p>After the chart is installed, we should have all pods up and running and the cluster is configured with Cilium as expected; you can see the following.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2ELjfEGQAMKkJAH_v6WxHA.png" /></figure><p>(<a href="https://k9scli.io/">K9s</a> is one of my favorite tools for navigating Kubernetes clusters through the CLI).</p><p>Since we installed <a href="https://github.com/cilium/hubble">Hubble</a> on the cluster, Let’s check its cool UI and see how the traffic flows between the pods. To do so, let’s run:</p><pre>kubectl port-forward -n kube-system deployment/hubble-ui 8081:8081</pre><p>Then, we can access the UI and check what’s happening in kube-system names</p><pre>http://localhost:8081/?namespace=kube-system</pre><p>You should be able to see the traffic flowing between pods and to the internet as well, and since we haven’t defined any policies on the cluster yet, all of the traffic should be FORWARDED</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lcFSgYAoHRV0n7tAAwE_Ag.png" /></figure><h3>Karpenter: The EKS Autoscaling Maestro 🚀</h3><p>As we journey into the heart of our EKS setup, we arrive at Karpenter. This nimble auto scaler intelligently manages node provisioning, ensuring our workloads are optimally balanced and resources are used efficiently. Let’s delve into the installation!</p><p>Using a similar module from EKS Addons, we will install and configure Karpenter on the cluster.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3bd34a60159f22ccd030c9e1eb3399b0/href">https://medium.com/media/3bd34a60159f22ccd030c9e1eb3399b0/href</a></iframe><p>Then, we must update the Cluster Auth Roles to allow the Karpenter IAM role to create nodes and attach them to the cluster as needed. And you can do that by adding the created IAM Role ARN to `aws_auth_roles.`</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/d5a74b927178a5029b86ce7f30396ddc/href">https://medium.com/media/d5a74b927178a5029b86ce7f30396ddc/href</a></iframe><p>Now Karpenter Deployment should be ready.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bwMuYcFujYoEHSzrTQbxCA.png" /></figure><p>However, Kaprneter doesn’t know yet how or what type of nodes that we need; that’s where we need to use Provisioner &amp; NodeTemplates These two CRDs are the core elements of Karpenter and define how nodes are being created and many other options.</p><p>Think about like NodeGroup but without creating an actual Node Group, it’s flexible because it’s made in Kubernetes, which always allows us to define them within the same scope. This is a constructive approach, for example, If you want to create these on the fly.</p><p>It’s time to manifest our desires in the form of CRDs. The first to materialize is our Provisioner, the maestro dictating the variations and specifications of the nodes we summon.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/339cd5b2d79e065e70090e1f92e58908/href">https://medium.com/media/339cd5b2d79e065e70090e1f92e58908/href</a></iframe><p>And now, with the last resource we need to complete our symphony, Karpenter will start taking over our scaling.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c543b1e52a942955bbf48e4c147b9964/href">https://medium.com/media/c543b1e52a942955bbf48e4c147b9964/href</a></iframe><h3>Wrapping Up: Setting Up EKS 🌟</h3><p>We’ve taken some significant steps in this guide! We’ve set up our own EKS Amazon Clusters and avoided running out of IP addresses by using secondary CIDRs. We’ve also tagged our subnets, so everything is easy to find.</p><p>We added Cilium to our project with the help of, and we’ve used Terraform and Helm to make everything easy to manage and adjust. For those who like using GitOps, our setup supports it too!</p><p>Then, we brought Karpenter to help our clusters use resources wisely and save on costs. We’ve made some custom adjustments and used AWSNodeTemplate to ensure our nodes are just how we want them.</p><h3>What’s Coming Up Next? 🤔</h3><p>This is just the start! We’ve got our EKS set up with Cilium and Karpenter, but there’s much more to learn. In the following parts, we’ll explore Cluster Mesh configurations and more remarkable EKS and Cilium CLuster Mesh features. So, keep reading as we uncover more about Kubernetes and Cilium and learn how to make the most of them!</p><h3>In Plain English</h3><p><em>Thank you for being a part of our community! Before you go:</em></p><ul><li><em>Be sure to </em><strong><em>clap</em></strong><em> and </em><strong><em>follow</em></strong><em> the writer! 👏</em></li><li><em>You can find even more content at </em><a href="https://plainenglish.io/"><strong><em>PlainEnglish.io</em></strong></a><strong><em> 🚀</em></strong></li><li><em>Sign up for our </em><a href="http://newsletter.plainenglish.io/"><strong><em>free weekly newsletter</em></strong></a><em>. 🗞️</em></li><li><em>Follow us on </em><a href="https://twitter.com/inPlainEngHQ"><strong><em>Twitter</em></strong></a><strong><em>(X</em></strong>), <a href="https://www.linkedin.com/company/inplainenglish/"><strong><em>LinkedIn</em></strong></a>, <a href="https://www.youtube.com/channel/UCtipWUghju290NWcn8jhyAw"><strong><em>YouTube</em></strong></a>, and <a href="https://discord.gg/XxRS92b2"><strong><em>Discord</em></strong></a><strong><em>.</em></strong></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c87cee1df934" width="1" height="1" alt=""><hr><p><a href="https://aws.plainenglish.io/architecting-for-resilience-crafting-opinionated-eks-clusters-with-karpenter-cilium-cluster-mesh-c87cee1df934">Architecting for Resilience: Crafting Opinionated EKS Clusters with Karpenter &amp; Cilium Cluster Mesh…</a> was originally published in <a href="https://aws.plainenglish.io">AWS in Plain English</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[EKS Features: Deep dive]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://abebars.medium.com/eks-features-deep-dive-289dae51dc19?source=rss-e24a4f981764------2"><img src="https://cdn-images-1.medium.com/max/1200/0*cc5Q_VChoeyeoLPD.jpeg" width="1200"></a></p><p class="medium-feed-snippet">Your customers are worried about the investments they made in creating a web-based solution architecture and ecosystem before 2015 in the&#x2026;</p><p class="medium-feed-link"><a href="https://abebars.medium.com/eks-features-deep-dive-289dae51dc19?source=rss-e24a4f981764------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://abebars.medium.com/eks-features-deep-dive-289dae51dc19?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/289dae51dc19</guid>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[aws-eks]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Sun, 07 Aug 2022 15:11:56 GMT</pubDate>
            <atom:updated>2022-08-07T15:11:56.077Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[How to Use IAM Roles for Pods on AWS EKS]]></title>
            <link>https://abebars.medium.com/how-to-use-iam-roles-for-pods-on-aws-eks-7e34a61b66?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/7e34a61b66</guid>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[ek]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Sun, 17 Jul 2022 04:22:05 GMT</pubDate>
            <atom:updated>2022-07-17T04:22:05.084Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*QoU_K8PL-ZZgYjDGqGCW3Q.png" /></figure><p>Suppose you are using Kuberbtes to deploy your applications. In that case, you are already familiar with K8s Service accounts — if not, A service account is a particular type of object that allows you to assign a Kubernetes RBAC role to a pod. A default service account is created automatically for each Namespace within a cluster.</p><p>Now, If you are deploying your application to EKS and need to call AWS APIs in your application, How can you achieve this?</p><p>There are a few options to do that, You can pass the AWS Credentials to your application but it’s not the most secure way and it will require a few steps to do and also to ensure your credentials are rotated as expected. I would advise against this method.</p><p>By default, you Node on EKS have an IAM Role attached to it so you can add the polices which you need so you can call the APIs that you want your application to communicate with. But in this case, all of the applications deployed to these nodes share the same role, so you may expose more than you need to different apps.</p><p>The best option would be <a href="https://aws.amazon.com/blogs/containers/diving-into-iam-roles-for-service-accounts"><strong>IRSA</strong></a> — IAM Roles for Service Accounts; IRSA is a feature that allows you to assign an IAM role to a Kubernetes service account. It uses a Kubernetes feature known as Service Account Token Volume Projection. Pods with service accounts referencing an IAM Role call a public OIDC discovery endpoint for AWS IAM upon startup.</p><p>In this case, you need a couple of things, an IAM role to attach to your Service account and how to map this service account to the created role. So let’s go through how to do that. We are going to use Terraform in the following examples to achieve that.</p><p>First, we need to get the OIDC provider for the EKS cluster — assuming you already have the cluster created; then, we will use the value we got and create an IAM role that will trust this OIDC so we can use the role with the K8s service account.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/75dba6a4e254620005a896988e7e82ae/href">https://medium.com/media/75dba6a4e254620005a896988e7e82ae/href</a></iframe><p>Now, after having the role created, we need to update the k8s service account attached to the pod.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/2e0b5363f34745a1686528c45010226e/href">https://medium.com/media/2e0b5363f34745a1686528c45010226e/href</a></iframe><p>That’s all you need to allow your pods (Deployments) to call AWS APIs with a specific IAM Role.</p><p>However, let me explain how it works; let’s take a look at this workflow</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/973/0*vs_gL5KZZ78xMuw9" /><figcaption>AWS IRSA EXAMPLE (<a href="https://github.com/smalltown/aws-irsa-example">https://github.com/smalltown/aws-irsa-example</a>)</figcaption></figure><ol><li>When a POD is created, it will trigger a webhook (<a href="https://github.com/aws/amazon-eks-pod-identity-webhook">Pod Identity Webhook</a>) installed by default on EKS Clusters.</li><li>The webhook will use the Cluster OIDC Provider to set AWS_WEB_IDENTITY_TOKEN_FILE and set the AWS_ROLE_ARN annotation we set earlier to the service account.</li><li>It will call the STS API to assume the given role.</li><li>Then the STS API will verify the request through the cluster OIDC data in the request.</li><li>Your pod will have short-lived credentials that will be used to call AWS APIs.</li></ol><h3>Summary</h3><p>As you can see, there are many benefits to using IRSA with your POD. By following these simple steps, you can have an excellent method to use AWS services from your applications deployed in the EKS cluster. Have questions about how to use IRSA? Leave a comment below.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7e34a61b66" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Amazon Connect: Contact Center as Code — Part 1]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://abebars.medium.com/amazon-connect-contact-center-as-code-part-1-5b2297a2e0d3?source=rss-e24a4f981764------2"><img src="https://cdn-images-1.medium.com/max/900/0*tjY07MkCrTTFCDYC" width="900"></a></p><p class="medium-feed-snippet">A few years ago, it wasn&#x2019;t easy to get a contact center infrastructure up and running quickly. Contact center technology is what allows&#x2026;</p><p class="medium-feed-link"><a href="https://abebars.medium.com/amazon-connect-contact-center-as-code-part-1-5b2297a2e0d3?source=rss-e24a4f981764------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://abebars.medium.com/amazon-connect-contact-center-as-code-part-1-5b2297a2e0d3?source=rss-e24a4f981764------2</link>
            <guid isPermaLink="false">https://medium.com/p/5b2297a2e0d3</guid>
            <category><![CDATA[infrastructure-as-code]]></category>
            <category><![CDATA[contact-center]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[amazon-connect]]></category>
            <dc:creator><![CDATA[Ahmed Bebars]]></dc:creator>
            <pubDate>Fri, 25 Feb 2022 23:48:33 GMT</pubDate>
            <atom:updated>2022-02-25T23:48:33.982Z</atom:updated>
        </item>
    </channel>
</rss>