Homelab 3 - ArgoCD

ArgoCD

So, with cdk8s I have an execellent way to author my Kubernetes manifests. How do I deploy them?

ArgoCD!

The workflow is actually quite simple. I store my Kubernetes manifests in a GitHub repo and I point ArgoCD to it.

How do I configure ArgoCD? With cdk8s, of course:

import { import ChartChart } from "https://esm.sh/[email protected]";
import { import ApplicationApplication } from "../../imports/argoproj.io.ts";

export function function createLamportApp(chart: Chart): anycreateLamportApp(chart: Chartchart: import ChartChart) {
  return new import ApplicationApplication(chart: Chartchart, "lamport-app", {
    
metadata: {
    name: string;
}
metadata
: {
name: stringname: "lamport", },
spec: {
    project: string;
    source: {
        repoUrl: string;
        path: string;
        targetRevision: string;
    };
    destination: {
        server: string;
        namespace: string;
    };
    syncPolicy: {
        automated: {};
        syncOptions: string[];
    };
}
spec
: {
project: stringproject: "default",
source: {
    repoUrl: string;
    path: string;
    targetRevision: string;
}
source
: {
repoUrl: stringrepoUrl: "https://github.com/shepherdjerred/homelab", path: stringpath: "cdk8s/dist/", targetRevision: stringtargetRevision: "main", },
destination: {
    server: string;
    namespace: string;
}
destination
: {
server: stringserver: "https://kubernetes.default.svc", namespace: stringnamespace: "lamport", },
syncPolicy: {
    automated: {};
    syncOptions: string[];
}
syncPolicy
: {
automated: {}automated: {}, syncOptions: string[]syncOptions: ["CreateNamespace=true"], }, }, }); }

Ingress and HTTPS with Tailscale

Direct connections and local networks

Persistant volumes

Backups

Monitoring

GPUs

Helm, Kustomize, and operators

Keeping things up-to-date

Recent posts from blogs that I like

Merry Christmas, Ya Filthy Animals (2024)

I've been absolutely slammed over the last few weeks, between moving to a new house, a large number of readers visiting Melbourne over the holidays and wanting coffee, and doing work for clients at the ol' consultancy. However, writing will pick up again in mid-January, more than ever before1, and w...

via Ludicity

Paintings of the Bay of Naples: 79 CE to 1857

Paintings by Thomas Jones, Giovanni Battista Lusieri, JMW Turner, Achille Michallon, JC Dahl, Carl Gustav Carus, Ivan Aivazovsky, and Clarkson Stanfield.

via The Eclectic Light Company

How to make a Kubernetes debug pod that is actually root

tl;dr: --profile=sysadmin

Let's say you have a k8s cluster but running on a distro without SSH and god is dead requiring you to interactively debug the machine with a shell session. Wonder why you'd want to do that.

kubectl debug node/whatever lets you get a pod that is kinda root, but you end up g...

via Xe Iaso