<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Eionel</title>
    <description>The latest articles on Forem by Eionel (@eionel).</description>
    <link>https://forem.com/eionel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F748126%2Fe853d9c7-ee4f-4dbd-bdc9-cb781a7d3fe0.png</url>
      <title>Forem: Eionel</title>
      <link>https://forem.com/eionel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/eionel"/>
    <language>en</language>
    <item>
      <title>Configuring Kubernetes Role-Based Access Control with Lens Spaces
</title>
      <dc:creator>Eionel</dc:creator>
      <pubDate>Thu, 03 Mar 2022 18:17:07 +0000</pubDate>
      <link>https://forem.com/eionel/configuring-kubernetes-role-based-access-control-with-lens-spaces-ngm</link>
      <guid>https://forem.com/eionel/configuring-kubernetes-role-based-access-control-with-lens-spaces-ngm</guid>
      <description>&lt;p&gt;Setting up a Kubernetes service has become relatively easy, whether it be on-premise or in public cloud services. However, securely sharing access to this cluster with colleagues is a daunting task. Giving access can be a painful process involving cluster certificates, access management systems, networking setup, and firewalls.&lt;/p&gt;

&lt;p&gt;Administrators typically do not want to expose their Kubernetes clusters on a public network directly. Instead, to secure access with colleagues, they either stay on a private network or create VPN access for remote work — a set-up that is not only expensive but challenging to implement. When you work with multiple clusters in different clouds, it requires numerous VPNs, and giving developers access becomes a true headache.&lt;/p&gt;

&lt;p&gt;With Lens Spaces, a feature within Lens — The Kubernetes Platform, Kubernetes users can easily share access to a cluster securely. Lens Spaces utilizes end-to-end encryption to secure connections between users and clusters, eliminating the need for a VPN. This provides a much more secure environment for giving access to a Kubernetes cluster. Through Lens Spaces, multiple team members can access a Kubernetes cluster securely with the correct permissions associated. (If you’d like to learn more about how this works, check out the Lens docs.)&lt;/p&gt;

&lt;p&gt;In this blog, I will address role-based access control (RBAC) via Lens and how to configure your RBAC manifest via Lens. This way, cluster administrators can easily manage cluster access. I will create specific roles that will dictate how a colleague may interact with our Kubernetes cluster.&lt;/p&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Latest version of Lens&lt;/li&gt;
&lt;li&gt;Kubernetes cluster&lt;/li&gt;
&lt;li&gt;Lens Spaces account&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Using Lens Spaces’ Built-In Teams for RBAC
&lt;/h2&gt;

&lt;p&gt;To start, let’s talk about the default Kubernetes RBAC settings for users sharing secure access to their clusters via Lens Spaces. Each user connected to a cluster via Lens Spaces will get their permissions to a cluster via the Lens Spaces teams they belong to. Admins and owners of a space can easily change permissions using the Lens Spaces built-in teams: Members, Admins, and Owners.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Members&lt;/strong&gt; — Have &lt;strong&gt;Read Access&lt;/strong&gt; to all connected clusters in a space&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admins&lt;/strong&gt; — Have &lt;strong&gt;Read &amp;amp; Write Access&lt;/strong&gt; to all connected clusters in a space&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owners&lt;/strong&gt; — Have &lt;strong&gt;Read &amp;amp; Write Access&lt;/strong&gt; to all connected clusters in a space&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To support these roles, all clusters connected to Lens Spaces are preconfigured with the following Cluster Roles and Cluster Role Bindings:&lt;/p&gt;

&lt;p&gt;ClusterRole: lens-spaces-view&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8uprnx5jsr4vq9s2zyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8uprnx5jsr4vq9s2zyr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ClusterRole: lens-cluster-admin (Read &amp;amp; Write Access)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e3n1l0sptajzt9ivs61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e3n1l0sptajzt9ivs61.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ClusterRoleBinding: lens-platform-read-teams&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66le8jp5sebskrq1us5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66le8jp5sebskrq1us5t.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ClusterRoleBindings:lens-platform-write-teams&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fgvrfptrrqtf1v7qmnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fgvrfptrrqtf1v7qmnd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Granular Configuration:
&lt;/h2&gt;

