<?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: Kubeshop</title>
    <description>The latest articles on Forem by Kubeshop (@thekubeshop).</description>
    <link>https://forem.com/thekubeshop</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%2F846358%2Fa30bb4c5-7e96-41d5-a2c1-d7149afce9f6.png</url>
      <title>Forem: Kubeshop</title>
      <link>https://forem.com/thekubeshop</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thekubeshop"/>
    <language>en</language>
    <item>
      <title>Introducing Botkube Fuse: The Platform Engineer’s Copilot</title>
      <dc:creator>Kubeshop</dc:creator>
      <pubDate>Tue, 03 Sep 2024 18:42:31 +0000</pubDate>
      <link>https://forem.com/kubeshop/introducing-botkube-fuse-the-platform-engineers-copilot-33o3</link>
      <guid>https://forem.com/kubeshop/introducing-botkube-fuse-the-platform-engineers-copilot-33o3</guid>
      <description>&lt;p&gt;The daily grind of platform engineers entails constant switching between tools, handling infrastructure issues, and responding to a never-ending stream of requests. It's not just about keeping things running—it's about doing so while juggling multiple tasks, troubleshooting, and making sure nothing falls through the cracks. We created Botkube Fuse because we know the pain firsthand and wanted to build something that makes our work not just manageable, but truly efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Context Switching is Draining Your Productivity
&lt;/h2&gt;

&lt;p&gt;We’ve all been there—midway through troubleshooting a failing CI/CD pipeline, only to be pulled into another task. Whether it’s answering a developer’s query about infrastructure or checking the latest status on a Kubernetes deployment, the constant need to switch contexts is exhausting. Every time focus is shifted we risk losing critical details, slowing down our response times, and increasing the likelihood of errors. It’s frustrating and it eats into the time we could be spending on more impactful work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: Your Intelligent Platform Assistant, Right in Your Terminal
&lt;/h2&gt;

&lt;p&gt;Botkube Fuse is built by platform engineers, for platform engineers. It's not just another tool; it's a powerful assistant that understands the ins and outs of your infrastructure and day-to-day tasks. We designed Fuse to help you cut through the noise, automate the repetitive stuff, and keep you focused on what really matters—solving problems and driving innovation.&lt;/p&gt;

&lt;p&gt;Fuse is your intelligent Platform Engineer assistant, embedded right into your workflow. It brings together insights from your CI/CD pipelines, infrastructure, and services, so you can get the information you need, when you need it—without the constant back-and-forth between different platforms. Whether you’re managing secrets, checking on CI runs, or troubleshooting an outage, Fuse is there to assist with just a few commands all within your terminal window.&lt;/p&gt;

&lt;p&gt;Let’s talk about the real impact of Fuse on your day-to-day tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stop Wasting Time on Repetitive Tasks: Fuse automates the mundane, like managing secrets or digging through logs, so you can focus on the tasks that actually require your expertise.&lt;/li&gt;
&lt;li&gt;Get Instant Answers, Stay in Flow: Instead of switching tabs and tools, ask Fuse a question and get the information you need right where you are. Whether it’s checking which database is used by a service or figuring out why a deployment failed, Fuse gives you the answers directly in your terminal.&lt;/li&gt;
&lt;li&gt;Make Informed Decisions Faster: Fuse analyzes data from multiple sources–initially Google Cloud Platform (GCP), Kubernetes, and Github with more to come–and provides you with actionable insights such as detecting secret mismatches, identifying IAM misconfigurations, and pinpointing flaky tests.‍&lt;/li&gt;
&lt;li&gt;Minimize Distractions, Maximize Focus: By centralizing your tasks and providing intelligent recommendations, Fuse reduces the mental load of context switching, keeping you in the zone and more productive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Botkube Fuse in Your Daily Workflow
&lt;/h2&gt;

&lt;p&gt;Imagine starting your day by getting a clear summary of your CI/CD pipeline’s stability for the past month, with insights on any flaky tests and suggested fixes—all without having to manually check every run. Or multiple pods in your production GKE cluster are crashing, and instead of scrambling through logs and dashboards, you simply ask Fuse to investigate. Within minutes, Fuse provides a detailed analysis of the pod issues, recent IAM permission changes, and correlated data, along with recommended steps to resolve the issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Botkube Fuse is a terminal tool powered by a new AI assistant, designed to help with your daily tasks. It’s agentless, operating as a single CLI binary. Just type fuse 'your prompt here…' or fuse to enter interactive mode and start chatting.&lt;/p&gt;

&lt;p&gt;Fuse leverages OpenAI’s GPT-4o model and integrates tools for Kubernetes, Google Cloud Platform, GitHub, git, and local filesystem operations. It can even generate and execute Python code. User confirmation is required for potentially dangerous operations, ensuring full control.&lt;/p&gt;

&lt;p&gt;Fuse stands out by aiming for end-to-end knowledge of your infrastructure. Currently it introspects GCP projects, with more features planned to provide comprehensive assistance.&lt;/p&gt;

