add custom charts support

This commit is contained in:
2024-04-30 20:08:39 +03:00
parent d78b71fb1f
commit ad5f053ec1
23 changed files with 102 additions and 61 deletions

View File

@@ -53,6 +53,7 @@ orchestrator:
modules:
admin_password: changeit
## Add additional helm repositories before installation
# additional_repositories:
# - name: argo-helm
# url: "https://argoproj.github.io/argo-helm"

View File

@@ -2884,11 +2884,12 @@ releases:
## Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param
dhParam: ""
- name: csi-secrets-store
namespace: kube-system
chart_ref: kube-forge/secrets-store-csi-driver
chart_version: 1.4.3
release_state: "present"
- name: fluent-operator
namespace: observability
create_namespace: true
@@ -3585,7 +3586,6 @@ releases:
enabled: true
serviceMonitor: true
domain: &grafanaDomain grafana.disk.lt.t1.cloud
serviceNodePort: 30007
image:
repository: grafana/grafana
tag: 10.4.1
@@ -3598,6 +3598,7 @@ releases:
config:
server: |
enable_gzip = true
root_url = https://grafana.disk.lt.t1.cloud
security: |
@@ -3650,7 +3651,7 @@ releases:
exporters: [otlphttp]
ingress:
enabled: false
enabled: true
accountEmail: reversstorm@gmail.com
class: nginx
annotations:
@@ -4206,7 +4207,7 @@ releases:
server.insecure: true
secret:
argocdServerAdminPassword: $2a$10$AORf9Nnyuc.XVCI2XvmVFuU6mo5TMMert83XfUCjepoIZBETe9hWe
argocdServerAdminPassword: $2a$10$hYIiOm53PvvR1Ft78n8scuiuh/p5GNLLE262HuSt3nWm5dxYPuYJW
repositories:
# add default helm-repository from harbor
@@ -4259,8 +4260,8 @@ releases:
namespace: cicd
create_namespace: true
chart_ref: kube-forge/argo-rollouts
release_state: "present"
chart_version: 2.35.1
release_state: "present"
values:
installCRDs: true
keepCRDs: false

View File

@@ -2,6 +2,8 @@ package config
type Additional struct {
CertManager struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/cert-manager"`
ChartVersion string `yaml:"chart_version" env-default:"v1.14.5"`
Enabled bool `yaml:"enabled"`
HaEnabled bool `yaml:"ha_enabled"`
DnsServers []string `yaml:"dns_servers" env-default:"[8.8.8.8,1.1.1.1]"`
@@ -13,6 +15,8 @@ type Additional struct {
} `yaml:"cert_manager"`
Ingress struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/ingress-nginx"`
ChartVersion string `yaml:"chart_version" env-default:"4.10.1"`
Type string `yaml:"type" env-default:"nginx"`
Enabled bool `yaml:"enabled"`
IngressClassName string `yaml:"ingress_class_name" env-default:"nginx"`
@@ -42,10 +46,14 @@ type Additional struct {
ReclaimPolicy string `yaml:"reclaim_policy" env-default:"Delete"`
} `yaml:"local_path_provisioner"`
Longhorn struct {
Enabled bool `yaml:"enabled"`
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/longhorn"`
ChartVersion string `yaml:"chart_version" env-default:"1.6.1"`
Enabled bool `yaml:"enabled"`
} `yaml:"longhorn"`
SecretsStoreCsiDriver struct {
Enabled bool `yaml:"enabled"`
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/secrets-store-csi-driver"`
ChartVersion string `yaml:"chart_version" env-default:"1.4.3"`
Enabled bool `yaml:"enabled"`
} `yaml:"secrets_store_csi_driver"`
} `yaml:"storage"`
}

View File