&lt;p&gt;Although the default configuration may be useful to some, many cluster administrators need to adjust cluster access at a granular level. Admins and owners of a space can easily grant additional permissions by creating their own space “team”: for example, developers, operators, and L1 support.&lt;/p&gt;

&lt;p&gt;Now, let’s imagine your space has a team called “Developers” and everyone within this team needs edit access to the default namespace. In order to do this, you will need to create an additional “Role-Binding.”&lt;/p&gt;

&lt;p&gt;There are two ways to do this, and I will demonstrate both options.&lt;/p&gt;

&lt;p&gt;The first (and more complex) option is writing and deploying the YAML code below to your cluster. Once deployed, everyone within the “Developers Team” will have edit access to the “default namespace.”&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: edit
namespace: default
subjects:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: lens-spaces:Developers
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: edit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now for the simpler option: using Lens’ features to create the role binding that you envision, without the need to write any YAML.&lt;/p&gt;

&lt;p&gt;In Lens, navigate to “Access Control” and select “Cluster Role Bindings”.&lt;/p&gt;

&lt;p&gt;Once you are in the “Role Bindings” section of Lens within Access Control, click the + Icon on the bottom right.&lt;/p&gt;

&lt;p&gt;You should see the following screen, which allows you to configure your new RoleBindings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99o5irw3hw0uyl3j9s8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99o5irw3hw0uyl3j9s8u.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, it’s time to configure your RoleBindings via Lens. In this exercise, we are going to achieve the same outcome as the YAML code above.&lt;/p&gt;

&lt;p&gt;Now you will need to input the values in the respected field.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Namespace = Default&lt;br&gt;
Role Reference = Edit&lt;br&gt;
Binding Name = Edit&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Groups = Lens-Spaces:Developers (Press Enter to confirm the group)&lt;/p&gt;

&lt;p&gt;Now you can click “Create” and your new RoleBinding will be created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fox73bve8ny421wyyv3pq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fox73bve8ny421wyyv3pq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what exactly did we do? With this change, anyone within the “Developers” team in your Space will have Read &amp;amp; Write Access to all resources within the “Default” namespace. &lt;/p&gt;

&lt;p&gt;Now, developers will be able to easily review and access all logs within the “Default” namespace (for example).&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary:
&lt;/h2&gt;

&lt;p&gt;In this blog, I talked about the challenges that cluster administrators may face when sharing access to their cluster with colleagues and how to overcome these challenges. I took the time to provide in-depth examples of how you can leverage Lens Spaces to configure granular access control into a specific namespace within your cluster. With the changes we made, users can now view all resources within the default namespace.&lt;/p&gt;

&lt;h2&gt;
  
  
  About Lens:
&lt;/h2&gt;

&lt;p&gt;Lens is the way the world runs Kubernetes. It’s lowering the barrier of entry for people just getting started and radically improving productivity for people with more experience. Users of Lens gain clarity on how their clusters and cloud native software stacks work. It helps people to put things in perspective and to make sense of it all. Thousands of businesses and hundreds of thousands of Kubernetes users develop and operate their Kubernetes on Lens. The Lens open source project is backed by a number of Kubernetes and cloud-native ecosystem pioneers. With a community of over 450,000 Kubernetes users and 17k stars on GitHub, Lens is the largest and most advanced Kubernetes platform in the world. Download Lens at &lt;a href="https://k8slens.dev" rel="noopener noreferrer"&gt;https://k8slens.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>opensource</category>
      <category>developers</category>
    </item>
    <item>
      <title>How to Build &amp; Scale a Useful Open Source Technology
</title>
      <dc:creator>Eionel</dc:creator>
      <pubDate>Wed, 09 Feb 2022 17:59:42 +0000</pubDate>
      <link>https://forem.com/eionel/how-to-build-scale-a-useful-open-source-technology-53gc</link>
      <guid>https://forem.com/eionel/how-to-build-scale-a-useful-open-source-technology-53gc</guid>
      <description>&lt;p&gt;It is now February 2022, 16 months after launching Lens - The Kubernetes Platform as an open source project. How has the project come so far in such a short time?  &lt;/p&gt;