&lt;p&gt;Fuse addresses real user problems, especially those at the intersection of different infrastructure parts. It offers AI guidance for scenarios like GitHub Actions secret management, pipeline analysis, GKE troubleshooting, and local environment operations. The assistant categorizes your queries and applies custom instructions, with more scenarios and user customization options coming soon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to Dive In? Set Up Botkube Fuse in Minutes
&lt;/h2&gt;

&lt;p&gt;We built Botkube Fuse because we needed it ourselves—something to cut through the noise, automate the repetitive, and keep us focused on solving real problems. We’re excited to share it with you and see how it transforms your workflow.&lt;/p&gt;

&lt;p&gt;Ready to reduce your context switching and increase your productivity? Getting started is easy. &lt;a href="https://botkube.io/fuse" rel="noopener noreferrer"&gt;Visit the Botkube Fuse website&lt;/a&gt; to download the tool and integrate it with your existing platforms. We currently support Google Cloud Platform (GCP), Github, and Kubernetes with more integrations coming soon. Once you’re set up, start asking Fuse questions directly in your terminal and let it take care of the heavy lifting.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>productivity</category>
      <category>git</category>
      <category>sre</category>
    </item>
    <item>
      <title>Monokle, Helm &amp; Quality Kubernetes Deployments</title>
      <dc:creator>Kubeshop</dc:creator>
      <pubDate>Tue, 22 Nov 2022 00:54:13 +0000</pubDate>
      <link>https://forem.com/kubeshop/monokle-helm-quality-kubernetes-deployments-59f1</link>
      <guid>https://forem.com/kubeshop/monokle-helm-quality-kubernetes-deployments-59f1</guid>
      <description>&lt;h1&gt;
  
  
  Monokle, Helm &amp;amp; Quality Kubernetes Deployments
&lt;/h1&gt;

&lt;p&gt;Before the cloud native era, we built infrastructure from Digital Ocean tutorials. Developers and IT teams were responsible for provisioning individual servers with all the hardware, networking, OS configurations, and services necessary to run services or apps on the web. That meant installing and configuring an Nginx web server or MySQL database dozens or hundreds of times following pre-approved—and extremely tedious—steps.&lt;/p&gt;

&lt;p&gt;Eventually, DevOps emerged and took hold among technology-savvy organizations, which also led to a progression away from raw Linux administration and toward provisioning/configuration management and automation tools like Ansible and Puppet. That was a major step in the right direction, but these teams quickly started to look for faster and more reliable ways to deploy their apps to the web than administering multiple nodes via configuration files.&lt;/p&gt;

&lt;p&gt;But now, in the cloud native era, where infrastructure as code (IaC) is not only &lt;em&gt;best&lt;/em&gt; practice but also expected, Kubernetes developers shouldn’t have to recreate their infrastructure repeatedly, right?&lt;/p&gt;

&lt;p&gt;Unfortunately, we’ve fallen into the same trap. As Kubernetes clusters ballooned in complexity, DevOps engineers found themselves recreating manifests for commonly-needed resources, like web servers or databases, more often than they would like. And as soon as they replicated those assets in multiple places, making minor tweaks here and there, their manifests were no longer reliable sources of truth. &lt;/p&gt;

&lt;p&gt;And to complicate matters more, most attempts to add version control—a necessary step in modern DevOps toolkits, were unsuccessful. In an era where the industry continues to trend toward automating deployments with GitOps, reliable version control has become a non-negotiable must-have.&lt;/p&gt;

&lt;p&gt;What if the Kubernetes development community had a package manager—like Homebrew for macOS or apt for certain flavors of Linux—for discovering, editing, and maintaining Kubernetes manifests and deployments?&lt;/p&gt;

&lt;h2&gt;
  
  
  How teams leverage Helm in Kubernetes deployments
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/helm/helm"&gt;Helm&lt;/a&gt; is a tool for managing charts, which are packages of pre-configured Kubernetes resources. Charts contain a description of the package in the &lt;code&gt;Chart.yaml&lt;/code&gt; file, plus one or more templates containing Kubernetes manifest files in YAML.&lt;/p&gt;

&lt;p&gt;Kubernetes developers and DevOps teams are already using Helm for lots of robust use cases, pulled straight from the &lt;a href="https://github.com/helm/helm"&gt;Helm README on GitHub&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find and use popular software packaged as Helm Charts to run in Kubernetes&lt;/li&gt;
&lt;li&gt;Share your own applications as Helm Charts&lt;/li&gt;
&lt;li&gt;Create reproducible builds of your Kubernetes applications&lt;/li&gt;
&lt;li&gt;Intelligently manage your Kubernetes manifest files&lt;/li&gt;
&lt;li&gt;Manage releases of Helm packages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, Helm provides great benefit for Kubernetes-based organizations eager to speed up their workflows around creating the resources needed for a functional and effective cluster. Instead of rewriting the same common resources repeatedly or mismanaging multiple versions of a manifest, they can use Helm to deploy standard templates with their customizations layered on top.&lt;/p&gt;

