diff --git a/content/misc-updates-may-2021.rst b/content/misc-updates-may-2021.rst new file mode 100644 index 0000000000000000000000000000000000000000..741d38e94fc84240371ae781d04a8f860b699c3b --- /dev/null +++ b/content/misc-updates-may-2021.rst @@ -0,0 +1,87 @@ +Misc. projects and updates +========================== + +:date: 2021-05-11 +:summary: A few small project and an update for May 2021. + +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 <https://git.shore.co.il/nimrod/presentation>`_ with all of +the tools that I require. There's an example presentation in that repo and +there's also a GitLab `CI template +<https://git.shore.co.il/shore/ci-templates/-/blob/master/templates/presentation.yml>`_ +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 +<https://git.shore.co.il/nimrod/cw-logs-docker>`_ 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 +<https://github.com/aptible/supercronic>`_, however there's ready container +image so I created one. You can see it at in my `GitLab instance +<https://git.shore.co.il/nimrod/cron-docker>`_. + +The image can be used in 2 ways. You can it in a multi-stage build and copy the +Supersonic binary from it. + +.. code:: Dockerfile + + 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). + +.. code:: Dockerfile + + 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 <mailto: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 <https://git.shore.co.il/explore>`_, people apparently +don't look too closely go just by my `résumé <https://www.shore.co.il/about>`_. +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.