&lt;p&gt;Lens was built to help developers, operators, and site reliability engineers take control of their Kubernetes clusters like they never imagined. Today, Lens has over 500,000 active users and over 17,000 GitHub stargazers. As a growing community, Lens has become one of the top trending open source projects within the cloud-native ecosystem.  It has been adopted by some of the largest companies across the globe and is seeing over 15% month-over-month growth. &lt;/p&gt;

&lt;p&gt;Growing an open source technology can be challenging for many reasons, from user adoption to building trust within the community, and of course, overall product retention.  In this post, I’ll break down the tips and tricks we have used to ensure our open source project’s success within the cloud native ecosystem. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step One: Understanding the Challenges
&lt;/h2&gt;

&lt;p&gt;As Kubernetes users, we understood that Kubernetes has many underlying challenges that individuals and organizations need to overcome for their application modernization initiatives to be successful.  Managing Kubernetes means writing code and keeping track of multiple Kubernetes YAML files and sets of access details.  Keeping track of all of this information and all of these resources becomes especially challenging when working with dozens of Kubernetes clusters.  &lt;/p&gt;

&lt;p&gt;We identified several underlying challenges when it comes to Kubernetes, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The technology can be complicated and a burden to learn.&lt;/li&gt;
&lt;li&gt;Understanding the root cause of errors is increasingly challenging.&lt;/li&gt;
&lt;li&gt;Individuals / Organizations spend too much time helping users onboard their applications.&lt;/li&gt;
&lt;li&gt;Users spend too much time switching between browsers, command lines, and documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues are only the tip of the iceberg, but for the purposes of this blog, I want to emphasize that when you are trying to create something truly extraordinary you must sell the problem you solve, not the product…and before you can do that, you need to have a clear understanding of what that problem is. Once you've identified the problem space, you can move on to the next step, which is identifying the value you bring.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Step Two: Understand Your Product’s Value Prop
&lt;/h2&gt;

&lt;p&gt;As you begin your journey in building an extraordinary product, software, or technology, you need to understand the value prop that you are providing to your end users or customers.  Based on the challenges you have identified, this is where you begin to think of the solution to these challenges.  So how do you begin? &lt;/p&gt;

&lt;p&gt;One great advantage we have in building an open source project that provides value is simply being an end user. What exactly do I mean by that? Well, it's quite simple: the majority of individuals who are building an open source project are most likely already experts in the topic at hand. &lt;/p&gt;

&lt;p&gt;With Lens, most of our engineers and developers already work with Kubernetes on a daily basis, easily identifying the challenges. Lens made their lives easier. Your team should benefit themselves from the open source project you build. If your team cannot benefit from the project, there is a strong possibility your targeted audience won’t either. &lt;/p&gt;

&lt;p&gt;One feature we implemented for Lens is product telemetry. In our license agreement and source code, we ensure that we are able to collect anonymous user telemetry data that provides insights and highlights our user journey (while giving users the option to opt out, of course).  We leveraged this telemetry data to better understand our user usage patterns, aggregating and analyzing this data to make product roadmap decisions, improvements and to understand why and how our users leverage Lens.  Real time telemetry is by far the most influential data we could leverage; the hard part is digesting and analyzing it appropriately. &lt;/p&gt;

&lt;p&gt;We also took the opportunity to incorporate real time surveys that our users can fill out to give us a better understanding of how to position our roadmap moving forward. Leveraging both our telemetry and real time surveys gave us a clear understanding of how our users are leveraging our technology and how we can improve our product. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The main point I want to make here is that it is never easy to identify the true value your product brings to its end users, but there are several channels that you can explore to better understand how your users leverage your product. When building your product, it is essential to implement telemetry to identify usage patterns of your users. &lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Three: Build a Product That Resonates with All End-Users
&lt;/h2&gt;

&lt;p&gt;When it comes to adoption, not much has changed. We know that we need to build a tool that is explicitly geared towards our end users.  Our audience, specifically developers, operators, and site reliability engineers, all have one thing in common. They want to improve their overall efficiency, when working with Kubernetes. The goal is to eliminate complexity and increase productivity.   &lt;/p&gt;

