Replace ArgoCD with Flux, SealedSecrets with SOPS+age, add minikube CI workflow#131
Draft
Copilot wants to merge 21 commits into
Draft
Replace ArgoCD with Flux, SealedSecrets with SOPS+age, add minikube CI workflow#131Copilot wants to merge 21 commits into
Copilot wants to merge 21 commits into
Conversation
…workflow Co-authored-by: Myrenic <38107502+Myrenic@users.noreply.github.com> Agent-Logs-Url: https://github.com/Myrenic/Orbit/sessions/fbc35ece-f894-40a6-a972-7511aa6ffd3e
…ter) Co-authored-by: Myrenic <38107502+Myrenic@users.noreply.github.com> Agent-Logs-Url: https://github.com/Myrenic/Orbit/sessions/fbc35ece-f894-40a6-a972-7511aa6ffd3e
…secret generation Co-authored-by: Myrenic <38107502+Myrenic@users.noreply.github.com> Agent-Logs-Url: https://github.com/Myrenic/Orbit/sessions/fbc35ece-f894-40a6-a972-7511aa6ffd3e
Copilot
AI
changed the title
[WIP] Replace ArgoCD with the latest version of Flux and implement best practices
Replace ArgoCD with Flux, SealedSecrets with SOPS+age, add minikube CI workflow
Mar 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrate GitOps stack from ArgoCD to Flux v2 and from SealedSecrets to SOPS with age encryption. Strip to minimal working state (hello-world only) with a CI workflow that proves deployment end-to-end on minikube.
GitOps: ArgoCD → Flux
clusters/homelab/containsKustomizationCRDs pointing toapps/andinfrastructure/directoriesspec.decryptionSecrets: SealedSecrets → SOPS + age
SealedSecretmanifests.sops.yamlupdated withencrypted_regex: ^(data|stringData)$for*.enc.yamlfilesApp cleanup
CI: minikube deployment test
Updated workflows & scripts
verify-kustomize.yamlbuilds new paths (kubernetes/apps,kubernetes/infrastructure/*)validate_manifests.pyexcludesclusters/dir (Flux-managed, not referenced in kustomization)new-Cluster.ps1rewritten forflux bootstrap github+ SOPS age secret creationREADME
Complete rewrite covering: repo structure, Flux reconciliation flow, SOPS secret lifecycle (create/edit/view), age key management (import/backup/rotate), adding new apps (plain manifests and HelmRelease), CI/CD matrix.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
10.244.0.2/usr/bin/kubelet /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --node-ip=172.18.0.2 --node-labels= --provider-id=kind://docker/orbit-test/orbit-test-control-plane --runtime-cgroups=/system.slice/containerd.service ntime.v2.task/mo/usr/lib/systemd/system-generators/systemd-rc-local-generator 802928f5318fbea34be645d0471ced26022/0efd5f49fc830a7840e6ad461f3b854dd7ab25ddb3577dae�� ease /usr/lib/network/run/systemd/generator.late(packet block)10.244.0.4/usr/bin/kubelet /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --node-ip=172.18.0.2 --node-labels= --provider-id=kind://docker/orbit-test/orbit-test-control-plane --runtime-cgroups=/system.slice/containerd.service ntime.v2.task/mo/usr/lib/systemd/system-generators/systemd-rc-local-generator 802928f5318fbea34be645d0471ced26022/0efd5f49fc830a7840e6ad461f3b854dd7ab25ddb3577dae�� ease /usr/lib/network/run/systemd/generator.late(packet block)10.244.0.5/usr/bin/kubelet /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --node-ip=172.18.0.2 --node-labels= --provider-id=kind://docker/orbit-test/orbit-test-control-plane --runtime-cgroups=/system.slice/containerd.service ntime.v2.task/mo/usr/lib/systemd/system-generators/systemd-rc-local-generator 802928f5318fbea34be645d0471ced26022/0efd5f49fc830a7840e6ad461f3b854dd7ab25ddb3577dae�� ease /usr/lib/network/run/systemd/generator.late(packet block)10.244.0.6/usr/bin/kubelet /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --node-ip=172.18.0.2 --node-labels= --provider-id=kind://docker/orbit-test/orbit-test-control-plane --runtime-cgroups=/system.slice/containerd.service ntime.v2.task/mo/usr/lib/systemd/system-generators/systemd-rc-local-generator 802928f5318fbea34be645d0471ced26022/0efd5f49fc830a7840e6ad461f3b854dd7ab25ddb3577dae�� ease /usr/lib/network/run/systemd/generator.late(packet block)10.244.0.7/usr/bin/kubelet /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --node-ip=172.18.0.2 --node-labels= --provider-id=kind://docker/orbit-test/orbit-test-control-plane --runtime-cgroups=/system.slice/containerd.service ntime.v2.task/mo/usr/lib/systemd/system-generators/systemd-rc-local-generator 802928f5318fbea34be645d0471ced26022/0efd5f49fc830a7840e6ad461f3b854dd7ab25ddb3577dae�� ease /usr/lib/network/run/systemd/generator.late(packet block)1008277557898188279.8844696187028799381/coredns /coredns -conf /etc/coredns/Corefile b8a48eac0ef1e4dcda1ff4c1af4003ebf1f7d5519a4d87d5--bundle 022/�� kubernetes postrouting rules -j ash 23d94328a1fa2afcgit ~projected/kube-api-access-mrk8f iginal 68d76eecd30d2b18HEAD /usr�� --root y /usr/bin/runc by/ee78f3e4b7dc6bash by/ee78f3e4b7dc6--norc 645d0471ced26022--noprofile 022/log.json(dns block)192.168.49.1REDACTED, pid is -1(packet block)2274884029697541085.3174282479164674020/coredns /coredns -conf /etc/coredns/Corefile df9199253aa66b95--bundle d758�� y s1181705829 ntime.v2.task/moby/ee78f3e4b7dc6--systemd-cgroup ntime.v2.task/mobash 928f5318fbea34be/usr/bin/runc 94328a1fa2afc802--root 4be2478360072bc2/var/run/docker/runtime-runc/moby 022/�� runtime-runc/mob/run/containerd/io.containerd.runtime.v2.task/moby/ee78f3e4b7dc623d94328a1fa2afc/usr/bin/unpigz y bin/bash 23d94328a1fa2afcdocker 928f5318fbea34beexec(dns block)2691680158457993442.6862789827670716719/coredns /coredns -conf /etc/coredns/Corefile ade728df9051249b--log 022/�� /var/run/docker/--log-format --log ash --log-format json --systemd-cgroup--noprofile 4498089f5c46d018eeb12b219ea3095f/run/containerd/io.containerd.runtime.v2.task/k8s.io/a6b07f68e51--wait /usr�� --root 08406c9ee77db4e4022e2921ee2113bd5aad3e172873913a47747/rootfs/product_name 08406c9ee77db4e4022e2921ee2113bd5aad3e172873913a47747/rootfs/sys/class/dmi/id/product_name ntime.v2.task/mo/usr/local/bin/containerd-shim-runc-v2 --log-format json 022/log.json(dns block)3046622084128283861.259666627250035434/coredns /coredns -conf /etc/coredns/Corefile role.kubernetes.io/control-plane-S 022/�� /var/run/docker/runtime-runc/moby --log(dns block)5139510558717074711.8111947380033828787/coredns /coredns -conf /etc/coredns/Corefile --detach --pid-file /run/containerd/io.containerd.runtime.v2.task/moby/ee78f3e4b7dc623d94328a1fa2afc802928f5318fbea34be645d0471ced26022/bd8ee2c958149642f71033bd0b4976994ba4346b3f0a0577f87cf007b0b6{{ index .Config.Labels "desktop.docker.io/ports/6443/tcp" }} ee78f3e4b7dc623d94328a1fa2afc802928f5318fbea34be645d0471ced26022 23d94328a1fa2afc802928f5318fbea34be645d0471ced26022/log.json 23d94328a1fa2afcbash(dns block)5484349618973634131.9132901033626687945/coredns /coredns -conf /etc/coredns/Corefile 022/log.json 02ff�� e2cfcacd535919c701f7eaa73151bd9ee86a4 runtime-runc/moby e2cfcacd535919c701f7eaa73151bd9ee86a4/init.pid io.containerd.rugit 23d94328a1fa2afcdiff(dns block)5714713635041037103.3360331872727925560/coredns /coredns -conf /etc/coredns/Corefile 385268cf02d22f86--bundle f4cf�� y nodes ntime.v2.task/moby/ee78f3e4b7dc6--systemd-cgroup ntime.v2.task/mobash 928f5318fbea34be--norc rs/systemd-debug--noprofile 4be645d0471ced26022/log.json 4be6�� --root y bin/bash by/ee78f3e4b7dc6runc 928f5318fbea34be--root json 022/log.json(dns block)6258358444906221184.5587579725322636927/coredns /coredns -conf /etc/coredns/Corefile 6cf281419d9d9086/var/run/docker/runtime-runc/moby 022/�� 5 -I ash 23d94328a1fa2afciptables-save(dns block)6573242506384719182.781539194104895967/coredns /coredns -conf /etc/coredns/Corefile 0692c6e663d155c5/run/containerd/io.containerd.runtime.v2.task/k8s.io/33752c0dfbb64e9d4d6cf1b8bbee1fa7b37f81d8bcb6ea3383addfc1cee16264/rootfs/product_name /usr�� --root c8270b9093321350828dfca2e1d0b81d71396765c154d4643ccb7/rootfs/product_name c8270b9093321350828dfca2e1d0b81d71396765c154d4643ccb7/rootfs/sys/class/dmi/id/product_name by/ee78f3e4b7dc6/kind/bin/mount-product-files.sh by/ee78f3e4b7dc623d94328a1fa2afcdiff 645d0471ced26022 022/log.json c65a�� /var/run/docker/runtime-runc/moby ol-plane io/control-plane ditions[-1:].stagit by/ee78f3e4b7dc6diff 645d0471ced26022--name-only 4498089f5c46d018HEAD(dns block)7112931065629083752.4675780205577576728/coredns /coredns -conf /etc/coredns/Corefile 022/log.json 2379�� y runtime-runc/mob--wait 6ca82caa29bf1483f0255c7dcd73a213cd9ecf9458fde2bf27f11/log.json io.containerd.rukubectl ntime.v2.task/moget 928f5318fbea34bepods iginal(dns block)7477634111377490304.7504181301541348053/coredns /coredns -conf /etc/coredns/Corefile bash /usr�� s3011843294 y bfbab0c7e9ac52fb4c6fc9f2bb722604b4e04/log.json ntime.v2.task/moip6tables 94328a1fa2afc802-w json 022/log.json 4498�� runtime-runc/mob-t s4068958496 81d79490d7d567f59a9863fa3134f3f174354306e79caa72e3e2a/log.json in.conf ntime.v2.task/mo--version 928f5318fbea34be645d0471ced26022--name-only io/control-plane(dns block)8981567081972634060.8198710326622464965/coredns /coredns -conf /etc/coredns/Corefile 022/log.json 25c3�� y runtime-runc/moby ntime.v2.task/moby/ee78f3e4b7dc6ee78f3e4b7dc623d94328a1fa2afc802928f5318fbea34be645d0471ced26022 io.containerd.rurunc by/ee78f3e4b7dc6--root 645d0471ced26022/run/containerd/runc/k8s.io(dns block)https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest/usr/bin/curl curl -s REDACTED(http block)https://api.github.com/repos/kubernetes-sigs/minikube-preloads/releases/tags/v18/usr/local/bin/minikube minikube start --driver=docker --wait=all(http block)https://storage.googleapis.com/minikube-preloaded-volume-tarballs/v18/v1.35.1/preloaded-images-k8s-v18-v1.35.1-docker-overlay2-amd64.tar.lz4/usr/local/bin/minikube minikube start --driver=docker --wait=all(http block)https://storage.googleapis.com/minikube/releases-v2.json/usr/local/bin/minikube minikube start --driver=docker --wait=all(http block)/usr/local/bin/minikube minikube status -j DOCKER conf�� k/Orbit/Orbit/kuDOCKER credential.usern! nfig/composer/ve-i 2cc79c7d36469d0edf07cade82ab04ef7fb/5d032b025e4804bea8a2b45573833c11621422061f76d0e0bf5eece544ada1cc.pid(http block)/usr/local/bin/minikube minikube start --driver=docker --wait=all --force --noprofile 02-copilot-tool-output-qnrzmk.tx--log-format /home/REDACTED/.config/composer/vejson(http block)kind.sigs.k8s.io/usr/bin/curl curl -Lo /tmp/kind REDACTED 58e7��(dns block)metadata.google.internal/usr/local/bin/minikube minikube start --driver=docker --wait=all(dns block)/usr/local/bin/minikube minikube status -j DOCKER conf�� k/Orbit/Orbit/kuDOCKER credential.usern! nfig/composer/ve-i 2cc79c7d36469d0edf07cade82ab04ef7fb/5d032b025e4804bea8a2b45573833c11621422061f76d0e0bf5eece544ada1cc.pid(dns block)/usr/local/bin/minikube minikube start --driver=docker --wait=all --force --noprofile 02-copilot-tool-output-qnrzmk.tx--log-format /home/REDACTED/.config/composer/vejson(dns block)registry.k8s.io/usr/local/bin/minikube minikube start --driver=docker --wait=all(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.