Files
manifests/temp/nix/helmfile.gotmpl.nix
T
mrtz 1bb720840d feat: Migrate sys applications to helmfile
Move most of helmfiles into temp to test only velero.

File structure:

```bash
/
├── helmfile.d/                                                 # Helmfiles, *.yaml.gotmpl
├── charts/                                                     # Our own charts, e.g `Atlantis`
├── values                                                      # Values for helmfiles
│   ├── <chart>
│   │   ├── values.yaml.gotmpl                                  # Values to be templated in `values/`
│   │   ├── kustomize                                           # Kustomizations per environment
│   │   ├── manifests                                           # Raw manifests
│   │   │   ├── <chart>.yaml                                    # Argo App for bootstrap
│   │   │   ├── dashboards                                      # Grafana dashboards
│   │   │   │   └── <chart>-metrics.yaml
│   │   │   └── policies                                        # Cilium and Kyverno policies
│   │   │       ├── CiliumNetworkPolicy-allow-api-server.yaml
│   │   │       └── KyvernoPolicy-regred-secret.yaml
│   │   └── values                                              # Values for each environment
│   │       ├── <chart>-staging.yaml.gotmpl                     # Values for staging environment
│   │       ├── <chart>-prod.yaml.gotmpl                        # Values for prod environment
│   │       └── <chart>.yaml.gotmpl                             # Standard values for all environments
│   │
│   ├── values.yaml                                             # Standard values for all cluster
│   ├── values-oceanbox.yaml                                    # Values overrides for oceanbox
│   ├── values-ekman.yaml                                       # Values overrides for ekman
```
2025-06-05 13:49:00 +02:00

95 lines
2.5 KiB
Nix

{ var, escape_var, ... }:
[
{
bases = [
"../envs/environments.yaml.gotmpl"
];
repositories = [
{
name = "argo";
url = "https://argoproj.github.io/argo-helm";
}
];
commonLabels = {
tier = "system";
};
releases = [
{
name = "argocd";
namespace = "argocd";
chart = "argo/argo-cd";
version = "7.5.2";
condition = "argo.enabled";
values = [
"../values/argo/values/argocd.yaml.gotmpl"
"../values/argo/values/argocd-${var.environment.name}.yaml.gotmpl"
];
postRenderer = "../bin/kustomizer";
postRendererArgs = [
"../values/argo/kustomize/${var.environment.name}"
];
missingFileHandler = "Info";
}
{
name = "argocd-apps";
namespace = "argocd";
chart = "argo/argocd-apps";
version = "0.0.1";
condition = "argo.apps.enabled";
values = [
"../values/argo/values/apps.yaml.gotmpl"
];
missingFileHandler = "Info";
}
{
name = "argo-rollouts";
namespace = "argocd";
chart = "argo/argo-rollouts";
version = "2.35.2";
condition = "argo.rollouts.enabled";
values = [
"../values/argo/values/rollouts.yaml.gotmpl"
];
missingFileHandler = "Info";
}
{
name = "argo-workflows";
namespace = "argocd";
chart = "argo/argo-workflows";
version = "0.45.0";
condition = "argo.workflows.enabled";
missingFileHandler = "Info";
}
{
name = "argo-manifests";
namespace = "argocd";
chart = "_argo";
condition = "argo.enabled";
values = [
(escape_var "../values/values-{{requiredEnv \"CLUSTER_NAME\"}}.yaml")
"../values/argo/values.yaml.gotmpl"
(escape_var "../values/argo/values-{{requiredEnv \"CLUSTER_NAME\"}}.yaml.gotmpl")
];
missingFileHandler = "Info";
hooks = [
{
events = [
"prepare"
"cleanup"
];
showlogs = true;
command = "../bin/helmify";
args = [
(escape_var "{{ if eq .Event.Name \"prepare\" }}build{{ else }}clean{{ end }}")
(escape_var "{{ .Release.Chart | toJson }}")
(escape_var "{{ .Environment.Name | toJson }}")
"../values/argo/manifests"
"_argo"
];
}
];
}
];
}
]