<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Continuous-Delivery on Janik von Rotz</title>
    <link>https://janikvonrotz.ch/categories/continuous-delivery/</link>
    <description>Recent content in Continuous-Delivery on Janik von Rotz</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 02 Jan 2026 11:38:38 +0100</lastBuildDate>
    <atom:link href="https://janikvonrotz.ch/categories/continuous-delivery/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Forgejo action to update Kubernetes deployment</title>
      <link>https://janikvonrotz.ch/2026/01/02/forgejo-action-to-update-kubernetes-deployment/</link>
      <pubDate>Fri, 02 Jan 2026 11:38:38 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2026/01/02/forgejo-action-to-update-kubernetes-deployment/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://janikvonrotz.ch/2025/12/31/deploy-forgejo-runner-to-kubernetes-cluster/&#34;&gt;last post&lt;/a&gt; I showed how you can build a Docker image in a Kubernetes cluster using with Forgejo runner. One missing step was the actual deployment of the new Docker image.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible: Combine group and host vars</title>
      <link>https://janikvonrotz.ch/2021/10/25/ansible-combine-group-and-host-vars/</link>
      <pubDate>Mon, 25 Oct 2021 08:13:01 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2021/10/25/ansible-combine-group-and-host-vars/</guid>
      <description>&lt;p&gt;In Ansible the configuration parameters are usually separated into two categories: host and group vars. As their names say these are variables that are either applied to a specific host or a group of hosts. And here is already an edge case. What if we want to configure a variable for group, but then also give the possibility to modify for a specific host. Read on to see my solution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage Vercel DNS records with Ansible</title>
      <link>https://janikvonrotz.ch/2021/02/11/manage-vercel-dns-records-with-ansible/</link>
      <pubDate>Thu, 11 Feb 2021 11:41:16 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2021/02/11/manage-vercel-dns-records-with-ansible/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://www.mint-system.ch/&#34;&gt;Mint System&lt;/a&gt; we are using Ansible extensively to configure our infrastructure and services. From setting up new hosts up to deploying a customer specific customization for an application, all is managed by Ansible. Only one piece was missing. Until recently we could not update DNS records automatically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build multiple Docker image from Yarn workspace packages</title>
      <link>https://janikvonrotz.ch/2019/12/13/build-multiple-docker-images-from-yarn-workspace-packages/</link>
      <pubDate>Fri, 13 Dec 2019 18:17:28 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2019/12/13/build-multiple-docker-images-from-yarn-workspace-packages/</guid>
      <description>&lt;p&gt;If you decide to manage your node application repository as a monorepo you sure heard about &lt;a href=&#34;https://yarnpkg.com/lang/en/docs/workspaces/&#34;&gt;Yarn workspaces&lt;/a&gt;. Yarn has an out-of-the-box support for managing multiple packages in a single codebase. Using yarn workspaces package dependencies can be centralized and packages can reference each other. Tasks can be executed for all packages at once. It solves various build related problems for a monorepo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploy ELK stack with Ansible and Docker</title>
      <link>https://janikvonrotz.ch/2019/10/28/deploy-elk-stack-with-ansible-and-docker/</link>
      <pubDate>Mon, 28 Oct 2019 17:18:48 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2019/10/28/deploy-elk-stack-with-ansible-and-docker/</guid>
      <description>&lt;p&gt;This post was first published at &lt;a href=&#34;https://abilium.com/blog/&#34;&gt;Abilium - Blog&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Recently, we decided to setup a new monitoring service. We opted for the &lt;a href=&#34;https://www.elastic.co/de/what-is/elk-stack&#34;&gt;ELK stack&lt;/a&gt;. The ELK stack constists of three products:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup GoCD environment using docker</title>
      <link>https://janikvonrotz.ch/2018/11/06/setup-gocd-environment-using-docker/</link>
      <pubDate>Tue, 06 Nov 2018 12:11:01 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2018/11/06/setup-gocd-environment-using-docker/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://www.adnovum.ch/&#34;&gt;AdNovum&lt;/a&gt; we are running &lt;a href=&#34;https://www.gocd.org/&#34;&gt;GoCD&lt;/a&gt; for automating the continuous delivery (CD) of our software products. GoCD has become the de facto standard for running CD pipelines.&lt;/p&gt;&#xA;&lt;p&gt;In this post I will give you a short introduction into GoCD using &lt;a href=&#34;https://www.docker.com/&#34;&gt;docker&lt;/a&gt;. We are going to setup a GoCD environment consisting of a server, an agent and deployable material. Further we are going to configure a deployment pipeline and build an node.js application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Profiling Ansible roles and tasks</title>
      <link>https://janikvonrotz.ch/2018/03/07/profiling-ansible-roles-and-tasks/</link>
      <pubDate>Wed, 07 Mar 2018 13:11:25 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2018/03/07/profiling-ansible-roles-and-tasks/</guid>
      <description>&lt;p&gt;Performance is critical when deploying an environment with Ansible. By default Ansible does not tell how much time elapsed for specific role or task. However, this information would be critical to identify inefficient tasks. Luckily Ansible offers an interface for callback plugins. With the help of a callback plugin one can hook into the role or task execution call. In this post I&amp;rsquo;ll show you how to configure the callback plugins for profiling roles and tasks. It is quite easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with Ansible - Cleanup tasks</title>
      <link>https://janikvonrotz.ch/2018/02/26/working-with-ansible-cleanup-tasks/</link>
      <pubDate>Mon, 26 Feb 2018 11:30:13 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2018/02/26/working-with-ansible-cleanup-tasks/</guid>
      <description>&lt;p&gt;My current project is heavily based on &lt;a href=&#34;https://www.ansible.com/&#34;&gt;Ansible&lt;/a&gt;. We use Ansible to deploy into different environments and domains. The configuration has become quite complex. That is why we need to cleanup a server from time to time. Especially when one has to upgrade services on a server and requires to get rid of the old services first. In this post I would like to show you, how we define and run Ansible cleanup tasks in our project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vagrant - portable development environment</title>
      <link>https://janikvonrotz.ch/2013/07/02/vagrant-portable-development-environment/</link>
      <pubDate>Tue, 02 Jul 2013 11:54:35 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/07/02/vagrant-portable-development-environment/</guid>
      <description>&lt;p&gt;Today almost every coder uses git or another vcs and a related service like github for code hosting.&lt;/p&gt;&#xA;&lt;p&gt;As a front end designer twitters bower is the right tool to manage your libary dependencies.&lt;/p&gt;&#xA;&lt;p&gt;And for the backend developer the npm package manager is always on board.&lt;/p&gt;&#xA;&lt;p&gt;Those tools have changed the way of developing websites and webapplication.&lt;/p&gt;&#xA;&lt;p&gt;They&amp;rsquo;ve increased productivity and the flexibilty for your application.&lt;/p&gt;&#xA;&lt;p&gt;So far, there&amp;rsquo;s only one part lagging behind: It&amp;rsquo;s the development environment.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