&lt;p&gt;Every one of our “potential” users has a different level of expertise when working with Kubernetes, which meant we had to focus on building a tool that both experienced and novice Kubernetes users could use daily.  This is our third step and one of our most important: creating a product that can resonate with all Kubernetes users, regardless of their experience.  I know this might sound cliché, but I can’t overstate how essential it is to understand your targeted end-user.  &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The main point I want to stress here is that your entire targeted audience should have the ability (and desire) to get up and running with the product relatively quickly.  The solution, product, or tool should be so easy to use that anyone can become a “power user” with minimum effort (and without having to read documentation). &lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Four: Listen to the Community
&lt;/h2&gt;

&lt;p&gt;Okay, now for the part you guys all care about: how Lens grew from 0 to 500,000 active users in less than two years.  The majority of our growth came with virtually zero PR and without a profound marketing budget.  The open source application grew, and continues to grow, primarily from word of mouth.&lt;/p&gt;

&lt;p&gt;Yes, I said it: word of mouth. I know it's not the growth hack you were expecting, but Kubernetes developers, operators, and SRE’s currently using our product did the majority of the heavy lifting for us.  &lt;/p&gt;

&lt;p&gt;But that doesn't mean that we ignored the need to increase user adoption.   One of the most important things we did to improve user experience and growth was to enable our community to provide feedback. &lt;/p&gt;

&lt;p&gt;Due to this opportunity, we have had over 1000 commits with roughly 1200 issues resolved within the first sixteen months of Lens being launched as an open source project—and we are just getting started!  We quickly learned that resolving issues in a timely fashion demonstrated our care and respect for our users and the product, resulting in us quickly building trust within the open source cloud native community.  &lt;/p&gt;

&lt;p&gt;Indeed, to “hack” the system, you need to focus on developing a fantastic product.  What do I mean by that?  Well, I think author Seth Godin says it best: “Don’t find customers for your products, find products for your customers.” And this is precisely what we did.  We put our end user’s biggest challenges first and built a product that anyone within the Kubernetes ecosystem could use.  We learned that everything started with the product, so we asked ourselves, “Are we building something extraordinary that our end users would be willing to share with their colleagues?”  If the answer to this question is anything but yes, then you have some work to do.  &lt;/p&gt;

&lt;p&gt;When it comes to building something truly extraordinary, you need to focus on understanding everyone that will try or use your product. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do we solve problems, or are we just trying to sell a product?&lt;/li&gt;
&lt;li&gt;Are we incorporating our user feedback into the solution?&lt;/li&gt;
&lt;li&gt;Can anyone within the Kubernetes ecosystem use our product?&lt;/li&gt;
&lt;li&gt;Is our product extraordinary and easy to use?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;The main point here is that you will never know exactly what it takes to make your product, technology, or software extraordinary.  But there are several things you need to do to ensure you are on the correct path.  The bullets mentioned above are specific things we kept in mind while building Lens. &lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Feel free to reach out to me directly if you would like a further conversation around this topic. Thank  you for your time. &lt;/p&gt;

&lt;h2&gt;
  
  
  About Lens - The Kubernetes Platform
&lt;/h2&gt;

&lt;p&gt;Lens is the way the world runs Kubernetes. It's lowering the barrier of entry for people just getting started and radically improving productivity for people with more experience. Users of Lens gain clarity on how their clusters and cloud native software stacks work. It helps people to put things in perspective and to make sense of it all. Thousands of businesses and hundreds of thousands of Kubernetes users develop and operate their Kubernetes on Lens. The Lens open source project is backed by a number of Kubernetes and cloud-native ecosystem pioneers. With a community of over 450,000 Kubernetes users and 17k stars on GitHub, Lens is the largest and most advanced Kubernetes platform in the world. Download Lens at &lt;a href="https://k8slens.dev"&gt;https://k8slens.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>devops</category>
      <category>developer</category>
    </item>
    <item>
      <title>What to Look For When Evaluating a Container Registry Solution