&lt;p&gt;Unlike Kustomize, which utilizes a locally-stored base and patches YAML files, Helm is most commonly used to install Charts from a public repository like &lt;a href="https://artifacthub.io/packages/search?kind=0"&gt;Artifact Hub&lt;/a&gt;. For example, Helm simplifies the process of installing the &lt;a href="https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack"&gt;kube-prometheus-stack&lt;/a&gt;, which deploys end-to-end Kubernetes cluster monitoring with Prometheus, into just three commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install [RELEASE_NAME] prometheus-community/kube-prometheus-stack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What are the challenges of working with Helm charts?
&lt;/h2&gt;

&lt;p&gt;Three commands to install three thousand lines of Kubernetes manifest YAML. For all the advantages Helm creates in terms of “time to deployment,” there are a few headaches that may be experienced in abstraction, visibility, and debugging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abstraction&lt;/strong&gt;: Helm charts are complex groups of rules, configurations, and resources, but the CLI tooling and public repositories make it remarkably easy to deploy to your production environment—for better or worse. In its default settings, &lt;a href="https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack"&gt;kube-prometheus-stack&lt;/a&gt; has nearly 3,000 lines of YAML code—how’s that for 1000X abstraction?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visibility&lt;/strong&gt;: Most developers and DevOps engineers using Helm will deploy resources and services without ever reading a single line of YAML—which can be extremely freeing or monstrously frustrating, depending on how the deployment goes. And Helm doesn’t make it particularly easy to view and analyze the manifests and templates it deploys by default. Your best option is to manually run &lt;code&gt;helm show values&lt;/code&gt;, which only gives you the default part of the picture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging&lt;/strong&gt;: For most workflows, the only way to understand what kind of manifests and resources you’re dealing with is by running Helm with &lt;code&gt;helm install --dry-run --debug&lt;/code&gt; and hoping you get some meaningful information from the resulting manifest file. Just one extra (and often unnecessary) step that gets in the way of development velocity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customization&lt;/strong&gt;:  Helm charts include a &lt;code&gt;values.yaml&lt;/code&gt; file that includes the parameters available for customization. The &lt;code&gt;values.yaml&lt;/code&gt; file can be quite complicated if the developer wants to add flexibility, but it is not totally flexible: anything not included in the file won’t be parameterizable. Do you want to add a label to the pods for cost management? Bad luck unless the chart already includes it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Monokle Desktop help with deploying to Kubernetes via Helm?
&lt;/h2&gt;

&lt;p&gt;Image of Monokle Desktop Helm Preview&lt;/p&gt;

&lt;p&gt;Monokle Desktop is a cross-platform desktop app that helps DevOps teams and developers define, compare, and audit the desired and actual states of their Kubernetes cluster. By layering Kubernetes configuration management and version control into your existing processes around building, optimizing, and troubleshooting complex Kubernetes manifests, Monokle helps you deploy faster and error-free.&lt;/p&gt;

&lt;p&gt;And we’ve built Monokle Desktop to be the perfect accompaniment to Helm charts—its configuration management and rich diffs on current vs. future cluster state solves all your core problems around using Helm while retaining the streamlining and simplification you need to work effectively. That starts with &lt;a href="https://kubeshop.github.io/monokle/helm/"&gt;native support&lt;/a&gt; for creating, analyzing, debugging, and deploying Helm charts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Navigate your Helm charts
&lt;/h3&gt;

&lt;p&gt;When you add a folder with Helm charts to Monokle, it immediately organizes your &lt;code&gt;Chart.yaml&lt;/code&gt;, &lt;code&gt;values.yaml&lt;/code&gt;, and template files as shown in the screenshot above. You can see and edit the source code for any selected resource, file or template in the &lt;strong&gt;Editor&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Since Monokle understands your Helm templates and their usage of properties provided in your values files, you can interactively identify where properties referenced in your templates are defined:&lt;/p&gt;

&lt;p&gt;And correspondingly hovering a property in a values file will show you which template(s) that use it:&lt;/p&gt;

&lt;p&gt;Monokle will also help you identify any property references that might be invalid - and since all validation is in real-time you can edit your templates and get corresponding feedback that your errors are fixed accordingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preview and debug Helm charts
&lt;/h3&gt;

&lt;p&gt;Click the &lt;strong&gt;Preview&lt;/strong&gt; button next to any &lt;code&gt;values.yaml&lt;/code&gt; file to run Helm on the selected file and show the generated resources in the &lt;strong&gt;Navigator&lt;/strong&gt;. Select a resource to show its generated YAML in the &lt;strong&gt;Editor&lt;/strong&gt;, and use the popups next to each resource to explore how it interacts with others on either side of an incoming/outgoing link.&lt;/p&gt;

