Compare commits
16 Commits
c919d375a8
...
1.0.7
| Author | SHA1 | Date | |
|---|---|---|---|
| e3d320d581 | |||
| d560b83da9 | |||
| d670230112 | |||
| 8f2ad91e38 | |||
| cf467ff629 | |||
| e34aea7194 | |||
| a52a95c6bd | |||
| fc5afd8668 | |||
| d59033d4f6 | |||
| a3333adcb0 | |||
| 4801fe754e | |||
| 1b151fd27f | |||
| e33face849 | |||
| e4818e76e6 | |||
| bfe0f324fc | |||
| 4ab2c05be5 |
33
.gitea/workflows/hugobuild.yaml
Normal file
33
.gitea/workflows/hugobuild.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
name: GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v3
|
||||
with:
|
||||
hugo-version: '0.156.0'
|
||||
# extended: true
|
||||
|
||||
- name: Build
|
||||
run: hugo --minify --destination ./public
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile
|
||||
push: true
|
||||
tags: "docker.paulmontag.info/blog:${{ github.ref_name }}"
|
||||
|
||||
3
Dockerfile
Normal file
3
Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
||||
FROM nginx
|
||||
|
||||
COPY ./public /usr/share/nginx/html
|
||||
@@ -1,4 +1,4 @@
|
||||
baseURL: "https://d1ngd0.github.io/blog/"
|
||||
baseURL: "https://blog.paulmontag.info/"
|
||||
title: Paul Montag
|
||||
pagination:
|
||||
pagerSize: 5
|
||||
@@ -75,7 +75,7 @@ params:
|
||||
Title: "Hi there \U0001F44B"
|
||||
Content: Welcome to my blog
|
||||
|
||||
# socialIcons:
|
||||
socialIcons: []
|
||||
# - name: x
|
||||
# url: "https://x.com/"
|
||||
# - name: stackoverflow
|
||||
@@ -97,7 +97,7 @@ params:
|
||||
hiddenInSingle: true # hide on single page
|
||||
|
||||
editPost:
|
||||
URL: "https://github.com/d1ngd0/blog/content"
|
||||
URL: "https://git.paulmontag.info/paul-montag/blog/src/branch/main/content"
|
||||
Text: "Suggest Changes" # edit text
|
||||
appendFilePath: true # to append file path to Edit link
|
||||
|
||||
|
||||
@@ -3,8 +3,10 @@ title = 'About'
|
||||
date = 2024-10-07T06:53:00-05:00
|
||||
+++
|
||||
|
||||
Whoa, you came to the about page?! Little creepy to want to know so much about me no? Anyway, I am a Father (one daughter), husband (one wife) and Software Engineer at a major retailer. I work on an observability team, providing the tools and infrastructure necessary for other engineers to understand the health of their applications. I also get up at crazy early or uncomfortably late times to dive into topics of interest, write blog posts and do a bit of light reading. Also, never totally mastered proper spelling, and lean quite heavily on spell check. If you see any mistakes, grammar or otherwise, let me know and I'll fix it; maybe.
|
||||
I am a Father (one daughter), husband (one wife) and Software Engineer at a major retailer. I work on an observability team, providing the tools and infrastructure necessary for other engineers to understand the health of their applications. I also get up at crazy early or uncomfortably late times to dive into topics of interest, write blog posts and do a bit of light reading. Also, never totally mastered proper spelling, and lean quite heavily on spell check. If you see any mistakes, grammar or otherwise, let me know and I'll fix it; maybe.
|
||||
|
||||
During my day job I like to solve problems by automating them away. If something has to be done more than once I have a bash script in my `~/.bin/` directory, usually with some help text, to get it done quickly. In other words awk and the `|` have treated me well. If the problem is more complex I will create the tools needed (Often with Go, Rust or something else) to solve it in the most simple yet generic way. I love taking on big novel challenges that require creativity or those annoying problems that no one could quite figure out.
|
||||
During my day job I like to solve problems by automating them away. If something has to be done more than once I have a bash script in my `~/.bin/` directory, usually with some help text, to get it done quickly. If the problem is more complex I will create the tools needed (Often with Go, Rust or something near it) to solve things in the most simple yet generic way. I love taking on big novel challenges that require creativity or those annoying problems that no one could quite figure out.
|
||||
|
||||
In my role as a leader I try to create a light-hearted atmosphere when working with others, and have noticed this tends to foment excitement for the projects we are working on. I put effort into ensuring those that I work with find a comfortable space where creative problem solving can occur. I regularly adapt my processes (communication channels, ceremonies, project management styles) towards the group I am working with to ensure I create the best possible chance for a successful outcome. I have gotten the feedback on more than one occasion: "I really enjoyed this project because you made it fun", or "Your silliness made the project low stress, even when things were tough". I lead with humility and humor, and would rather ask a good question instead of giving command.
|
||||
|
||||
When I am not working I enjoy a plethora of circulating hobbies such as hiking, drumming, painting, drawing, photography, woodworking, cooking, barbecuing, running, writing and more software engineering. That isn't to say I am good at all these things, but I do enjoy them.
|
||||
|
||||
35
content/posts/application_kustomize_image.md
Normal file
35
content/posts/application_kustomize_image.md
Normal file
@@ -0,0 +1,35 @@
|
||||
+++
|
||||
title = "Application Kustomize image"
|
||||
date = 2026-02-28T00:00:00-05:00
|
||||
draft = false
|
||||
+++
|
||||
|
||||
When creating [Applications](https://argo-cd.readthedocs.io/en/latest/user-guide/application-specification/) in [Argocd](https://argo-cd.readthedocs.io/en/stable/) I always prefer to use [kustomize](https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/) for my own manifests. It allows me to create a simple "base" of manifests and then alter it for the specific use case via the `kustomize` attribute within the application. This allows a single place (the `Application` or `ApplicationSet`) to stores all the high level information for configuring the installation.
|
||||
|
||||
While working on one project or another, I don't remember anymore why I needed to figure this out, I noticed the `images` attribute works differently in Argocd than it does in kustomize. **Since you the reader might be interested in the solution as opposed to the exploration, let me get that out of the way now**:
|
||||
|
||||
_format_: `- [old_image_name=]<image_name>:<image_tag>`
|
||||
|
||||
Example:
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
source:
|
||||
path: examples/helloWorld
|
||||
repoURL: 'https://github.com/kubernetes-sigs/kustomize'
|
||||
targetRevision: HEAD
|
||||
kustomize:
|
||||
images:
|
||||
- nginx=docker.io/nginx:v1.1.2
|
||||
```
|
||||
|
||||
Documentation for this syntax was hard to find, so I had to go digging through the [source](https://github.com/argoproj/argo-cd/blob/a3b4c8327f38ef2edfb3be6c68f96729ce98f9d8/pkg/apis/application/v1alpha1/types.go#L653-L654) to find out how it should be formatted.
|
||||
|
||||
Kustomize is less concise than argocd, having you [spell out each part](https://github.com/kubernetes-sigs/kustomize/blob/master/examples/image.md). The same example above in kustomize would look like this.
|
||||
|
||||
```yaml
|
||||
images:
|
||||
- name: nginx
|
||||
newName: docker.io/nginx
|
||||
newTag: v1.1.2
|
||||
```
|
||||
10
content/posts/kla.md
Normal file
10
content/posts/kla.md
Normal file
@@ -0,0 +1,10 @@
|
||||
+++
|
||||
title = 'KLA'
|
||||
date = 2024-01-28T20:45:05-06:00
|
||||
draft = true
|
||||
+++
|
||||
|
||||
You know what I love, when things have documented HTTP Restful APIs. They make it possible for me to configure things without having to log in to some UI. It also enables me to automate or write scripts to make managing those things easier. Another thing I love is the terminal. I spend most of my engineering time in one, even preferring something like [helix](https://helix-editor.com/) over VSCode. Given these two loves it was only inevitable I ended up creating [kla](https://github.com/d1ngd0/kla).
|
||||
|
||||
Kla is an open source replacement for curl (you know, because we needed that) that also allows you to create templates, which can take arguments, to easily create https requests against a RESTful API. While I do regularly use it in my day to day now, it started as an excuse to learn rust.
|
||||
|
||||
@@ -6,29 +6,20 @@ draft = false
|
||||
|
||||
# Paul Montag - Software Engineer
|
||||
|
||||
[https://github.com/d1ngd0](https://github.com/d1ngd0) :: [https://d1ngd0.github.io/blog/](https://d1ngd0.github.io/blog/)
|
||||
Lead Software engineer who enjoys building strong teams specializing in golang development, Linux and Kubernetes administration, and Observability.
|
||||
|
||||
Lead Software engineer, specializing in golang development, server administration and observability.
|
||||
|
||||
<!-- TODO: Add stuff about how you are a good leader, how you automate simple things with bash and complicated things with well thought out software. -->
|
||||
|
||||
## Skills
|
||||
|
||||
Languages: Golang, Rust, bash, javascript, HTML, CSS, YAML, JSON, python, awk
|
||||
Tools: Ansible, git, github, Kubernetes, Argocd, Helm, kafka, elasticsearch, clickhouse, influxdb, bash, vim, helix, delve, chef, mercurial, terriform, OpenTelemetry, Grafana, Postgres, MySQL/MariaDB, ChatGPT, Copilot, Burrow, KubeBuilder, BPFTrace, Linux, Ubuntu, CentOS
|
||||
|
||||
## Experience
|
||||
## Employment
|
||||
|
||||
### Target - Minneapolis, MN
|
||||
|
||||
#### Lead Engineer 2019 - present
|
||||
#### Lead Engineer <sub>2019 - present</sub>
|
||||
|
||||
- Manage replicated dataset with Petabytes of data, and billions of trasactions daily
|
||||
- Maintain Elasticsearch, Influx, Grafana architectures on VMware with ansible
|
||||
- Manage highly resilient, zonal aware Clickhouse architecture in Kubernetes
|
||||
- Lead small team of engineers through various initiatives utilizing Agile methodology
|
||||
- Work with engineers throughout Target to better understand observability tooling
|
||||
- Present talks within Target to create a culture of observability
|
||||
- Manage replicated dataset with Petabytes of data, and billions of transactions daily
|
||||
- Manage highly resilient, zonal aware Clickhouse architecture in Kubernetes
|
||||
- Maintain Elasticsearch, Influx, Grafana architectures on VMware with ansible
|
||||
- Lead small team of engineers through various initiatives utilizing Agile methodology
|
||||
- Present talks within Target to create a culture of observability, and desired engineering practices
|
||||
- Create highly performant, specialized applications in golang to manage observability data
|
||||
|
||||
### ISeeMe - Eden Prairie, MN
|
||||
@@ -37,13 +28,13 @@ Tools: Ansible, git, github, Kubernetes, Argocd, Helm, kafka, elasticsearch, cli
|
||||
- Part of leadership team at ISeeMe to define year and quarterly rocks
|
||||
- Lead small team of engineers in completing rocks
|
||||
- Managed AWS billing
|
||||
- Lead Agile cerimonies
|
||||
- Lead Agile ceremonies
|
||||
- Maintained responsibilities from software engineer position
|
||||
|
||||
#### Software Engineer 2015 - 2016
|
||||
- Develop new features in PHP and Golang for personalized books
|
||||
- Maintain Linix (Ubuntu) servers for running personalization software
|
||||
- Maintain Magento webstore
|
||||
- Maintain Linux (Ubuntu) servers for running personalization software
|
||||
- Maintain Magento web store
|
||||
- Maintain Kubernetes cluster utilizing AWS and bare metal (at printing locations)
|
||||
|
||||
### Meta 13 Interactive - St Cloud, MN
|
||||
@@ -58,9 +49,18 @@ Tools: Ansible, git, github, Kubernetes, Argocd, Helm, kafka, elasticsearch, cli
|
||||
- Worked both individually and with a team of developers to complete projects
|
||||
- Configured Apache, MySQL, and PHP on Linux servers as well as MSSQL and IIS on Windows servers
|
||||
|
||||
|
||||
## Skills
|
||||
|
||||
<sub>Languages: Golang, Rust, bash, javascript, HTML, CSS, YAML, JSON, python, awk</sub>
|
||||
|
||||
<sub>Tools: Ansible, git, github, Kubernetes, KubeBuilder, Argocd, Helm, kafka, elasticsearch, Clickhouse, influxdb, vim, helix, delve, chef, mercurial, Terraform, OpenTelemetry, Grafana, Postgres, MySQL/MariaDB, ChatGPT, Copilot, Burrow, BPFTrace, Linux, Ubuntu, CentOS, GCP, AWS</sub>
|
||||
|
||||
## Education
|
||||
|
||||
### Saint Cloud Technical College
|
||||
Saint Cloud, MN 2008 – 2010
|
||||
**Saint Cloud Technical College** _(Saint Cloud, MN 2008 – 2010)_ Associate of Applied Science Degree in Computer Programming
|
||||
|
||||
- Associate of Applied Science Degree
|
||||
## Contact
|
||||
|
||||
- Blog: [https://blog.paulmontag.info/](https://blog.paulmontag.info/)
|
||||
- Github: [https://github.com/d1ngd0](https://github.com/d1ngd0)
|
||||
|
||||
7
cspell.json
Normal file
7
cspell.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"userWords": [
|
||||
"Montag",
|
||||
"Clickhouse",
|
||||
"Magento"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user