</title>
      <dc:creator>Eionel</dc:creator>
      <pubDate>Wed, 22 Dec 2021 17:45:19 +0000</pubDate>
      <link>https://forem.com/eionel/what-to-look-for-when-evaluating-a-container-registry-solution-2klp</link>
      <guid>https://forem.com/eionel/what-to-look-for-when-evaluating-a-container-registry-solution-2klp</guid>
      <description>&lt;p&gt;Kubernetes is quickly becoming the de facto operating system for the cloud. It delivers common APIs and services for running software distributed on modern cloud based infrastructure. With strong support from all cloud technology mega-players, it has already been adopted by thousands of cloud based software projects. This is great! Right?&lt;/p&gt;

&lt;p&gt;Setting up a Kubernetes service has become relatively easy, whether it be on-premise or in public cloud services. However, establishing a validated container registry solution to ensure the software supply chain is secure isn’t easy. There are many solutions when it comes to a container registry, and choosing a solution that meets enterprise requirements is challenging. The right solution needs to be able to validate, comply, automate and organize the images and workloads securely.&lt;/p&gt;

&lt;p&gt;First, organizations need to identify whether they want a private or public registry. Generally speaking, public repositories make sense for individuals and small teams that want to get up and running relatively quickly. That being said, public repositories do not have security features such as privacy and access control, making it impossible for them to meet enterprise requirements.&lt;/p&gt;

&lt;p&gt;Organizations that want to scale their container initiatives require a private container registry that meets enterprise standards. The solution needs to be able to scan for vulnerabilities, ensure role-based access control management, optimize for automation, and support various authentication systems.&lt;/p&gt;

&lt;p&gt;Container registries play a crucial role in any container management strategy. In this blog, I will address the different types of container registries and how to select one to meet enterprise requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public vs Private Registries
&lt;/h2&gt;

&lt;p&gt;Although adopting an image registry may seem straightforward, not all registry solutions are built equally, and they offer significant differences. Let’s take a look at the most commonly used registry types: public and private registries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public Registries
&lt;/h2&gt;

&lt;p&gt;Public registries like Docker Hub are a common solution for many container management strategies. Public solutions are quite basic and easy to use, and small teams and organizations can begin to leverage public registries to get up and running relatively quickly. The caveat to this is when you begin to scale and share images among thousands of developers and locations. Public registries have only basic functionality and do not work well when trying to meet enterprise needs and requirements. As use of the registry grows, images become more vulnerable and become a security issue. This is where public solutions may begin to fall short of expectations.&lt;/p&gt;

&lt;p&gt;With the recent news of Log4J’s security vulnerabilities, scanning your images for vulnerabilities is more important than ever. However, the majority of public registry solutions do not have the capability to scan images for vulnerabilities and thus do not meet enterprise requirements. Lately, public cloud providers are not foolproof. As the data suggests, public clouds are not invisible and outages will occur. Enterprises that need to meet regulatory requirements require a fool-proof solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Private Registries
&lt;/h2&gt;

&lt;p&gt;Private registries are usually the go-to solution for secure enterprise container management strategies and for good reason. As mentioned above, public registries rarely meet enterprise requirements and are susceptible to many vulnerabilities. Enterprises need a private registry solution that meets all use-cases.&lt;/p&gt;

&lt;p&gt;Evaluating the right container registry solution is never easy; the solution needs to meet several use cases. The most robust private registries can secure the software supply chain, store and manage images, and meet governance and compliance requirements.&lt;/p&gt;

&lt;p&gt;Now that we understand public and private registries, let’s go into depth on what to look for when evaluating a container registry solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Critical Container Registry Features
&lt;/h2&gt;

&lt;p&gt;There are numerous use cases to look for when evaluating a container registry solution. One of the most important features to look for is mirroring policies for a repository.&lt;/p&gt;

&lt;p&gt;When an image gets pushed to a repository and meets the mirroring criteria, the registry will automatically push it to a repository in a remote registry. The most robust container registry solution should meet each of these use cases, securing the software supply chain, storing and managing images and meet governance and compliance requirements.&lt;/p&gt;

&lt;p&gt;Below, I will quickly showcase each feature needed to meet all three of the above use case requirements.&lt;br&gt;
Enterprise Grade Registry Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access Control