&lt;p&gt;Through the incoming/outgoing links icons that appear before or after your generated resources, you can quickly understand how the deployments, jobs, pods, and more are interconnected. &lt;/p&gt;

&lt;p&gt;You can of course edit any file or template in your Helm Chart and re-run the preview, which helps you immediately understand how your changes impact the generated YAML manifest and, ultimately, your Kubernetes cluster.&lt;/p&gt;

&lt;p&gt;It’s a perfect way to make meaningful changes or perform debugging in a controlled, highly-visible environment. Catch bugs before deploying to production or share your Helm chart with others.&lt;/p&gt;

&lt;p&gt;Monokle’s Helm preview feature is also customizable—you can even have multiple preview configurations based on your needs. You can select which files to use (and in what order), choose between &lt;code&gt;helm template&lt;/code&gt; and &lt;code&gt;helm install&lt;/code&gt;, and set other environment variables. Monokle then shows you the complete command it’ll run to create the preview for full visibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Defining releases with Helm
&lt;/h3&gt;

&lt;p&gt;A few months ago, you deployed v1.0 of your web application, which consisted of 20 Kubernetes resources. You defined everything in a Helm chart, including a few manifests that serve as templates for multiple resources that require a few small tweaks depending on whether you’re deploying to staging or production.&lt;/p&gt;

&lt;p&gt;After the v1.0 release, you immediately got started on v2.0. Along the way, Monokle Desktop’s IDE features, like &lt;a href="https://kubeshop.github.io/monokle/resource-validation/"&gt;resource validation&lt;/a&gt; and the &lt;a href="https://kubeshop.github.io/monokle/form-editor/"&gt;resource form editor&lt;/a&gt;, helped you quickly write new code and prevent any basic YAML syntax errors.&lt;/p&gt;

&lt;p&gt;But now that you think you’re ready to launch v2.0, it’s the perfect time to put Monokle into Preview mode to explore the changing relationships and the generated manifest files visually. &lt;/p&gt;

&lt;p&gt;Why is this an important step? Because of some new efficiencies, you added to your chart, your web app now only needs 15 Kubernetes resources.&lt;/p&gt;

&lt;p&gt;You’re confident that it works, but it’s a dramatic change. With Monokle’s Helm preview and resource navigation tools, you have full visibility into your chart’s inner workings, but you don’t have to scan multiple YAML files or do dry runs on the CLI to debug the output.&lt;/p&gt;

&lt;p&gt;You can even click the &lt;strong&gt;Diff&lt;/strong&gt; button to visualize changes in how specific resources will get deployed to your cluster.&lt;/p&gt;

&lt;p&gt;It’s the confidence you need to push v2.0 into your version control and prove, through your CI/CD pipeline, that you can deliver a powerfully functional Kubernetes cluster the first time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps for Monokle
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/orgs/kubeshop/projects/29/views/8"&gt;Monokle Desktop roadmap&lt;/a&gt; is full of additions to our functional support for Helm. We are adding support for templates, repo management, and many other features that will help you create your own Helm charts easily, fast, and with confidence.&lt;/p&gt;

&lt;p&gt;Join the conversation and help us by suggesting functions that will make your job easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take the Helm with Monokle
&lt;/h2&gt;

&lt;p&gt;To get started, hop over to our &lt;a href="https://monokle.kubeshop.io/download"&gt;downloads page&lt;/a&gt; to get Monokle for macOS, Windows, or Linux. If you don’t already have &lt;a href="https://helm.sh/docs/intro/install/"&gt;Helm installed&lt;/a&gt;, you should start there as well.&lt;/p&gt;

&lt;p&gt;Whether you’re developing new Helm charts to share with the Kubernetes community or modifying the charts you get from Artifact Hub, we’d love to hear about your experiences with our Manifest IDE. Join us on &lt;a href="https://discord.gg/6zupCZFQbe"&gt;Discord&lt;/a&gt; to share details about your workflows and chat with other Kubernetes developers who are eager to help their Helm-loving comrades better manage manifests at scale.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>helm</category>
      <category>cloud</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>A Dream Fulfilled at KubeCon NA</title>
      <dc:creator>Kubeshop</dc:creator>
      <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate>
      <link>https://forem.com/kubeshop/a-dream-fulfilled-at-kubecon-na-2abj</link>
      <guid>https://forem.com/kubeshop/a-dream-fulfilled-at-kubecon-na-2abj</guid>
      <description>&lt;p&gt;My buddy Jared and I started kubefirst because cloud native platforms take too long to build from scratch. Well, as it turns out, solving that problem also takes a long time - it took us years to mature our instant cloud native platform to the point where we could build a team around it to see the vision through. Over the course of those years, you could pretty regularly find Jared and me on a zoom late at night, waiting for some cloud resources to provision, often killing that time daydreaming about what it would be like to have our platform on the KubeCon floor. Last week, that daydream was realized as our newly acquired project and freshly built team at Kubeshop traveled to KubeCon + CloudNativeCon NA in Detroit.‍&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's hear it for the sponsors!
