package config

type Registry struct {
	ChartRef      string `yaml:"chart_ref" env-default:"kube-forge/harbor"`
	ChartVersion  string `yaml:"chart_version" env-default:"1.14.2"`
	Enabled       bool   `yaml:"enabled"`
	AdminPassword string
	Namespace     string `yaml:"namespace" env-default:"registry"`
	Expose        struct {
		Type          string `yaml:"type" env-default:"nodePort"`
		Domain        string `yaml:"domain" env-default:""`
		Path          string `yaml:"path" env-default:"/"`
		NodePortHttp  int    `yaml:"node_port_http" env-default:"30002"`
		NodePortHttps int    `yaml:"node_port_https" env-default:"30003"`
	} `yaml:"expose"`
	Tls struct {
		Enabled              bool `yaml:"enabled"`
		CertificateGenerator struct {
			ChartRef     string `yaml:"chart_ref" env-default:"kube-forge/certificate-generator"`
			ChartVersion string `yaml:"chart_version" env-default:"0.1.0"`
		} `yaml:"certificate_generator"`
	} `yaml:"tls"`
	Persistence struct {
		StorageClass   string `yaml:"storage_class" env-default:"local-path"`
		RegistrySize   string `yaml:"registry_size" env-default:"10Gi"`
		JobserviceSize string `yaml:"jobservice_size" env-default:"1Gi"`
		DatabaseSize   string `yaml:"database_size" env-default:"2Gi"`
		RedisSize      string `yaml:"redis_size" env-default:"1Gi"`
		TrivySize      string `yaml:"trivy_size" env-default:"5Gi"`
	} `yaml:"persistence"`
	EnabledScanner bool `yaml:"enabled_scanner"`
	Portal         struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/harbor-portal"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"portal"`
	Core struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/harbor-core"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"core"`
	Jobservice struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/harbor-jobservice"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"jobservice"`
	Registry struct {
		Registry struct {
			Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/registry-photon"`
			Tag   string `yaml:"tag" env-default:"v2.10.1"`
		} `yaml:"registry"`
		Controller struct {
			Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/harbor-registryctl"`
			Tag   string `yaml:"tag" env-default:"v2.10.1"`
		} `yaml:"controller"`
	} `yaml:"registry"`
	Trivy struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/trivy-adapter-photon"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"trivy"`
	Database struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/harbor-db"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"database"`
	Redis struct {
		Image string `yaml:"image" env-default:"harbor.kvazaric.ru/kube-forge/goharbor/redis-photon"`
		Tag   string `yaml:"tag" env-default:"v2.10.1"`
	} `yaml:"redis"`
}