&lt;ul&gt;
&lt;li&gt;IDM integration and Role-based access control to ensure strict access controls&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Image Scanning

&lt;ul&gt;
&lt;li&gt;Gain visibility into security vulnerabilities in images&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Image Storage

&lt;ul&gt;
&lt;li&gt;Securely store images and make them available to all developers&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Cache &amp;amp; Monitoring

&lt;ul&gt;
&lt;li&gt;Put images right where they are needed&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Policy &amp;amp; Promotion

&lt;ul&gt;
&lt;li&gt;Enforce security controls with promotion policies&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Image Lifecycle

&lt;ul&gt;
&lt;li&gt;Automatically manage images based on policy&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Image Signing

&lt;ul&gt;
&lt;li&gt;Verify image authenticity before running&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of the features listed above in compass everything needed to secure the software supply chain, ensure the images are stored securely, and meet compliance requirements. Evaluating and selecting the correct container registry solution is a critical component of any container management strategy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts:
&lt;/h2&gt;

&lt;p&gt;Getting started with a container registry in order to secure the software supply chain is a must. With the various types of registries currently available, teams and organizations need to understand which use case fits them best. From an enterprise perspective, security and policy management controls play a vital role in selecting the correct container registry. Smaller teams may opt for a public registry in order to move quickly. Below you will find a list of container registry solutions that you can get started with today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Container Registry Solutions:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.mirantis.com/software/mirantis-secure-registry/?utm_source=Medium&amp;amp;utm_medium=Blog&amp;amp;utm_campaign=MSR"&gt;Mirantis Secure Registry (formerly Docker Trusted Registry)&lt;/a&gt;
Enterprise grade container registry is built to securely share, store and deploy container software anywhere.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/ecr/"&gt;Amazon Elastic Container Registry&lt;/a&gt;
Easily store, share, and deploy your container software anywhere&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cloud.google.com/container-registry"&gt;Google Container Registry&lt;/a&gt;
Store, manage, and secure your Docker container images&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>cloud</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How To Give Developers Secure Access to Kubernetes Clusters
</title>
      <dc:creator>Eionel</dc:creator>
      <pubDate>Mon, 08 Nov 2021 18:47:28 +0000</pubDate>
      <link>https://forem.com/eionel/how-to-give-developers-secure-access-to-kubernetes-clusters-4j26</link>
      <guid>https://forem.com/eionel/how-to-give-developers-secure-access-to-kubernetes-clusters-4j26</guid>
      <description>&lt;h1&gt;
  
  
  Installing Lens
&lt;/h1&gt;

