Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple helm repos #3176

Closed
wants to merge 70 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
ac8c289
Switch to useProfiles for multiple helm repos and add the helm repo s…
AlinaGoaga Aug 4, 2023
281b1ff
Add repo info to profile
AlinaGoaga Aug 4, 2023
299140e
Stop continuous loop as a result of useQueries results changing
AlinaGoaga Aug 7, 2023
74c39d6
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Aug 7, 2023
a3bcea8
Add repository to profiles table
AlinaGoaga Aug 8, 2023
d3bfb6d
Showing helm repositories in autocomplete as name:namespace as there …
AlinaGoaga Aug 9, 2023
4017487
Ensure helmRepos are set again on refresh
AlinaGoaga Aug 10, 2023
cd0b409
Generate errors when queries fail for profileS
AlinaGoaga Aug 11, 2023
803729b
Update getHelmRepos to sort on namespace also to stop helmReposRefs n…
AlinaGoaga Aug 11, 2023
e850a5c
Reset selectedHelmRepositories only if empty
AlinaGoaga Aug 11, 2023
4e4cc8a
Move selected repos to form level to keep them in callbackState
AlinaGoaga Aug 17, 2023
ed209d5
Get selected repos to correctly update form state and profiles list
AlinaGoaga Aug 17, 2023
3a9be6b
Small refactor to remove expected to return a value at the end of arr…
AlinaGoaga Aug 17, 2023
cc25759
Update with main
AlinaGoaga Aug 28, 2023
0bb728e
Preserve helm repos state on Gitlab redirect
AlinaGoaga Aug 28, 2023
3060093
Hide helm repos multiselect in add app + style updates to autocomplete
AlinaGoaga Aug 28, 2023
55cb528
Scan all the incoming profiles and build up a list of unique { name,…
AlinaGoaga Aug 30, 2023
b226f16
Adapt the code we have to write out the single helmrepo during templa…
AlinaGoaga Aug 30, 2023
129b6f8
Adapt the code we have to write out the single helmrepo during templa…
AlinaGoaga Aug 31, 2023
a66c1b3
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Aug 31, 2023
5efab8a
Small cleanup
AlinaGoaga Aug 31, 2023
7ab64dd
Bring back copyHelmRepository to write the yaml files in Git
AlinaGoaga Sep 1, 2023
b38bc89
Update tests
AlinaGoaga Sep 1, 2023
ace2437
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Sep 1, 2023
f94f1ea
Update tests - 2
AlinaGoaga Sep 1, 2023
639739a
Small cleanup
AlinaGoaga Sep 4, 2023
5ac1e36
Update tests - 3
AlinaGoaga Sep 4, 2023
b901b7b
Fixes some panics
foot Sep 5, 2023
ee2f635
Solve conflicts with main
AlinaGoaga Sep 5, 2023
f165609
Merge branch 'multiple-helm-repos' of github.com:weaveworks/weave-git…
AlinaGoaga Sep 5, 2023
28a709d
Update tests - 4
AlinaGoaga Sep 5, 2023
30ab797
Update with main
AlinaGoaga Sep 5, 2023
ca76085
Update with main - 2
AlinaGoaga Sep 5, 2023
4377155
Handle the defaultHelmRepository case..
foot Sep 5, 2023
53e2006
Adjust tests
AlinaGoaga Sep 5, 2023
2311f9e
Adds a helmRepoFetcher interface
foot Sep 6, 2023
17b8539
Read the default helmRepo from the cli args
foot Sep 6, 2023
c659552
Add default helm repo to v1/config for FE to populate the field in pr…
AlinaGoaga Sep 6, 2023
0114468
gofmt
AlinaGoaga Sep 6, 2023
a1ee24f
Adds sourceRef to templates
foot Sep 11, 2023
6a61659
wip
foot Sep 12, 2023
60b05f7
Merge remote-tracking branch 'origin/main' into multiple-helm-repos
foot Sep 29, 2023
3efb831
Update tests
foot Sep 29, 2023
94b13bd
Merge branch 'main' into multiple-helm-repos
foot Oct 2, 2023
d81ff86
Merge remote-tracking branch 'origin/main' into multiple-helm-repos
foot Oct 9, 2023
27fb2e1
Adds example podinfo / cert-manager to vcluster tilt
foot Oct 9, 2023
1a3923d
Add helm repo details to required profiles and set defaults for requi…
AlinaGoaga Oct 10, 2023
9eb9d2c
Format helm repos in to namespace/name instead of name:namespace
AlinaGoaga Oct 10, 2023
e8853a3
Preselect helm repos for user on template load
AlinaGoaga Oct 12, 2023
924c98e
Bring back split of helm repos on / rather than :
AlinaGoaga Oct 12, 2023
3f46680
Set up selectedHelmRepositories from callbackState when the latter is…
AlinaGoaga Oct 12, 2023
062aa71
Set up selectedHelmRepositories when editing clusters
AlinaGoaga Oct 13, 2023
0f82e18
Remove console logs
AlinaGoaga Oct 13, 2023
e9854e9
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 13, 2023
c4aa165
Solve linting warnings
AlinaGoaga Oct 13, 2023
d6bebb2
Merge branch 'multiple-helm-repos' of github.com:weaveworks/weave-git…
AlinaGoaga Oct 13, 2023
b5dc77c
Add repoNamespace to the profiles table repository column
AlinaGoaga Oct 16, 2023
4f24f78
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 16, 2023
59164a0
Move from using name as profile index to a combination of name, repoN…
AlinaGoaga Oct 16, 2023
88b6dd2
Merge branch 'multiple-helm-repos' of github.com:weaveworks/weave-git…
AlinaGoaga Oct 16, 2023
daa07eb
Updare helm repo types in profiles AnnotationData
AlinaGoaga Oct 16, 2023
29e18cf
Remove console logs
AlinaGoaga Oct 16, 2023
8722af9
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 16, 2023
3ba8c88
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 17, 2023
818c7bd
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 20, 2023
a365d49
Merge remote-tracking branch 'origin/main' into multiple-helm-repos
foot Oct 24, 2023
d327918
BE always returns source to simplify some FE code
foot Oct 30, 2023
e556615
Merge remote-tracking branch 'origin/main' into multiple-helm-repos
foot Oct 30, 2023
b9a67c1
Merge branch 'main' into multiple-helm-repos
AlinaGoaga Oct 31, 2023
8735841
Solve conflicts with main
AlinaGoaga Nov 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions charts/templates-controller/crds/capitemplate-crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,49 @@ spec:
required:
description: If true the chart/profile will always be installed
type: boolean
sourceRef:
description: SourceRef is the name/namespace reference to
the HelmRepository. No other source types are currently
supported. The HelmRepository must be present on the rendering
cluster. The full referenced HelmRepository resource will
be included in the template output.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a
valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container
that triggered the event) or if no container name
is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to
have some well-defined way of referencing a part of
an object. TODO: this design is not final and this
field is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
targetNamespace:
description: Shortcut to template.content.spec.targetNamespace
type: string
Expand Down Expand Up @@ -193,6 +236,49 @@ spec:
required:
description: If true the chart/profile will always be installed
type: boolean
sourceRef:
description: SourceRef is the name/namespace reference to
the HelmRepository. No other source types are currently
supported. The HelmRepository must be present on the rendering
cluster. The full referenced HelmRepository resource will
be included in the template output.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a
valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container
that triggered the event) or if no container name
is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to
have some well-defined way of referencing a part of
an object. TODO: this design is not final and this
field is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
targetNamespace:
description: Shortcut to template.content.spec.targetNamespace
type: string
Expand Down
86 changes: 86 additions & 0 deletions charts/templates-controller/crds/gitopstemplate-crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,49 @@ spec:
required:
description: If true the chart/profile will always be installed
type: boolean
sourceRef:
description: SourceRef is the name/namespace reference to
the HelmRepository. No other source types are currently
supported. The HelmRepository must be present on the rendering
cluster. The full referenced HelmRepository resource will
be included in the template output.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a
valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container
that triggered the event) or if no container name
is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to
have some well-defined way of referencing a part of
an object. TODO: this design is not final and this
field is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
targetNamespace:
description: Shortcut to template.content.spec.targetNamespace
type: string
Expand Down Expand Up @@ -195,6 +238,49 @@ spec:
required:
description: If true the chart/profile will always be installed
type: boolean
sourceRef:
description: SourceRef is the name/namespace reference to
the HelmRepository. No other source types are currently
supported. The HelmRepository must be present on the rendering
cluster. The full referenced HelmRepository resource will
be included in the template output.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a
valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container
that triggered the event) or if no container name
is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to
have some well-defined way of referencing a part of
an object. TODO: this design is not final and this
field is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this
reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
x-kubernetes-map-type: atomic
targetNamespace:
description: Shortcut to template.content.spec.targetNamespace
type: string
Expand Down
10 changes: 10 additions & 0 deletions cmd/clusters-service/api/cluster_services.proto
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ message TemplateProfile {
bool required = 6;
string profile_template = 7;
string layer = 8;
SourceRef source_ref = 9;
}

message TemplateObject {
Expand Down Expand Up @@ -830,12 +831,18 @@ message Profile {
repeated string available_versions = 11;
}

message HelmRepositoryRef {
string name = 1;
string namespace = 2;
}

message ProfileValues {
string name = 1;
string version = 2;
string values = 3;
string layer = 4;
string namespace = 5;
HelmRepositoryRef helm_repository = 6;
}

message GetConfigRequest {}
Expand All @@ -845,6 +852,7 @@ message GetConfigResponse {
string management_cluster_name = 2;
string ui_config = 3;
map<string, string> git_host_types = 4;
HelmRepositoryRef default_helm_repository = 5;
}

message PolicyParamRepeatedString { repeated string values = 1; }
Expand Down Expand Up @@ -891,6 +899,8 @@ message RepositoryChart {
// This is the available versions in reverse semver order.
repeated string versions = 2;
string layer = 3;
string repo_name = 4;
string repo_namespace = 5;
}

message ListChartsForRepositoryResponse {
Expand Down
Loading