All Posts
Zsh Vi Mode and Command History
I’ve been using zsh for about 15 years but despite this I’ve noticed lately I’m pretty inefficient at editing commands in particular, mostly because I don’t have a clue about emacs keybindings. I am however very familiar with vi bindings but my config was never properly setup for zsh, I couldn’t search history like I could in emacs mode and I’ve been blundering along in this state for too long. (turns out it was just because the bindkey’s were not declared after doing bindkey -v to go to vi mode, oops)
When Not to Write a Kubernetes Operator
The Kubernetes Operator Pattern has a lot of appeal and I’ve led a team that has written and maintained several over the past three years. We’ve learned a few things in the process and I wanted to write up some thoughts around when you shouldn’t be writing an operator.
Terminal users, fasd is worth learning
I spent some time recently revamping my zsh setup, something I haven’t really spent any dedicated time with since about 2006. In transitioning to oh my zsh I discovered fasd, a command line productivity booster. Essentially it tracks the files and directories you work with in your terminal, and ranks them by “frecency”, both frequency and recency. You can then reference them with short, usually single character aliases and fuzzy matching.
Examples here will assume the suggested default aliases from the github readme. A couple parts are only available with zsh, but most of fasd is perfectly usable with bash as well.
Fedora, Vagrant, Libvirt, and Functional DNS
For my work on OpenShift I wanted a way to use my local workstation as a test cluster with vms for a master and multiple nodes. Ideally it would be possible to quickly teardown and rebuild the whole cluster, but I also want reliable hostnames (and IPs) across each rebuild. This post outlines a way to do this with Fedora (25 as of writing) and Vagrant.
The key to getting Fedora configured such that the hostnames and DNS will work is this post by Dominic Cleal. Follow these steps and your vms can request any *.example.com hostname, libvirt’s DNS server will assign IPs and your host OS can resolve them as well, however they’re still not going to always map to the same IP.
Fetching The Latest Git Hash For A Branch With Ansible
I’m currently working on an Ansible role to deploy an application to OpenShift. My application template uses a BuildConfig with a dockerStrategy, so when a build is run it runs against a remote git repo and branch.
I wanted my role to ensure that the current deployed application is up to date with the git branch, so we can push changes to that branch and whenever ansible runs it will know to reprocess the template, triggering a new build and deployment. (alternatively here we could use webhooks to trigger the build for us I suspect)
tito 0.6.10
tito 0.6.10 was tagged and built this morning, brought to you almost entirely by the newest tito committer skuznets.
Changelog
- Do not undo tags when git state is dirty (skuznets@redhat.com)
- Parse options in
tito init
(skuznets@redhat.com) - Only use
rpmbuild --noclean
if it is supported (skuznets@redhat.com) - Explicitly define indicies in formatting statements (skuznets@redhat.com)
- Achieve quiet output from
rpmbuild
without passing--quiet
(skuznets@redhat.com) - Update the MANIFEST.in (skuznets@redhat.com)
- Correctly pass verbosity options through the builder CLI (skuznets@redhat.com)
- Use correct print-formatting directive in debugging (skuznets@redhat.com)
- Use
.format()
string formatting correctly in Builder (skuznets@redhat.com) - Refactor
rpmbuild
invocation for readability (skuznets@redhat.com) - Added
--quiet
and--verbose
totito build
(skuznets@redhat.com) - Add a Travis CI manifest (skuznets@redhat.com)
- Only flush output stream if flushing is supported (skuznets@redhat.com)
- Added support for choosing platforms for tests (skuznets@redhat.com)
- Refactored version->tag mapping logic in Tagger (skuznets@redhat.com)
- Improved debugging for RPM build step (skuznets@redhat.com)
- Print command debugging information only once (skuznets@redhat.com)
- Flush output buffers (skuznets@redhat.com)
- Document
tito tag --use-release
in the manpage (skuznets@redhat.com) - Added an option to not escalate privileges on
tito build --install
(skuznets@redhat.com) - Factor out the version->tag mapping in the Builder (skuznets@redhat.com)
- Collapse tagger class selection logic (skuznets@redhat.com)
- Rename
globalconfig
section tobuildconfig
in README (skuznets@redhat.com) - fixes #29 - remove –list-tags and –only-tags (jmrodri@gmail.com)
- 253 - print cmd info when –debug is supplied (jmrodri@gmail.com)
- Work around
dnf
issues and install builddep for Rawhide (skuznets@redhat.com)
Additionally thanks to Steve, we now have travis running our slightly neglected multi-platform docker test suite against master and all PRs.
tito 0.6.9
I’ve just pushed a release of tito 0.6.9 with the following changes:
- Simplified version and release update logic (skuznets@redhat.com)
- Added
--use-release
flag fortito tag
(skuznets@redhat.com) - Fix typos/errors in man pages (lsedlar@redhat.com)
- Explain how automatic tagging was done (msuchy@redhat.com)
- Add support for bumping version for Cargo projects (sehnoutka.martin@gmail.com)
Right now this is available in my Copr repo, and builds are on their way for Fedora and EPEL.
My thanks to all who contributed patches!