&lt;/h2&gt;

&lt;p&gt;We hadn't been at KubeCon more than 30 seconds before we discovered our brand on display and both of our hearts exploded. If you've been working on your project for a long time and share the dream of seeing your logo on a KubeCon wall - &lt;strong&gt;YOU MUST KEEP GOING!!&lt;/strong&gt;‍&lt;/p&gt;

&lt;p&gt;Walking around before the show felt a lot like Media Day before the Super Bowl. There was a lot of big energy and anticipation, everyone pushing boxes around with purpose, but it was coupled with a fun show-business kind of vibe. Our sponsor badges afforded us a peek behind the ropes and it was super cool to soak it in first hand. The keynote stage was being set up and all I could do was stare at its absolute enormity with a "some day" pinned to my heart.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitOpsCon vs &lt;code&gt;kubefirst local&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;We had Monday and Tuesday to get the booth set up and organized. As technical founders we interpreted that to mean that we absolutely had 2 extra days to work on the product. We were almost finished with a new release that would make the installation of kubefirst &lt;a href="https://kubefirst.io/blog/kubefirst-v110-release-notes"&gt;completely free and 6x faster&lt;/a&gt; so we were pretty incentivized to wrap it up.We had originally planned to set up our booth and then head over to GitOpsCon on Tuesday, but with the release unfinished we ended up working through the event and into the night. It was a really tough call to miss GitOpsCon, but we're really glad we pressed on. We needed every last second and ended up wrapping up the release at 1am on the morning that KubeCon opened its doors to our booth. It was such a big team effort to pull off too - we were so excited that we got kubefirst local out the door in time for the big show!!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Walking through KubeCon is like walking through a kubernetes cluster
&lt;/h2&gt;

&lt;p&gt;Wednesday - at long last our time to show our product to the cloud native world was here!! Walking into the room was the coolest experience ever. When you love kubernetes like I do, the booths instantly turn into physical manifestations of kubernetes namespaces, which is a pretty surreal experience in real life. Walking through KubeCon is oddly like walking through a kubernetes cluster - nginx, cert-manager, hashicorp, linkerd, argo, crossplane - they're all right there - each in their own tidy confined little space.&lt;br&gt;
When I got to our booth I found Jared adding some finishing decorative touches to our namespace. These amazing kubeshop plushies got a lot of attention and were a really fun way to kickstart conversations.‍&lt;br&gt;
We got our first reps in on our product pitch: we're sick of cloud native taking forever to start from scratch, we built a free thing that puts free things together so that the problem goes away. Folks that stopped by our booth loved our vision, our passion for solving the problem, our energy, our relentle-- &lt;strong&gt;omg is that Kelsey Hightower?!?!? IT IS KELSEY HIGHTOWER!!!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Meeting some of the great folks in the space
&lt;/h2&gt;

&lt;p&gt;My first star-struck moment came from a handshake with Kelsey Hightower and the conversation that followed. Kelsey was giving some of his time for a book signing just a few booths away from ours, and we couldn't possibly miss the opportunity to meet him in person. Kelsey has given so much over the past half decade to demystifying and simplifying the message of complex technologies - and Jared and I, along with the rest of the kubernetes community, have greatly benefited from his anecdotes.&lt;br&gt;
When we told him our kubefirst story - that after 3 years we had finally made it to our first KubeCon - he offered to put the book line on hold for a quick moment, so we could jog over to our booth for a photo with the Kubeshop family that helped make it happen. Uh – yeah, Kelsey, that sounds pretty freaking amazing actually!!‍I'm the guy who looks like he just met his childhood hero 😅. Don't zoom in, it's sort of embarrassing. We jogged back to his book signing line and he continued to offer us helpful ways for us to stay in touch, and how he might be able to help our project, and on and on and on, as if we didn't totally just hold up his line. It was like we were the only people in the world for a moment. It was seriously beyond words - despite thinking I knew how genuine and decent he was from his stories, my expectations still fell short of reality. What a guy. Maybe 1 hour later, who did I run into but Pinky Ravi from Weaveworks!! I met Scott Rigby the next day too - what an awesome duo these two were. We knew them from their talks, obviously, but also from the &lt;a href="https://opengitops.dev/"&gt;OpenGitOps&lt;/a&gt; group meetings that we've been attending since joining Kubeshop. They gave us their time to listen to our vision for the kubefirst platform and now we're even talking about how we might offer a second GitOps driver option with Flux CD on the kubefirst platform - how exciting that would be!!!&lt;br&gt;
We had so many great conversations and met so many amazing people throughout the week, so many new opportunities to partner on initiatives. If networking in the kubernetes space is a goal of yours there really is nothing quite like KubeCon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pitching on the floor is admittedly a little exhausting
&lt;/h2&gt;

