47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package flux
|
|
|
|
import (
|
|
"time"
|
|
|
|
"danicos.dev/daniel/go-kube/pkg/kube"
|
|
"danicos.dev/daniel/go-kube/pkg/stack"
|
|
"danicos.dev/daniel/homelab/pkg/root"
|
|
kz "github.com/fluxcd/kustomize-controller/api/v1"
|
|
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
var flux_apps_meta kube.Metadata
|
|
var Flux_namespace = kube.Namespace(root.FLUX_NAMESPACE)
|
|
|
|
func init() {
|
|
flux_apps_meta = kube.NewMetadata("apps", Flux_namespace)
|
|
}
|
|
|
|
func Stack() stack.Stack {
|
|
s := stack.NewStack("flux", map[string]any{
|
|
"apps": Apps(),
|
|
})
|
|
return s
|
|
}
|
|
|
|
func Apps() kz.Kustomization {
|
|
retryInteval := durMin(1)
|
|
timeout := durMin(5)
|
|
spec := kz.KustomizationSpec{
|
|
Interval: durMin(10),
|
|
RetryInterval: &retryInteval,
|
|
Timeout: &timeout,
|
|
SourceRef: kz.CrossNamespaceSourceReference{
|
|
Kind: "GitRepository",
|
|
Name: Flux_namespace.Name,
|
|
},
|
|
Path: root.FLUX_APPS_HYDRA_PATH,
|
|
Prune: true,
|
|
}
|
|
return kube.NewKustomization(flux_apps_meta, spec)
|
|
}
|
|
|
|
func durMin(d int64) meta.Duration {
|
|
return meta.Duration{Duration: (time.Duration(d) * time.Minute)}
|
|
}
|