Misc. projects and updates


I have a few smaller projects that I never blogged about and now might be a good time.

Presentation toolkit

I like Markdown and Vim, I don't like PowerPoint. On enough occasions I was asked to present and I built a workflow to make my life easier. For that I have a container image with all of the tools that I require. There's an example presentation in that repo and there's also a GitLab CI template for those using GitLab and wish to integrate it in their pipeline. For me, creating presentations in Markdown and DOT is much faster and I find the results (especially when dealing with code) much nicer.

CloudWatch logs container image

When I started working with AWS ECS I had trouble debugging deployment issues. The logs in the ECS console were not complete and the container logs didn't hold the answers either. After a few times I had to login to EC2 instances and tail the ECS agent logs, I decided that sending those to CloudWatch logs is needed to better deal with such issues. I created another container image that has the CloudWatch plugin for the AWS CLI. With that you can send the ECS agent logs (or any other log file) to CloudWatch Logs. Deploying it as an ECS service (set the scheduling to daemon) and having it run on all of the ECS instances solved that issue for me.

Cron container image

Several services that I run need containerized Cron. However, regular Cron daemons aren't suited for running in a container (they remove environment variables before starting jobs, they log to syslog, etc.). Aptible created a Cron daemon suitable for containers named Supersonic, however there's ready container image so I created one. You can see it at in my GitLab instance.

The image can be used in 2 ways. You can it in a multi-stage build and copy the Supersonic binary from it.

FROM registry.shore.co.il/cron as supersonic

FROM alpine:latest
COPY --from=supersonic /usr/local/bin/supersonic /usr/local/bin/

Or you can build on top of it (ONBUILD instructions copy the crontab file and validate it).

FROM registry.shore.co.il/cron
COPY script /usr/local/bin/
USER root
RUN apk add --update --no-cache aws-cli
USER nobody

Lastly, updates

Subscribers to my blog might have noticed that I've been blogging rather profusely this last week. The reason is that I've finished the contract I had with my last employer. I've taken a short break and now I'm looking for work again. Right now I'm available for freelance work if something interesting comes up. Otherwise, I'm looking for long-term work. If anyone you know (or you are yourself) is looking for DevOps/ SRE/ infrastructure engineer with a preference for simple and effective tools and a strong tendency for open source software, drop me a message at nimrod@shore.co.il.

The reason for the excessive blogging (apart from the fact that I now have free time and I hope that someone somewhere finds my work interesting) is that I hope save time. I see that although almost all of what I wrote is publicly available in my GitLab instance, people apparently don't look too closely go just by my résumé. I hope that these last few blog posts make it more apparent who I am, what it is that I do and my approach to things. Thus saving both the interviewers and me some time.