&lt;p&gt;Turns out pitching your product feels a lot like being on stage giving a talk. I've given some long talks in my day and I'm a pretty social person. I've always wondered how long I could be up there. Turns out for me it's exactly 8.5 hours - after that I was immediately ready to crawl under a rock and hide for the rest of my life. But the pitching was great and we loved getting so much immediate feedback on our platform from so many different people in different environments with different needs. That amount of valuable feedback in that short amount of time would have been impossible to collect any other way.‍&lt;/p&gt;

&lt;h2&gt;
  
  
  There's some room for fun at KubeCon too
&lt;/h2&gt;

&lt;p&gt;There is indeed some time in the evenings where you can take a breath and enjoy the event a little - especially if you're not cramming in a release at the last minute. Kubeshop is a global and geographically distributed team so it was especially neat to take a breath with our work family and soak in the moment we had all worked so hard to achieve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Never give up - it's soooo worth it
&lt;/h2&gt;

&lt;p&gt;If you're working on a passion project, especially a self-funded one, it can be hard to keep going. Nights and weekends aren't easy to add to your workload. Cloud bills can pile up. I hope no matter what your passion is, you'll get across your first finish line and make it to an event like KubeCon. The satisfaction of turning your passion into a product that's respected by the most amazing peers on the planet is something few get to experience, but I bet it only happens when you refuse to give up.&lt;br&gt;
Thanks for reading about our dream come true moment. It didn't happen because we're geniuses. We're here because of countless strangers who were willing to listen to our story, hear about our product, and help us find our way. If I can ever pay it forward and give you my thoughts on your passion project, I hope you'll consider me an ally and reach out. I'm pretty easy to find on &lt;a href="https://www.linkedin.com/in/jd-k8s/"&gt;Linkedin&lt;/a&gt; and &lt;a href="https://twitter.com/vitamindietz"&gt;Twitter&lt;/a&gt;.‍&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Kubefirst Builds Kubernetes Platforms in 8 Steps</title>
      <dc:creator>Kubeshop</dc:creator>
      <pubDate>Thu, 22 Sep 2022 00:00:00 +0000</pubDate>
      <link>https://forem.com/kubeshop/how-kubefirst-builds-kubernetes-platforms-in-8-steps-3ppf</link>
      <guid>https://forem.com/kubeshop/how-kubefirst-builds-kubernetes-platforms-in-8-steps-3ppf</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ehPl-4_8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ve3gd96mfnqq99i737gs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ehPl-4_8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ve3gd96mfnqq99i737gs.png" alt="Image description" width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  An Open Source Approach to Self Hosting a GitOps Platform 
&lt;/h1&gt;

