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

ML in Go with a Python sidecar

Machine learning models are rapidly becoming more capable; how can we make use of these powerful new tools in our Go applications? For top-of-the-line commercial LLMs like ChatGPT, Gemini or Claude, the models are exposed as language agnostic REST APIs. We can hand-craft HTTP requests or use client ...

via Eli Bendersky

Changing Paintings: 45 Dryope, Byblis and Iphis

The first transformed into a Lotus Tree for picking lotus flowers; the second dissolved in her own tears to become a spring; the third changing gender in time for their wedding.

via The Eclectic Light Company

Visualizing local election results with Datasette, Observable and MapLibre GL

via Simon Willison