Expose an app on Hyperion
Every app on Hyperion follows the same pattern: an ArgoCD Application that points to a Kustomize directory, and an HTTPRoute attached to the shared cilium-gateway. TLS is already handled by the gateway’s wildcard certificate, so you don’t create a Certificate per app.
1. Create the directory
Section titled “1. Create the directory”kubernetes/applications/argocd/<app>/├── application.yaml└── manifests/ ├── kustomization.yaml ├── namespace.yaml ├── deployment.yaml ├── service.yaml └── httproute.yamlThe root app-of-apps picks up every file named *application.yaml under kubernetes/applications/argocd, so nothing else needs to be registered.
2. Write the Application
Section titled “2. Write the Application”apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: <app> namespace: argocd annotations: argocd.argoproj.io/sync-wave: "2"spec: project: homelab source: repoURL: https://github.com/Brsalcedom/homelab-iac.git targetRevision: main path: kubernetes/applications/argocd/<app>/manifests destination: server: https://kubernetes.default.svc namespace: <app> syncPolicy: automated: prune: true selfHeal: true3. Write the HTTPRoute
Section titled “3. Write the HTTPRoute”apiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata: name: <app> namespace: <app>spec: parentRefs: - name: cilium-gateway namespace: cilium-gateway sectionName: https hostnames: - <app>.home.cervant.net rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: <app> port: 80The http listener of the gateway already redirects all *.home.cervant.net traffic to HTTPS.
4. Merge to main
Section titled “4. Merge to main”ArgoCD syncs the new Application automatically. Check it with:
kubectl -n argocd get application <app>kubectl -n <app> get httprouteThe homelab-docs app (kubernetes/applications/argocd/homelab-docs) is a complete example.