&lt;p&gt;Kubernetes is one of the most transformative open source projects in the history of computing. It provides a straightforward framework for running software in containers and provides simple solutions to all of the complexities that arise from microservice architectures: load balancing, autoscaling, high availability, resource pooling, application inventory, configuration, fault tolerance, and observability. It also abstracts your software architecture from your cloud, allowing you to pick up your complex solution and run it in another cloud provider with very little impact to your software ecosystem.&lt;br&gt;
Because Kubernetes is so efficient at managing containerized software, vendors have invested the last half decade adopting a “Cloud Native” architecture, meaning their software can run easily on Kubernetes. This has produced a thriving open source community that is heavily committed to running software in a consistent, predictable, manageable way with engineers that share a uniform vision. According to the &lt;a href="http://cncf.io"&gt;CNCF&lt;/a&gt;, Kubernetes is now the second largest open source project in the world behind only Linux. The cloud native ecosystem is flourishing and it’s exciting to be a part of.&lt;br&gt;
If you plan to self-host software, of any complexity, in 2022 then you should consider running it on Kubernetes. Managing Kubernetes used to be a challenging undertaking. These days, with cloud-managed Kubernetes distributions like GKE and EKS, cluster management is no longer a heavy burden. Cloud providers can now offload the management of the control plane from the engineers who are responsible for the cluster and the applications in it. This recent evolution, coupled with a cloud native landscape that provides a solution for almost every requirement you could imagine, makes the draw to Kubernetes undeniable.&lt;br&gt;
One of the few challenges that remains for Kubernetes is how to get started. Kubernetes is a complex engine with a sizable learning curve. When you couple that complexity with such an enormous CNCF landscape of cloud native tools, it’s easy to understand why many Kubernetes teams struggle to get their initial platforms established quickly. Adding a cloud native tool to your existing Kubernetes infrastructure couldn’t be easier, but starting from scratch can be a lot to take on. &lt;br&gt;
At &lt;a href="http://kubefirst.io"&gt;Kubefirst&lt;/a&gt;, we’ve spent years helping startups get started with Kubernetes, and wanted to share our roadmap on how to get started when adopting Kubernetes for the first time.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1 - Decide on your git provider‍
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---HHjjkZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5g0eon2q2l126if91a6h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---HHjjkZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5g0eon2q2l126if91a6h.png" alt="Image description" width="880" height="359"&gt;&lt;/a&gt;&lt;br&gt;
Your git provider is the home for your source code, and the starting point for any continuous integration and delivery you’ll have in your future. Typically, this boils down to a choice between GitHub and GitLab. Choosing the right one for your organization depends on what kind of source code you have and who needs to see it. GitHub tends to be the go-to git provider for open source repositories while self-hosted GitLab tends to be the go-to git provider for private source repositories and ultimate control of your Git source code uptime and access. &lt;br&gt;
GitHub is a SaaS offering, meaning they host your public or private repositories in their cloud instead of yours. GitLab also has SaaS, but a lot of their popularity spawns from their open source offering with the ability to self-host your git server and repositories in your own cluster.&lt;br&gt;
These are both great products - one or the other will fit your needs quite nicely.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2 - Automate Your Infrastructure as Code
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V4A7S4sO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/05dvt0s5c94ojvi2kut2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V4A7S4sO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/05dvt0s5c94ojvi2kut2.png" alt="Image description" width="880" height="316"&gt;&lt;/a&gt;&lt;br&gt;
Infrastructure as Code (IaC) is the foundation of any modern organization’s cloud infrastructure. IaC is a way of describing the cloud resources that you need in simple declarative code. Establishing your infrastructure as code means it will be clearly defined, versioned in git, and repeatable for a good disaster recovery posture.Each public cloud has its own proprietary IaC implementation like AWS CloudFormation or GCP Deployment Manager, but you should avoid these. There are great IaC tools, such as Terraform, Pulumi, and Crossplane that don’t lock you in with a cloud provider. Terraform is currently the industry standard for IaC and &lt;a href="https://registry.terraform.io/browse/providers"&gt;supports a lot of technologies&lt;/a&gt;. When using Terraform, don’t treat it like a command line tool, treat it more like a managed control plane by automating it with a tool like Atlantis, which gives Terraform the superpower of being fully auditable and integrated with your engineers’ pull request workflows in their git provider.&lt;br&gt;
Other technologies to consider are &lt;a href="https://www.pulumi.com/"&gt;Pulumi&lt;/a&gt; which allows users to code their infrastructure in more popular programming languages, or &lt;a href="https://crossplane.io/"&gt;Crossplane&lt;/a&gt;, which allows users to code their infrastructure in YAML. Crossplane is an up-and-coming technology in our view that works especially well with the GitOps discipline.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3 - Choose Your GitOps Driver
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cckQZGli--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zmdf9z6mcym5kzc4p17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cckQZGli--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zmdf9z6mcym5kzc4p17.png" alt="Image description" width="880" height="347"&gt;&lt;/a&gt;&lt;br&gt;
GitOps is a discipline that has gotten a lot of attention over the last couple of years and proponents make a compelling argument that it is the right way to manage Kubernetes resources.&lt;br&gt;
GitOps marries your git provider with your Kubernetes engine and serves as an application control plane for your desired state. If set up correctly, a GitOps workflow can provide a complete registry of all Kubernetes resources across your organization in a single git repository.The GitOps approach provides substantial value in securing your clusters, managing your application inventory, scaling your applications across clusters, all while avoiding a bunch of software delivery scripting that would otherwise be needed in your continuous integration layer.&lt;br&gt;
Choosing the right GitOps driver for you is one of your most important architectural decisions when designing your new Kubernetes platform. &lt;a href="https://opengitops.dev/"&gt;OpenGitOps&lt;/a&gt; offers a &lt;a href="https://github.com/open-gitops/documents/blob/v0.1.0/PRINCIPLES.md"&gt;set of principles&lt;/a&gt; that define the GitOps discipline in a vendor-agnostic way to help guide you through this decision making process. The ultimate goal is to have a single GitOps repository be the exclusive mechanism for how anything gets established across your entire system in an automated fashion.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4 - Commit to a Secrets Manager
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-QvL0cm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5kpykg36zrjfzbez0rnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-QvL0cm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5kpykg36zrjfzbez0rnx.png" alt="Image description" width="880" height="423"&gt;&lt;/a&gt;&lt;br&gt;
On the surface, secrets management seems like it’s something easy to understand and a problem that’s simple to solve. Your application needs a password for a database connection, and as long as you can store that secret someplace secure, good enough right? The problem is that secrets are everywhere and need to be revocable and replaceable. There are application secrets, system secrets, CI secrets, cloud access secrets, leasable secrets, certs, and SSH keys, and they all have their own lifecycles and access requirements. Establishing a secrets manager too late in a project can be a major producer of technical debt, as secrets will scatter through your cloud provider’s secret system, your serverless system, your CI tools, and your engineers’ localhosts in a way that makes credential leaks easy and rotation difficult.If you get your secrets manager in as a priority, your organization can establish a healthy secrets rotation policy up front. &lt;a href="https://www.vaultproject.io/"&gt;Hashicorp Vault&lt;/a&gt; is the best in class open source secrets manager and it runs extremely well in Kubernetes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 5 - Set up an Artifact Repository
&lt;/h1&gt;