@@ -3,6 +3,8 @@ package config
type Cicd struct {
Enabled bool `yaml:"enabled"`
ArgoCd struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/argo-cd"`
ChartVersion string `yaml:"chart_version" env-default:"6.7.12"`
AdminPassword string
Ha struct {
Enabled bool `yaml:"enabled"`
@@ -21,11 +23,19 @@ type Cicd struct {
Rbac struct {
AdditionalPolicies string `yaml:"additional_policies"`
} `yaml:"argo_cd"`
ServiceIngress struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/service-ingress"`
ChartVersion string `yaml:"chart_version" env-default:"0.1.0"`
} `yaml:"service_ingress"`
} `yaml:"argo_cd"`
UpdatesOperator struct {
Enabled bool `yaml:"enabled"`
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/keel"`
ChartVersion string `yaml:"chart_version" env-default:"1.0.3"`
Enabled bool `yaml:"enabled"`
} `yaml:"updates_operator"`
Rollouts struct {
Enabled bool `yaml:"enabled"`
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/argo-rollouts"`
ChartVersion string `yaml:"chart_version" env-default:"2.35.1"`
Enabled bool `yaml:"enabled"`
} `yaml:"rollouts"`
}

View File

@@ -1,6 +1,8 @@
package config
type Observability struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/observability"`
ChartVersion string `yaml:"chart_version" env-default:"0.1.0"`
Enabled bool `yaml:"enabled"`
Logging Logging `yaml:"logging"`
Tracing Tracing `yaml:"tracing"`
@@ -11,6 +13,8 @@ type Observability struct {
type Logging struct {
Enabled bool `yaml:"enabled"`
Operator struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/fluent-operator"`
ChartVersion string `yaml:"chart_version" env-default:"2.7.0"`
Image string `yaml:"image" env-default:"kubesphere/fluent-operator"`
Tag string `yaml:"tag" env-default:"v2.7.0"`
InitContainer struct {
@@ -27,10 +31,12 @@ type Logging struct {
Tag string `yaml:"tag" env-default:"v2.2.2"`
} `yaml:"fluent_bit"`
Loki struct {
Registry string `yaml:"registry" env-default:"docker.io"`
Image string `yaml:"image" env-default:"grafana/loki"`
Tag string `yaml:"tag" env-default:"null"`
Persistence struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/loki"`
ChartVersion string `yaml:"chart_version" env-default:"5.47.2"`
Registry string `yaml:"registry" env-default:"docker.io"`
Image string `yaml:"image" env-default:"grafana/loki"`
Tag string `yaml:"tag" env-default:"null"`
Persistence struct {
StorageClass string `yaml:"storage_class" env-default:"local-path"`
StorageSize string `yaml:"storage_size" env-default:"10Gi"`
Retention string `yaml:"retention" env-default:"168h"`
@@ -55,19 +61,23 @@ type Logging struct {
type Tracing struct {
Enabled bool `yaml:"enabled"`
Operator struct {
Image string `yaml:"image" env-default:"ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator"`
Tag string `yaml:"tag" env-default:""`
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/opentelemetry-operator"`
ChartVersion string `yaml:"chart_version" env-default:"0.55.0"`
Image string `yaml:"image" env-default:"ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator"`
Tag string `yaml:"tag" env-default:""`
} `yaml:"operator"`
Collector struct {
Image string `yaml:"image" env-default:"otel/opentelemetry-collector-contrib"`
Tag string `yaml:"tag" env-default:"0.95.0"`
} `yaml:"collector"`
Tempo struct {
Image string `yaml:"image" env-default:"grafana/tempo"`
Tag string `yaml:"tag" env-default:""`
Retention string `yaml:"retention" env-default:"24h"`
ListenPort int `yaml:"listen_port" env-default:"3100"`
Persistence struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/tempo"`
ChartVersion string `yaml:"chart_version" env-default:"1.7.2"`
Image string `yaml:"image" env-default:"grafana/tempo"`
Tag string `yaml:"tag" env-default:""`
Retention string `yaml:"retention" env-default:"24h"`
ListenPort int `yaml:"listen_port" env-default:"3100"`
Persistence struct {
StorageClass string `yaml:"storage_class" env-default:"local-path"`
StorageSize string `yaml:"storage_size" env-default:"10Gi"`
} `yaml:"persistence"`

View File

@@ -1,7 +1,9 @@
package config
type Registry struct {
Enabled bool `yaml:"enabled"`
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"`
Version string `yaml:"version" env-default:"v2.10.1"`
@@ -12,7 +14,11 @@ type Registry struct {
NodePortHttps int `yaml:"node_port_https" env-default:"30003"`
} `yaml:"expose"`
Tls struct {
Enabled bool `yaml:"enabled"`
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"`

View File

@@ -1,10 +1,12 @@
package config
type SecretsStorage struct {
Enabled bool `yaml:"enabled"`
Image string `yaml:"image" env-default:"kubesphere/fluent-operator"`
Tag string `yaml:"tag" env-default:"v2.7.0"`
Expose struct {
ChartRef string `yaml:"chart_ref" env-default:"kube-forge/vault"`
ChartVersion string `yaml:"chart_version" env-default:"0.1.0"`
Enabled bool `yaml:"enabled"`
Image string `yaml:"image" env-default:"kubesphere/fluent-operator"`
Tag string `yaml:"tag" env-default:"v2.7.0"`
Expose struct {
Type string `yaml:"type"`
Domain string `yaml:"domain"`
NodePort int `yaml:"node_port"`

View File

@@ -1,8 +1,8 @@
- name: cert-manager
namespace: cert-manager
create_namespace: true
chart_ref: kube-forge/cert-manager
chart_version: v1.14.5
chart_ref: {{ .Modules.Additional.CertManager.ChartRef }}
chart_version: {{ .Modules.Additional.CertManager.ChartVersion }}
{{- if .Modules.Additional.CertManager.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: ingress-nginx
namespace: ingress-nginx
create_namespace: true
chart_ref: kube-forge/ingress-nginx
chart_version: 4.10.1
chart_ref: {{ .Modules.Additional.Ingress.ChartRef }}
chart_version: {{ .Modules.Additional.Ingress.ChartVersion }}
{{- if and .Modules.Additional.Ingress.Enabled (eq .Modules.Additional.Ingress.Type "nginx") }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: longhorn
namespace: longhorn-system
create_namespace: true
chart_ref: kube-forge/longhorn
chart_version: 1.6.1
chart_ref: {{ .Modules.Additional.Storage.Longhorn.ChartRef }}
chart_version: {{ .Modules.Additional.Storage.Longhorn.ChartVersion }}
{{- if .Modules.Additional.Storage.Longhorn.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,6 +1,9 @@
{{- if .Modules.Additional.Storage.SecretsStoreCsiDriver.Enabled }}
- name: csi-secrets-store
namespace: kube-system
chart_ref: kube-forge/secrets-store-csi-driver
chart_version: 1.4.3
{{- end }}
chart_ref: {{ .Modules.Additional.Storage.SecretsStoreCsiDriver.ChartRef }}
chart_version: {{ .Modules.Additional.Storage.SecretsStoreCsiDriver.ChartVersion }}
{{- if .Modules.Additional.Storage.SecretsStoreCsiDriver.Enabled }}
release_state: "present"
{{- else }}
release_state: "absent"
{{- end }}

View File

@@ -1,8 +1,8 @@
- name: argo-cd-ingress
namespace: cicd
create_namespace: true
chart_ref: kube-forge/service-ingress
chart_version: 0.1.0
chart_ref: {{ .Modules.Cicd.ArgoCd.ServiceIngress.ChartRef }}
chart_version: {{ .Modules.Cicd.ArgoCd.ServiceIngress.ChartVersion }}
{{- if and .Modules.Cicd.Enabled (eq .Modules.Cicd.ArgoCd.Expose.Type "ingress") }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: argo-cd
namespace: cicd
create_namespace: true
chart_ref: kube-forge/argo-cd
chart_version: 6.7.12
chart_ref: {{ .Modules.Cicd.ArgoCd.ChartRef }}
chart_version: {{ .Modules.Cicd.ArgoCd.ChartVersion }}
{{- if .Modules.Cicd.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,13 +1,13 @@
- name: argo-rollouts
namespace: cicd
create_namespace: true
chart_ref: kube-forge/argo-rollouts
chart_ref: {{ .Modules.Cicd.Rollouts.ChartRef }}
chart_version: {{ .Modules.Cicd.Rollouts.ChartVersion }}
{{- if and .Modules.Cicd.Enabled .Modules.Cicd.Rollouts.Enabled }}
release_state: "present"
{{- else }}
release_state: "absent"
{{- end }}
chart_version: 2.35.1
values:
installCRDs: true
keepCRDs: false

View File

@@ -1,7 +1,7 @@
- name: keel
namespace: kube-system
chart_ref: kube-forge/keel
chart_version: 1.0.3
chart_ref: {{ .Modules.Cicd.UpdatesOperator.ChartRef }}
chart_version: {{ .Modules.Cicd.UpdatesOperator.ChartVersion }}
{{- if and .Modules.Cicd.Enabled .Modules.Cicd.UpdatesOperator.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: fluent-operator
namespace: observability
create_namespace: true
chart_ref: kube-forge/fluent-operator
chart_version: 2.7.0
chart_ref: {{ .Modules.Observability.Logging.Operator.ChartRef }}
chart_version: {{ .Modules.Observability.Logging.Operator.ChartVersion }}
{{- if and .Modules.Observability.Enabled .Modules.Observability.Logging.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: loki
namespace: observability
create_namespace: true
chart_ref: kube-forge/loki
chart_version: 5.47.2
chart_ref: {{ .Modules.Observability.Logging.Loki.ChartRef }}
chart_version: {{ .Modules.Observability.Logging.Loki.ChartVersion }}
{{- if and .Modules.Observability.Enabled .Modules.Observability.Logging.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: observability
namespace: observability
create_namespace: true
chart_ref: kube-forge/observability
chart_version: 0.1.0
chart_ref: {{ .Modules.Observability.ChartRef }}
chart_version: {{ .Modules.Observability.ChartVersion }}
{{- if .Modules.Observability.Enabled }}
release_state: "present"
{{- else }}
@@ -210,7 +210,6 @@
domain: &grafanaDomain {{ .Modules.Observability.Visualization.Grafana.Expose.Domain }}
{{- if eq .Modules.Observability.Visualization.Grafana.Expose.Type "NodePort" }}
serviceNodePort: {{ .Modules.Observability.Visualization.Grafana.Expose.NodePortHttp }}
{{- end }}
image:
repository: {{ .Modules.Observability.Visualization.Grafana.Image }}
@@ -224,6 +223,7 @@
config:
server: |
enable_gzip = true
root_url = {{ if .Modules.Observability.Visualization.Grafana.Expose.Tls.Enabled }}https{{ else }}http{{ end }}://{{ .Modules.Observability.Visualization.Grafana.Expose.Domain }}
security: |

View File

@@ -1,8 +1,8 @@
- name: opentelemetry-operator
namespace: observability
create_namespace: true
chart_ref: kube-forge/opentelemetry-operator
chart_version: 0.55.0
chart_ref: {{ .Modules.Observability.Tracing.Operator.ChartRef }}
chart_version: {{ .Modules.Observability.Tracing.Operator.ChartVersion }}
{{- if and .Modules.Observability.Enabled .Modules.Observability.Tracing.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: tempo
namespace: observability
create_namespace: true
chart_ref: kube-forge/tempo
chart_version: 1.7.2
chart_ref: {{ .Modules.Observability.Tracing.Tempo.ChartRef }}
chart_version: {{ .Modules.Observability.Tracing.Tempo.ChartVersion }}
{{- if and .Modules.Observability.Enabled .Modules.Observability.Tracing.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: harbor-certificate-generator
namespace: {{ .Modules.Registry.Namespace }}
create_namespace: true
chart_ref: kube-forge/certificate-generator
chart_version: 0.1.0
chart_ref: {{ .Modules.Registry.Tls.CertificateGenerator.ChartRef }}
chart_version: {{ .Modules.Registry.Tls.CertificateGenerator.ChartVersion }}
{{- if and .Modules.Registry.Enabled (eq .Modules.Registry.Expose.Type "ingress") }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: harbor
namespace: {{ .Modules.Registry.Namespace }}
create_namespace: true
chart_ref: kube-forge/harbor
chart_version: 1.14.2
chart_ref: {{ .Modules.Registry.ChartRef }}
chart_version: {{ .Modules.Registry.ChartVersion }}
{{- if .Modules.Registry.Enabled }}
release_state: "present"
{{- else }}

View File

@@ -1,8 +1,8 @@
- name: vault
namespace: secrets-storage
create_namespace: true
chart_ref: kube-forge/vault
chart_version: 0.1.0
chart_ref: {{ .Modules.SecretsStorage.ChartRef }}
chart_version: {{ .Modules.SecretsStorage.ChartVersion }}
{{- if .Modules.SecretsStorage.Enabled }}
release_state: "present"
{{- else }}