&lt;p&gt;Navigate to the Lens website (&lt;a href="https://k8slens.dev/"&gt;https://k8slens.dev/&lt;/a&gt;) and download the latest version of Lens for your preferred OS. Once you have downloaded and installed, open the application, Lens IDE will automatically add your Kubeconfig (if done correctly, you will see a cluster icon on the left-hand-side). Lens works with any certified CNCF Kubernetes distro. &lt;/p&gt;

&lt;p&gt;Now that your cluster has been added, you have full situational awareness of your Kubernetes cluster. Users can easily monitor all objects and resources within their cluster.  &lt;/p&gt;

&lt;h1&gt;
  
  
  Creating a Lens Space account
&lt;/h1&gt;

&lt;p&gt;In order to share a cluster with a team or team member, you will first need to create a Lens Spaces account:&lt;br&gt;
In the bottom right corner of Lens, click “Lens Login” (or go to &lt;a href="https://app.k8slens.dev/signup"&gt;https://app.k8slens.dev/signup&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Click “Create an account” and follow the process to sign up for a Lens Spaces account. Once you have registered for an account, log into Lens Spaces and open up the desktop application.&lt;/p&gt;

&lt;p&gt;Creating a Lens Space and Sharing Access to Your Cluster&lt;br&gt;
Once logged in, you will need to create a secure “Space” in Lens 5 and share your cluster to that space. To do so, click on your username in the bottom right corner of Lens 5 and select “Add Space …”. Enter a unique Space name.&lt;/p&gt;

&lt;p&gt;Now, navigate to your “Catalog” on the left-hand side of the desktop application. Within the Catalog, navigate to the “cluster” you just added. Click the ellipsis on the right-hand side of your cluster and select “Share Cluster”.&lt;/p&gt;

&lt;p&gt;From there, you will need to select the space you would like to add the cluster to. Select the space you just created and specify the region for Cluster Connect Server Infrastructure (Lens Agent is installed in your cluster). Now, select “Install Cluster Connect and Share”.&lt;/p&gt;

&lt;p&gt;You have now successfully installed Cluster Connect to your cluster and shared it to the selected Space. You can learn more about Cluster Connect here.&lt;/p&gt;
&lt;h1&gt;
  
  
  Invite members to your Space
&lt;/h1&gt;

&lt;p&gt;Now that you have created a Space and shared the selected cluster to the Space, you will need to invite members to your Space to share access to your cluster.&lt;/p&gt;

&lt;p&gt;Now Navigate to the share icon on your cluster, and select the Space you wish to add members to. &lt;/p&gt;

&lt;p&gt;Enter your colleague’s username or email address (Press enter to confirm). If the invitee already has a Lens Spaces account, they will receive a direct invite, otherwise, they will need to receive an email invite.&lt;/p&gt;
&lt;h1&gt;
  
  
  Accepting a Space Invite:
&lt;/h1&gt;

&lt;p&gt;For an invitee to access your cluster, they need to accept your invitation:&lt;/p&gt;

&lt;p&gt;Click on your username in the bottom right corner. Click “My Profile”. Within your profile settings, click “Spaces”. You will now be able to see “Invitations”. Click “Accept”. You have now joined a new Space. &lt;/p&gt;

&lt;p&gt;In order to view the shared clusters, close your Lens Space settings and navigate to your “Catalog”. Here, you will be able to view clusters that you have permission to access.&lt;/p&gt;
&lt;h1&gt;
  
  
  Creating a Team Within Your Space
&lt;/h1&gt;

&lt;p&gt;In order to give specific access to a particular team or team member, you will need to create a “Team” within your Space.&lt;br&gt;
Begin by clicking your username in the bottom right-hand corner and choose “Edit Space …”.&lt;/p&gt;

&lt;p&gt;Select the “Space” you would like to add a “Team” to. Now, within your Space settings, click “Teams”. Then click “Create New Team” and enter the team name.&lt;/p&gt;

&lt;p&gt;Once you have created a team within your Space, you will need to add a member to that team. &lt;/p&gt;

&lt;p&gt;Click the ellipsis on the right side of your team and select “Add Member” then select a Space member (You can not add members to a team who are not already a part of your Space). You have now successfully created and added a member to the team.&lt;/p&gt;
&lt;h1&gt;
  
  
  How To Give Granular Access
&lt;/h1&gt;

&lt;p&gt;Okay, now you may want to grant more specific permissions to the team you just created.&lt;/p&gt;

&lt;p&gt;Let’s imagine your space has a team called “Developers” who need read access to a single namespace called “monitoring”. In order to do this, you will need to add “RoleBinding” to your Kubernetes Cluster.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: Developers-monitoring
  namespace: monitoring
subjects:
- kind: Group
  name: lens-spaces:Developers
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: lens-spaces-view
  apiGroup: rbac.authorization.k8s.io
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will grant lens-spaces-view role to the “Developers team” in the monitoring namespace.&lt;/p&gt;

&lt;p&gt;In addition to this you may want to limit Space members permissions, by default we grant read access to all namespaces. To change this, you can edit or remove lens-platform-read-teams ClusterRoleBinding.&lt;/p&gt;

&lt;h1&gt;
  
  
  About Lens
&lt;/h1&gt;

&lt;p&gt;Lens provides the full situational awareness for everything that runs in Kubernetes. It’s lowering the barrier of entry for people just getting started and improving productivity for people with more experience. Lens is built on open source and free of charge for any purpose. The Lens open source project is backed by a number of Kubernetes and cloud-native ecosystem pioneers. With more than 5 million downloads, over 250,000 users, and 15.3k stars on GitHub, it’s the most popular IDE for Kubernetes. &lt;a href="https://k8slens.dev"&gt;https://k8slens.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>cloudnative</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
