VSHN – The DevOps Company Pronounced ˈvɪʒn – like "vision" Founded 2014 in Zürich Switzerland’s leading DevOps, Docker & Kubernetes expert with 24/7 support ISO 27001 certi ed & ISAE 3402 Report Type 1 veri ed First Swiss Kubernetes Certi ed Service Provider / / vshn.ch @vshn_ch vshn.tv 2
VSHN – The DevOps Company 1. The Challenge of Internal Tools 2. Encapsulating and Sharing Tools 3. Reusing Tools in CI/CD Pipelines 4. More Container Tool Ideas 5. "Gotchas" Agenda 7
VSHN – The DevOps Company Lots of Each VSHNeer Linux, Mac, Windows Choose the "best" programming language for the job Go, Java, Python, JavaScript, shell script VSHN internal tools can use their preferred OS 12
VSHN – The DevOps Company Go, Rust, C, C++ Great for x-platform CLI tools! Complex to build Ruby, Python, JavaScript Agile: fast prototyping, great libraries Big runtimes to install and libraries to download Programming Languages 13
VSHN – The DevOps Company Find using vale Create or Generate for docs for documentation Documentation Tasks dead links in HTML Check writing style Spell checking PDF EPUB search engine index Live preview 35
VSHN – The DevOps Company Follow the Create man page for your tools using Pass secrets to tools as environment variables Document, document, document Use Make les to standardize projects 5.1 Creating CLI Tools Gotchas Command Line Interface Guidelines Asciidoctor 38
VSHN – The DevOps Company Beware of base images using musl instead of glibc …like Alpine! Free some disk space regularly with podman image prune ENTRYPOINT > CMD COPY > ADD Use other container registries Inspect your images using 5.2 Gotchas when Building Containers dive 40
VSHN – The DevOps Company Self-hosted: , , , and SaaS: , , , ( ), and ( ) Embedded: and Container Registries kraken Harbor Docker distribution Sonatype Nexus Docker Pro or Team plans Quay AWS ECR GitHub Packages ghcr.io Google Container Registry gcr.io OpenShift GitLab 41
VSHN – The DevOps Company Use TypeScript! npm install --prod Use to create standalone binaries Use the base image for minimalistic, small nal container images ( ). 5.3.3 JavaScript Tips pkg scratch-node GitHub 45
VSHN – The DevOps Company Use And if you use Visual Studio Code, install the Beware of base images that do not contain /bin/bash and only have /bin/sh (like with ) Either make sure your shell scripts work with /bin/sh, or install bash in your target image 5.3.4 Shell Scripting Tips ShellCheck ShellCheck VS extension Alpine Busybox 46
VSHN – The DevOps Company Wrap command line tools in containers Use a public or private registries to share your tools Document them properly: README + man page + Antora website + … Beware of common issues Summary 47