<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: olblak</title><link>https://news.ycombinator.com/user?id=olblak</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 05 May 2026 08:26:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=olblak" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by olblak in "K3k: Kubernetes in Kubernetes"]]></title><description><![CDATA[
<p>Disclosure as I am working for SUSE on Rancher.<p>It's Kubernetes in Kubernetes and a reference in k3s which is also a project we are heavily contributing to, at SUSE.</p>
]]></description><pubDate>Sat, 02 May 2026 07:48:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47984329</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=47984329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47984329</guid></item><item><title><![CDATA[New comment by olblak in "Infrastructure-As-Code drift resolution using updatecli"]]></title><description><![CDATA[
<p>Thanks for sharing</p>
]]></description><pubDate>Fri, 11 Apr 2025 15:33:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43655028</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=43655028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43655028</guid></item><item><title><![CDATA[Show HN: Welcome Releasepost]]></title><description><![CDATA[
<p>If you are a developer maintaining documentation website with tools like HUGO  or Docusaurus , I am curious to know how much of interest you have in content update automation and how you handle it.<p>Meanwhile I am sharing a little experimentation I did to increase release note visibility.<p>Food for thought on <a href="https://www.updatecli.io/blog/welcome-releasepost/" rel="nofollow">https://www.updatecli.io/blog/welcome-releasepost/</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40454888">https://news.ycombinator.com/item?id=40454888</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 23 May 2024 14:04:17 +0000</pubDate><link>https://www.updatecli.io/blog/welcome-releasepost/</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=40454888</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40454888</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Updatecli focus on dependencies which can't be easily identified based on the context.
Hence the need to describe how to retrieve an information and then what to do after with it.<p>And then once you have the latest version, you also have the challenge to know how to apply that update.<p>More I dig in the dependency management topic, more I realize that we still have long way to go.</p>
]]></description><pubDate>Fri, 11 Feb 2022 08:42:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=30298833</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30298833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30298833</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>> I like the idea of automatic proposed changes triggered by external events, but I'm not sure a monolithic tool with plugins is the best way of going about it. The Unix way to solve this problem would be to decompose your program into a couple of different programs that just do one thing, with flexible inputs and outputs.<p>Waow, thanks a lot for you feedback, especially to take the time to write this down. 
I'll do my best to answer as you cover different topics which have been scratching my head since the beginning of the project.
But first keep in mind that I had a strong constrain which was my spare time :).<p>It's definitely something which I am planning to improve.<p>Currently everything is done at build time and rely on Golang interface. 
So a resource kind need to match a golang package. A package needs to implement the correct function for it to work.
for example for a "source" you need to implement the "source" function as in the following example.<p>```
func (m *Maven) Source(workingDir string) (string, error) {
   // Implement whatever you need and return the source value
   return "the source value", "an error if needed"
}
```
Like in this package <a href="https://github.com/updatecli/updatecli/tree/main/pkg/plugins/resources/maven" rel="nofollow">https://github.com/updatecli/updatecli/tree/main/pkg/plugins...</a><p>And the matching  between a package and a resource kind is done here 
<a href="https://github.com/updatecli/updatecli/blob/main/pkg/core/pipeline/resource/main.go#L39" rel="nofollow">https://github.com/updatecli/updatecli/blob/main/pkg/core/pi...</a><p>Ideally I would like it to be done at runtime similar to Terraform.<p>If needed you can still use the "shell" target but then you put a strong dependency on the tool used within your script.
Let say that your script call a python tool, then you need to be sure that both your local and ci environment have the same 
python version.
I personally consider it as a fallback when I don't have the time to implement something better.<p>Ideally I would like to be able to use resources which are very specific to environment and therefor not suitable for everybody.</p>
]]></description><pubDate>Fri, 11 Feb 2022 00:32:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=30295094</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30295094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30295094</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Kind of, the reason why it's a bit difficult to describe the project is because the different component mean different things to different people.<p>I built updatecli so I could use it to help me maintain infrastructure as code, then bit by bit, I discovered how other people were using it to solve challenges that I didn't imagine.<p>Scenario 1: <a href="https://github.com/jenkins-infra/kubernetes-management/blob/main/updatecli/updatecli.d/charts/certmanager.yaml" rel="nofollow">https://github.com/jenkins-infra/kubernetes-management/blob/...</a><p>We monitor the latest Certmanager chart version available and we bump our git repository so Helmfile can pick the latest version and update our Kubernetes clusters.
The purpose is to automate infrastructure as code.<p>Scenario 2: <a href="https://github.com/updatecli/website/blob/master/updatecli/updatecli.d/installation.yaml" rel="nofollow">https://github.com/updatecli/website/blob/master/updatecli/u...</a>
We monitor the latest Updatecli version so we can update documentation on the website
The purpose is to keep documentation up to date<p>Scenario 3: <a href="https://github.com/epinio/helm-charts/blob/main/updatecli/updatecli.d/epinio.yaml" rel="nofollow">https://github.com/epinio/helm-charts/blob/main/updatecli/up...</a>
We monitor our application so we can automatically release a new version of a helm chart
The purpose is to automate the release process.</p>
]]></description><pubDate>Thu, 10 Feb 2022 23:58:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=30294685</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30294685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30294685</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Thank you for the feedback.
So If I understand you correctly, you suggest to improve the feedback loop when writing updatecli configuration from an IDE.</p>
]]></description><pubDate>Thu, 10 Feb 2022 23:36:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=30294430</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30294430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30294430</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>I worked for 5 years at CloudBees within the community team so maintaining the infrastructure project was one the things I worked on <a href="https://GitHub.com/jenkins-infra" rel="nofollow">https://GitHub.com/jenkins-infra</a></p>
]]></description><pubDate>Thu, 10 Feb 2022 18:36:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=30290533</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30290533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30290533</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>updatecli supports both</p>
]]></description><pubDate>Thu, 10 Feb 2022 17:31:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=30289617</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30289617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30289617</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>To add on top this. I started by supporting other DSL such as Json. Then I realized it was adding burden on me in terms of documentation since people would ask me for different examples.</p>
]]></description><pubDate>Thu, 10 Feb 2022 17:22:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=30289452</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30289452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30289452</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Cluelang is a DSL which I already considered and that I like very much. It wasn't high enough in my priorities.<p>I struggled to use the HCL.<p>The DSL used by updatecli is not fixed in stone. It's just the interface exposed. 
The reality nowadays, is that YAML remains the most used DSL.</p>
]]></description><pubDate>Thu, 10 Feb 2022 17:17:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=30289359</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30289359</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30289359</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Thanks,
Feel free to open GitHub issue on <a href="https://github.com/updatecli/updatecli/issues" rel="nofollow">https://github.com/updatecli/updatecli/issues</a>  was what you were looking for. That would be very useful</p>
]]></description><pubDate>Thu, 10 Feb 2022 16:18:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=30288370</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30288370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30288370</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>You need very good tests in place to automatically change something or a lot of trust in your dependencies :P.<p>It's not the case on most of my project, so I never commit directly to the main branch, instead I commit on a temporary branch then open a PR on GitHub so we just review and merge the changes.</p>
]]></description><pubDate>Thu, 10 Feb 2022 15:39:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=30287669</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30287669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30287669</guid></item><item><title><![CDATA[New comment by olblak in "Show HN: Updatecli – What if Dependabot and Ansible had a child?"]]></title><description><![CDATA[
<p>Thank you very much. 
Major difference with dependabot is that you can use it for more use cases as you define what, how, and when something should be updated</p>
]]></description><pubDate>Thu, 10 Feb 2022 15:35:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=30287587</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30287587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30287587</guid></item><item><title><![CDATA[Show HN: Updatecli – What if Dependabot and Ansible had a child?]]></title><description><![CDATA[
<p>What if Dependabot and Ansible had a child? 
Well for me that could be Updatecli.<p>Updatecli is a project that I started to help maintain the infrastructure of the Jenkins project. I needed something flexible enough to update YAML with whatever information needed. Because let’s say it, everybody loves YAML. YAML is everywhere.<p>Run it from everywhere…<p>Updatecli is a command-line tool written in Golang and available for Windows, Linux, MacOSx, amd64, arm64, thank you Goreleaser
All of that to say that it runs from wherever CI or laptop we need.<p>As of today, Updatecli opened over 3000 Pull requests on Github, and it evolved to update automatically Dockerfile, Markdown, Helm Chart, and of course a lot of YAML for tools like Puppet, Kubernetes, or Jenkins.<p>How does it work?<p>Updatecli loads pipeline configurations from YAML(s) or Golang templates then enforce the state defined by the pipeline configuration.
A pipeline run as followed:<p>1. Clone in a temporary location any git repositories used by the pipeline.<p>2. Fetch information for every *source* defined, and then inject them as entry parameters into condition(s) and target(s).<p>3. Test that all *conditions* defined succeed otherwise abort the pipeline.<p>4. Enforce the state for every *target* defined. A state means different things depending on the resource type, more on this later.<p>5. Commit and open pull requests when needed.<p>6. Apply next pipeline<p>A Updatecli pipeline relies on resources aka “extension” aka “plugins” to adapt pipeline behavior. By combining them, we can easily automate scenarios for release workflow, GitOps, dependency management, documentation update, etc.<p>A simple scenario could be:
* Retrieve the latest Golang version
* Test that a docker image with the latest Golang version exist on Dockerhub
* If it exists, then bump the version in a YAML file and open a pull request on GitHub with the change<p>As of today, there are 9 extensions for "sources", 8 for "conditions", 6 for "targets", 2 for git repositories, and 1 for pull requests.<p>A very simple pipeline is available on 
-> <a href="https://www.updatecli.io/docs/prologue/quick-start/" rel="nofollow">https://www.updatecli.io/docs/prologue/quick-start/</a><p>For more complex pipelines, you can look for directories named “updatecli/updatecli.d” at the root of repositories on <a href="https://github.com/updatecli" rel="nofollow">https://github.com/updatecli</a> or the Jenkins infrastructure repository such as  
<a href="https://github.com/jenkins-infra/kubernetes-management/tree/main/updatecli" rel="nofollow">https://github.com/jenkins-infra/kubernetes-management/tree/...</a><p>I maintain a documentation website to document the different configuration.
It’s not perfect but it’s available on www.updatecli.io<p>What’s next?<p>Well, it depends on many things. Updatecli is since the beginning, a fun side project, I wanted to practice Golang programming while automating tedious recurring tasks. I built it in a way that I could reuse it across the different projects which I maintain. It’s rather simple to add new resources so I’ll keep adding them based on my needs, I welcome any contributions that would benefit the community.<p>More information on
<a href="https://www.updatecli.io" rel="nofollow">https://www.updatecli.io</a>
<a href="https://github.com/updatecli/updatecli" rel="nofollow">https://github.com/updatecli/updatecli</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=30286047">https://news.ycombinator.com/item?id=30286047</a></p>
<p>Points: 60</p>
<p># Comments: 33</p>
]]></description><pubDate>Thu, 10 Feb 2022 13:59:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=30286047</link><dc:creator>olblak</dc:creator><comments>https://news.ycombinator.com/item?id=30286047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30286047</guid></item></channel></rss>