<?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>DEV Community: Toon Sevrin</title>
    <description>The latest articles on DEV Community by Toon Sevrin (@toonsevrin).</description>
    <link>https://dev.to/toonsevrin</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F61692%2Fcf3315c4-ea8e-4f7f-851d-a78140ca52cc.jpeg</url>
      <title>DEV Community: Toon Sevrin</title>
      <link>https://dev.to/toonsevrin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toonsevrin"/>
    <language>en</language>
    <item>
      <title>Kuberty, kubernetes testing for service clusters</title>
      <dc:creator>Toon Sevrin</dc:creator>
      <pubDate>Fri, 22 May 2020 13:48:07 +0000</pubDate>
      <link>https://dev.to/toonsevrin/kuberty-kubernetes-testing-for-service-clusters-2b0k</link>
      <guid>https://dev.to/toonsevrin/kuberty-kubernetes-testing-for-service-clusters-2b0k</guid>
      <description>&lt;h2&gt;
  
  
  My Final Project
&lt;/h2&gt;

&lt;p&gt;When you start getting into services, you quickly discover how trivial unit tests and integration tests are. Small codebases are easy to perfect and are thus easy to test.&lt;/p&gt;

&lt;p&gt;The hard truth is, most production errors no longer result from the codebase itself. These errors result from the way the service interacts with it's environment, an environment you've either completely mocked out, or ran in a fashion that does not resemble production.&lt;/p&gt;

&lt;p&gt;Kuberty is a thought experiment. It wonders if there is a way to add a small definition file to each of your services containing its dependencies and most importantly its tests. The kuberty controller can then use this definition to deploy the service and all of its dependencies (recursively) and execute all of your tests this way.&lt;/p&gt;

&lt;p&gt;Taking this one step further, the controller then resets the databases (and other state) each time a test is ran, making tests independent from eachother.&lt;/p&gt;

&lt;p&gt;This is the future of testing on kubernetes. This is Kuberty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;To learn more about Kuberty take a look at the &lt;a href="https://github.com/kuberty/kuberty"&gt;README.md&lt;/a&gt;.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/kuberty"&gt;
        kuberty
      &lt;/a&gt; / &lt;a href="https://github.com/kuberty/kuberty"&gt;
        kuberty
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Kubernetes native microservice testing framework.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;h1&gt;
Kuberty&lt;/h1&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/kuberty/kuberty/raw/master/logos/logo.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ec7plbVN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/kuberty/kuberty/raw/master/logos/logo.png" width="100"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kubernetes native testing framework for microservices. Write your tests in any language, declare your service dependencies and Kuberty will build a test cluster and test your service for you.&lt;/p&gt;
&lt;h2&gt;
Documentation&lt;/h2&gt;
&lt;p&gt;To learn more about Kuberty go to &lt;a href="https://wiki.tcbv.be/en/ict/kubernetes/kuberty" rel="nofollow"&gt;our documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Install the Kuberty cli locally:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell"&gt;&lt;pre&gt;wget https://github.com/kuberty/kuberty/releases/...  &lt;span class="pl-k"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod +x kuberty  &lt;span class="pl-k"&gt;&amp;amp;&amp;amp;&lt;/span&gt; mv kuberty /bin/bash/kuberty&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Installation instructions for &lt;a href="https://raw.githubusercontent.com/kuberty/kuberty/master//docs/installation/windows"&gt;Windows&lt;/a&gt;, &lt;a href="https://raw.githubusercontent.com/kuberty/kuberty/master//docs/installation/mac"&gt;Mac&lt;/a&gt; and &lt;a href="https://raw.githubusercontent.com/kuberty/kuberty/master//docs/installation/docker"&gt;Docker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install Kuberty on your cluster:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell"&gt;&lt;pre&gt;kubectl apply -f https://raw.githubusercontent.com/kuberty/kuberty/master/deploy/install-kuberty.yaml&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
Custom Resource Definitions&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Applications&lt;/strong&gt; specifies your application and it's dependencies&lt;/p&gt;
&lt;div class="highlight highlight-source-yaml"&gt;&lt;pre&gt;&lt;span class="pl-ent"&gt;apiVersion&lt;/span&gt;: &lt;span class="pl-s"&gt;kuberty.io/v1&lt;/span&gt;
&lt;span class="pl-ent"&gt;kind&lt;/span&gt;: &lt;span class="pl-s"&gt;Application&lt;/span&gt;
&lt;span class="pl-ent"&gt;metadata&lt;/span&gt;
  &lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;auth-service-test-deployment-{{ .Values.test_id }}&lt;/span&gt;
  &lt;span class="pl-ent"&gt;namespace&lt;/span&gt;: &lt;span class="pl-s"&gt;kuberty&lt;/span&gt;
  &lt;span class="pl-ent"&gt;labels&lt;/span&gt;
    &lt;span class="pl-ent"&gt;app&lt;/span&gt;: &lt;span class="pl-s"&gt;auth-service&lt;/span&gt;
&lt;span class="pl-ent"&gt;spec&lt;/span&gt;
  &lt;span class="pl-ent"&gt;app&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;chart&lt;/span&gt;: &lt;span class="pl-s"&gt;3000 bytes&lt;/span&gt;
    &lt;span class="pl-ent"&gt;path&lt;/span&gt;: &lt;span class="pl-s"&gt;helm&lt;/span&gt;
  &lt;span class="pl-ent"&gt;database&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;type&lt;/span&gt;: &lt;span class="pl-s"&gt;redis&lt;/span&gt;
    &lt;span class="pl-ent"&gt;service&lt;/span&gt;:
      &lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;redis&lt;/span&gt;
      &lt;span class="pl-ent"&gt;namespace&lt;/span&gt;: &lt;span class="pl-s"&gt;auth-service&lt;/span&gt;
  &lt;span class="pl-ent"&gt;dependencies&lt;/span&gt;:
  - &lt;span class="pl-ent"&gt;app&lt;/span&gt;: &lt;span class="pl-s"&gt;count-service&lt;/span&gt;
    &lt;span class="pl-ent"&gt;repository&lt;/span&gt;: &lt;span class="pl-s"&gt;https://github.com/kuberty/example-count-service.git&lt;/span&gt;
    &lt;span class="pl-ent"&gt;revision&lt;/span&gt;: &lt;span class="pl-s"&gt;v0.0.1&lt;/span&gt;
    &lt;span class="pl-ent"&gt;path&lt;/span&gt;: &lt;span class="pl-s"&gt;helm&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Files&lt;/strong&gt; define the artifacts for…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/kuberty/kuberty"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>2020devgrad</category>
      <category>octograd2020</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
