<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Chris Sanders</title>
    <description>A technology blog</description>
    <link>http://chris-sanders.github.io</link>
    <atom:link href="http://chris-sanders.github.io/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Easier CI with Troubleshoot</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/troubleshoot-logo.jpeg"/>]]>
          Visibility built in - 
          Debugging failures in a CI pipeline can often be more difficult than we would like. Tests can fail for unexpected reasons and we’re often left at the mercy of the error logging of the test which points you in the right direction but doesn’t enable quick investigation. Frequently developers are...
        </description>
        <pubDate>Thu, 23 Mar 2023 18:30:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2023-03-23-troubleshoot-ci/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2023-03-23-troubleshoot-ci/</guid>
      </item>
    
      <item>
        <title>Authz with Keycloak</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/auth/apisix.jpg"/>]]>
          Hard to find open source features - 
          Controlling access to services in Kubernetes is not as straight forward as you would think. While the use case is common it is regularly deemed an enterprise features and implemented behind paid plugins and closed source development. This post will give a brief overview of Authorization, provide some resources to...
        </description>
        <pubDate>Sat, 10 Sep 2022 18:30:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2022-09-10-apisix-authz/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2022-09-10-apisix-authz/</guid>
      </item>
    
      <item>
        <title>YAVC</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/vim/Vimlogo.png"/>]]>
          Yet anoter vim config - 
          I’ve recently spent a bit of time looking at ways to improve my python development experience. I’ve been a long time vim user and wondered if an IDE like the popular pycharm from JetBrains was worth a try. I have some co-workers that use it and I figured it was...
        </description>
        <pubDate>Tue, 20 Apr 2021 18:30:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2021-04-20-language-servers/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2021-04-20-language-servers/</guid>
      </item>
    
      <item>
        <title>Gitops for K8s</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/kubernetes/argo-octo2.png"/>]]>
          Getting off the ground - 
          Argo is a set of open source Kubernetes native tools. I’ve been intending to use it and after getting started with Argocd, I’m switching all of my deployments to Argo. This post will show how you can get started with Arogcd, and why I’m switching to it for my application...
        </description>
        <pubDate>Wed, 07 Oct 2020 00:00:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2020-10-07-argo-in-argo/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2020-10-07-argo-in-argo/</guid>
      </item>
    
      <item>
        <title>Carvel with Ansible</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/kubernetes/gitops.png"/>]]>
          A match made of necessity - 
          Carvel (formerly k14s) combined with Ansible to orchestrate a git-ops workflow has after a lot of testing become my preferred k8s deployment technique. This post will cover how to use the k14 Ansible role as part of a configuration management and control process. I’ll detail the process to configure and...
        </description>
        <pubDate>Sat, 12 Sep 2020 12:00:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2020-09-12-carvel-ansible/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2020-09-12-carvel-ansible/</guid>
      </item>
    
      <item>
        <title>Deploying K8s applications</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/kubernetes/kubernetes.png"/>]]>
          How I'll be skinning the cat - 
          Kubernetes is well established and the variety of tools to work with it can be overwhelming. This post will provide an overview of how I’m planning to deploy workloads on K8s for my home lab. I’ll review the primary tool set that I’ve found the most useful, explain what I...
        </description>
        <pubDate>Tue, 04 Aug 2020 18:30:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2020-08-04-k8s-deployment-tools/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2020-08-04-k8s-deployment-tools/</guid>
      </item>
    
      <item>
        <title>Deploying Foundry Virtual Tabletop</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/foundry/d20.jpg"/>]]>
          Gaming at a distance - 
          With the world dealing with COVID-19 by social distancing many gaming groups are left looking for ways to game while keeping their distance. This post will provide an overview for installing Foundry Virtual Tabletop, a software specifically designed to support playing table top games remotely with a group. I found...
        </description>
        <pubDate>Mon, 20 Apr 2020 18:30:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2020-04-20-foundry/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2020-04-20-foundry/</guid>
      </item>
    
      <item>
        <title>Bundle Weechat</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/pirate-charmers/weechat-logo.png"/>]]>
          IRC made easy - 
          Juju bundles define configuration and relations of a group of software. In this post I’ll review a bundle that deploys a secure IRC client and VPN. Combining multiple charms in a bundle make this setup very straight forward. By the end we’ll have a persistent IRC bouncer that can run...
        </description>
        <pubDate>Fri, 15 Feb 2019 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2019-02-15-bundle-weechat/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2019-02-15-bundle-weechat/</guid>
      </item>
    
      <item>
        <title>Pytest Template</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/design-blueprint.png"/>]]>
          Design details - 
          This post builds on a previous post to go into details of the python-pytest charm template. In this post I will review the layout of the charm and how to write/expand the testing for your charm. Writing code with testing in mind from the start can make testing significantly easier....
        </description>
        <pubDate>Thu, 07 Feb 2019 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2019-02-07-charm-template-pytest/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2019-02-07-charm-template-pytest/</guid>
      </item>
    
      <item>
        <title>Charm Create</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/board-cubes.png"/>]]>
          Where to start - 
          Charms are very flexible and can be written several ways and even in different languages. Having good template limits those options but gets you started faster. This post will cover a template we’ll be using for the pirate-charmers charms that get you started with unit and functional testing out of...
        </description>
        <pubDate>Mon, 28 Jan 2019 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2019-01-28-charm-create/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2019-01-28-charm-create/</guid>
      </item>
    
      <item>
        <title>Pirate-charmers</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/pirate-charmers/pirate-charmers.png"/>]]>
          Setting sail - 
          Several years ago I set down a path to move my personal infrastructure into juju control. Along the way I’ve written several charms and blog posts about the things I’ve learned and developed. Today I’m happy to announce I’m ending my solo effort because I am being joined by James...
        </description>
        <pubDate>Sat, 19 Jan 2019 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2019-01-19-pirate-charmers/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2019-01-19-pirate-charmers/</guid>
      </item>
    
      <item>
        <title>Ceph monitoring</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/monitoring/grafana-prometheus.png"/>]]>
          A problem clearly stated is a problem half solved - 
          Many technology projects stop at implementation and configuration. However, the ongoing care and feeding of that solution is also a very important and often overlooked aspect. This is especially true in the hobby and home lab environment. This post will cover how you can leverage juju and charms to easily...
        </description>
        <pubDate>Sun, 09 Sep 2018 15:00:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2018-09-09-ceph-monitoring/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-09-09-ceph-monitoring/</guid>
      </item>
    
      <item>
        <title>Installing ceph-osd in a container</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/lxd_logo.png"/>]]>
          Thinking inside the box - 
          Containers are a great tool for delivering and operating software. There are some situations that are difficult to run in containers including applications which require access to block devices. LXD provides a way to mount block devices into a container allowing applications like ceph-osd to run inside a LXD container....
        </description>
        <pubDate>Fri, 11 May 2018 15:00:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2018-05-11-block-device-in-containers/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-05-11-block-device-in-containers/</guid>
      </item>
    
      <item>
        <title>Benchmarking Ceph on commodity hardware</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/fio/narrow-road.png"/>]]>
          That'll do pig, that'll do - 
          Benchmarking is notoriously hard to do correctly, I’m going to provide the raw results of many hours of benchmarks. I’ll draw some conclusions specifically comparing performance on my hardware, hopefully it provides some insight for single node Ceph on commodity hardware for anyone else considering this setup. Specifically I’m looking...
        </description>
        <pubDate>Fri, 16 Mar 2018 15:00:00 -0500</pubDate>
        <link>http://chris-sanders.github.io/2018-03-16-benchmark-commodity-ceph/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-03-16-benchmark-commodity-ceph/</guid>
      </item>
    
      <item>
        <title>Bundle deploy single node ceph</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/ceph_logo.png"/>]]>
          Living on the edge - 
          I’m going to show you how to deploy a single node Ceph with a juju bundle. The charms included in this bundle are all currently a work in progress and should only be used for testing purposes. I expect changes to be made as I’m getting them merged into their...
        </description>
        <pubDate>Mon, 12 Feb 2018 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2018-02-12-ceph-dev-bundle/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-02-12-ceph-dev-bundle/</guid>
      </item>
    
      <item>
        <title>MAAS for the home</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/maas-logo.svg"/>]]>
          The unsupported configuration - 
          MAAS is designed to run in a data center where it expects to have control of DNS and DHCP. The use of an external DHCP server is listed as ‘may work but not supported’ in the MAAS documentation. This guide will describe how I configured MAAS to coexist with a...
        </description>
        <pubDate>Fri, 02 Feb 2018 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2018-02-02-maas-for-the-home/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-02-02-maas-for-the-home/</guid>
      </item>
    
      <item>
        <title>Deploying Single node ceph</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/ceph_logo.png"/>]]>
          A managed approach - 
          If you’re going to be running Ceph you’ll quickly find that you do not want to deploy it by hand. There are several daemons involved and even on a single node the processes isn’t as easy as just installing a few packages. In some ways installing on a single node...
        </description>
        <pubDate>Wed, 31 Jan 2018 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2018-01-31-deploying-single-node-ceph/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-01-31-deploying-single-node-ceph/</guid>
      </item>
    
      <item>
        <title>Single node ceph</title>
        <description>
	  <![CDATA[<img src="http://chris-sanders.github.io/img/ceph_logo.png"/>]]>
          Probably a terrible idea - 
          Make no mistake about it, running ceph on a single node is a strange decision. This is a brief overview of why I’m interested in doing it. I’ve been running Unraid since some time in 2008 as a home media server/NAS. At that time, Unraid was a fairly minimal storage...
        </description>
        <pubDate>Mon, 29 Jan 2018 14:00:00 -0600</pubDate>
        <link>http://chris-sanders.github.io/2018-01-29-single-node-ceph/</link>
        <guid isPermaLink="true">http://chris-sanders.github.io/2018-01-29-single-node-ceph/</guid>
      </item>
    
  </channel>
</rss>