&lt;p&gt;This step is a detail more likely to fluctuate from shop to shop, in part because you have to define the types of artifacts that your codebase will produce. In a cloud native environment, this will be, at minimum, the container registry. If you're also packaging your Kubernetes applications with helm, you’ll also need a chart repository. If you plan to have language-specific libraries like npm packages for Nodejs, you’ll need a place to store those packages as well.&lt;br&gt;
In the olden days of 2020, DockerHub was the go-to for container storage, but with their recent decisions to rate limit image pulls, many organizations are starting to host their containers either in their own cloud provider’s registry, or in an artifact repository that they host themselves in a tool like Harbor, Artifactory, Nexus, or in git providers GitHub or GitLab which also have certain package artifact repositories built in.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6 - Build Out a Continuous Integration Pipeline
&lt;/h1&gt;

&lt;p&gt;Continuous integration is the cornerstone of DevOps. CI is the spot where application source code ends and its packaging, publishing, testing, and promotion through environments begins.&lt;br&gt;
There are many great CI tools of old and new. In our view, you should look into a few different technologies:Kubernetes-native, git agnostic options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://tekton.dev/"&gt;Tekton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://argoproj.github.io/argo-workflows/"&gt;Argo Workflows&lt;/a&gt; Self-hosted, git provider specific options:  &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.gitlab.com/runner/"&gt;GitLab Runner&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/actions-runner-controller/actions-runner-controller"&gt;GitHub Actions Runner Controller&lt;/a&gt; 
# Step 7 - Establish Authentication and Authorization
As your project grows, authentication and authorization will require constant refinement and reassessment on a journey towards implementing the &lt;a href="https://www.cyberark.com/what-is/least-privilege/"&gt;principle of least privilege&lt;/a&gt;. If you’re starting a new project, it is critical to start with some separation of duties between your team members. Roles should be established in your identity provider, your cloud, and your Kubernetes cluster. These roles should be leveraged by your platform tooling through configuration with your OIDC provider.To manage the assignment of these roles, many organizations will implement a user module in their infrastructure as code. Doing so affords you a consistent, transparent, and secure mechanism for controlling who has access to what. Engineering onboarding and offboarding becomes a matter of a simple Terraform pull request.
# Step 8 - Wire Up Your Cluster to Enable Observability
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PHp2mcPc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zvawgg3irpebs8y51ki.png" alt="Image description" width="880" height="451"&gt;
There are many open source options to build an observability platform, but it is tough to do it better or more affordably than a SaaS observability tool like &lt;a href="https://www.datadoghq.com/"&gt;Datadog&lt;/a&gt;. If running your observability in Datadog is within your budget, you should strongly consider doing it while you’re discovering and exploring your new cloud native needs. Datadog allows you to install an agent into your cluster that will enable application logging, container resource utilization, tracing, dashboarding, alerting, and an endless sea of evolving features that you just keep getting surprised by. Easy to use - single pane of glass - lets teams get good at Kubernetes fast.
Self hosting highly available observability throughout your infrastructure and applications is a complex undertaking where you're committing engineering hours to keep your observability tuned and monitored with well maintained log indices and good expiration policies. As you get further down the road of your cloud native journey, you’ll discover that there are indeed cloud native tools to solve each of the problems that datadog solves - &lt;a href="https://prometheus.io/"&gt;Prometheus&lt;/a&gt; for metrics, &lt;a href="https://grafana.com/"&gt;Grafana&lt;/a&gt; for dashboarding, &lt;a href="https://www.jaegertracing.io/"&gt;Jaeger&lt;/a&gt; for tracing and application performance monitoring, and many different options for logging. If the cost savings are compelling enough, transitioning to a self-hosted observability ecosystem is a great year two or three goal in your cloud native journey.
# The 1-Step Alternative
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FRnlHMBF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijnwda268e6t0b7y1o3r.png" alt="Image description" width="880" height="701"&gt;
At &lt;a href="https://docs.kubefirst.io"&gt;Kubefirst&lt;/a&gt;, we’ve spent years refining the process of provisioning platforms from scratch with the most popular cloud native tools. Now, with our open source &lt;code&gt;kubefirst&lt;/code&gt; CLI you can have all these pieces automated, integrated, and self hosted in your cloud in under 25 minutes. You can remove any of our pieces and replace them with yours, or just expand from here and flourish in your new instant cloud native ecosystem.
Whether you decide to build the platform yourself or not, these are the technologies that the Kubefirst community has adopted. Our users will be using these same tools this same way. If you think that’s valuable to your organization, we’d love for you to &lt;a href="https://bit.ly/kubefirst-slack"&gt;join our community&lt;/a&gt;. If you want to keep tabs on our project, throw us a &lt;a href="https://github.com/kubefirst/kubefirst"&gt;Github star&lt;/a&gt; for our open source effort.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
