I'm Patrick D'appollonio, I'm a Chilean 🇨🇱 Canadian 🇨🇦 and a Principal Engineer working at Kubefirst. I work mostly with Go and Kubernetes in my day-to-day, and as such, you'll see a few tools below I've built over time to solve personal itches. You should also see some Rust code here and there. If any of the applications you see are valuable to you or have any feedback, please do not hesitate to create an issue in their respective repository, or message me on Twitter: @marlex. I'm always looking forward to feedback!
If you want to know more about me, you can visit my personal website (some of the most recent articles I've written are listed below!), follow me on Twitter/X or add me on LinkedIn.
My personal favourite projects are 📌 pinned below!
(Some content might be written in Spanish)
- Cultural differences between Chile and USA (and North America) (published on January 21, 2024)
- Benchmarking is Hard: Caddy vs Nginx Edition (published on September 23, 2023)
- 4 alternative tools to replace Terraform in your Infrastructure as Code (published on August 18, 2023)
- How to manage Kubernetes clusters in WSL with OpenLens on Windows (published on January 27, 2023)
- Mounting Secrets and ConfigMaps in a preexistent folder without deleting the folder's contents (published on October 31, 2022)
... And several additional articles are available on my blog. Check it out!
Pull Requests I've opened or contributed to recently, only public repositories are visible.
- #9 - Add SSH key deletion support. Add orphaned resources check. on
konstructio/dropkick
-open
- #8 - Delete all volumes on a found cluster on
konstructio/dropkick
-merged
- #7 - Add support for filtering names using substrings. Add colors. on
konstructio/dropkick
-merged
- #2279 - Clean up code using GolangCI-Lint on
konstructio/kubefirst
-open
- #2278 - Remove unused functions. Bump to Go 1.23. Run
gofmt
on all files. onkonstructio/kubefirst
-merged
- #6 - Allow listing contributions to organizations. Add images to PR statuses. on
patrickdappollonio/patrickdappollonio
-merged
- #5 - Fix incorrect readme on
patrickdappollonio/patrickdappollonio
-merged
- #4 - Add support for data files from YAML on
patrickdappollonio/patrickdappollonio
-merged
- #3 - Bump version number. on
patrickdappollonio/patrickdappollonio
-merged
- #1 - Add Spring template functions and add support for disabling sections. on
patrickdappollonio/patrickdappollonio
-merged
Overall, my most recent contributions (besides my own repos) have gone to @konstructio, @kubernetes-sigs, @ansible and @jbrukh.
My best recommendations of projects I maintain that might help you in your day-to-day. Happy to take feedback or feature requests!
patrickdappollonio/http-server
: A small, but batteries-included static HTTP server. Includes a file explorer and support for Github-flavoured Markdown rendering. It's fully air-grapped, meaning it won't make any request to any third-party site (unless your code does so), so it plays well with highly-regulated environments. Useful for static pages like documentation.patrickdappollonio/kubectl-slice
: Have you ever wanted to split YAML manifests separated by "---" into individual files? This tool does that for you, and uses a template-style approach to generate filenames by tapping into typical Kubernetes YAML structure.patrickdappollonio/gc-rust
: I've always thought the developer experience of cloning a repo is a bit cumbersome: you have to find a path where you want to store the repo, then ensure you copied the right URL or Git reference, then rungit clone
. This tool simplifies that process by allowing you to clone a repo by just sayinggc <user>/<repo>
.patrickdappollonio/tgen
: My own attempt at a template tool that can be used in CI and automation environments. Provide a Go template either from a file or directly as an argument, load environment variables from the environment or from a file, then render the template! It includes a "strict" mode that prevents you from rendering a template if an environment variable that the template depends on is missing.patrickdappollonio/wait-for
: After seeing multiple bash attempts, I decided to write my own as well. This is a tiny application that can query a TCP endpoint (like a website or database) and hold until the endpoint is reachable or a timeout happens. Super useful to use in CI/CD pipelines orinitContainers
in Kubernetes.patrickdappollonio/tabloid
: I'm always doingkubectl get X
and while I know someawk
, I'm not an expert. This tool can parse table-like outputs found inkubectl
and other CLI tools and use an expression engine to query and filter the output, while at the same time reformatting whitespaces and headers to make it more readable.patrickdappollonio/nginx-vs-caddy-benchmark
: Born off a Twitter argument where someone claimed Caddy was faster than Nginx, I decided to write a small environment to test that claim. This repo holdsdocker-compose
files to spin up environments and steps to try them out. The idea is to get a comparison as close to apples-to-apples as possible between Caddy and Nginx.patrickdappollonio/cloudflare-cache-purger
: Looking at CI as well, whenever I deploy my own site I need to also purge the aggressive Cloudflare cache I have in front of it. This tool allows you to purge the cache by just providing a token and the zone ID. It's also offered as a container, so you can use it in your CI/CD pipelines.patrickdappollonio/find-project
: I like Go's$GOPATH
and the brainless process it becomes maintaining folders with projects in your machine wheregithub.com/foo/bar
becomes~/go/src/github.com/foo/bar
. Switching between projects though becomes a pain.find-project
is a small tool that allows you to provide a project name and it will find the project in your$GOPATH
by choosing whatever is closest to the root first.patrickdappollonio/kubernetes-guestbook
: The Kubernetes community wrote a Guestbook in PHP that requires a Redis backend with quite a few requirements to run. I decided to write a version of it in Go that uses several backend options instead (as of now, basic Redis and SQL Server). Available both as a container and a Helm chart.
Repositories I've starred recently because they were interesting, cool, or useful.
- mr-karan/doggo from @mr-karan with 2.8K ⭐️
- google/go-cmp from @google with 4.1K ⭐️
- RustScan/RustScan from @RustScan with 14.1K ⭐️
- samber/slog-chi from @samber with 42 ⭐️
- zed-industries/zed from @zed-industries with 46.4K ⭐️
- jehna/humanify from @jehna with 1.1K ⭐️
- Zxilly/go-size-analyzer from @Zxilly with 1.1K ⭐️
- progrium/go-vscode from @progrium with 28 ⭐️
- nikhilsbhat/helm-images from @nikhilsbhat with 53 ⭐️
- alicebob/miniredis from @alicebob with 3K ⭐️
- ratatui/ratatui from @ratatui with 9.6K ⭐️
- jdx/demand from @jdx with 49 ⭐️
- k3s-io/helm-controller from @k3s-io with 370 ⭐️
- zen-browser/desktop from @zen-browser with 11.1K ⭐️
- twpayne/go-sse from @twpayne with 7 ⭐️
- caarlos0/mdtree from @caarlos0 with 41 ⭐️
- astral-sh/uv from @astral-sh with 19K ⭐️
- masonr/yet-another-bench-script from @masonr with 4.1K ⭐️
- JamesWoolfenden/ghat from @JamesWoolfenden with 24 ⭐️
- moderato-app/approf from @moderato-app with 178 ⭐️
Last updated: September 04, 2024 at 16:04:34 EDT. The content here updates twice daily or when manually triggered.