diff --git a/chart/templates/helm-repository/helmrepo.yaml b/chart/templates/helm-repository/helmrepo.yaml
index 57f076058dceb062d15be4bedf518d7c31821e79..4ab69a335cb3ccf861f9acd8831cef31d3ff09a1 100644
--- a/chart/templates/helm-repository/helmrepo.yaml
+++ b/chart/templates/helm-repository/helmrepo.yaml
@@ -5,6 +5,7 @@ metadata:
   name: {{ .name }}
   namespace: {{ $.Release.Namespace }}
 spec:
+  provider: {{ $.Values.flux.provider | default "generic" }}
   interval: {{ $.Values.flux.interval }}
   type: {{ .type | default "default" }}
   url: {{ .repository }}
diff --git a/chart/values.schema.json b/chart/values.schema.json
index 492af7b1b03481bf872c458ea4bfbd6f4a658899..b3a51f10e0fbddf1badc73cad20ca10161790c8f 100644
--- a/chart/values.schema.json
+++ b/chart/values.schema.json
@@ -1327,6 +1327,15 @@
           "existingSecret": {
             "type": "string"
           },
+          "provider": {
+            "type": "string",
+            "enum": [
+              "generic",
+              "aws",
+              "azure",
+              "gcp"
+            ]
+          },
           "type": {
             "type": "string",
             "enum": [
@@ -1358,6 +1367,18 @@
               "username",
               "password"
             ]
+          },
+          {
+            "required": [
+              "provider"
+            ],
+            "not": {
+              "properties": {
+                "provider": {
+                  "const": "generic"
+                }
+              }
+            }
           }
         ],
         "required": [