Skip to content

Commit

Permalink
Get helm repositories and helm charts with flux state
Browse files Browse the repository at this point in the history
  • Loading branch information
dzsak committed Mar 27, 2024
1 parent 41ec15d commit f7ee504
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 12 deletions.
58 changes: 52 additions & 6 deletions pkg/flux/flux.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@ var (
Version: "v2beta1",
Resource: "helmreleases",
}

helmRepositoryGVR = schema.GroupVersionResource{
Group: "source.toolkit.fluxcd.io",
Version: "v1beta2",
Resource: "helmrepositories",
}

helmChartGVR = schema.GroupVersionResource{
Group: "source.toolkit.fluxcd.io",
Version: "v1beta2",
Resource: "helmcharts",
}
)

func helmServices(dc *dynamic.DynamicClient) ([]Service, error) {
Expand Down Expand Up @@ -336,12 +348,14 @@ func helmStatusWithResources(

func State(c *kubernetes.Clientset, dc *dynamic.DynamicClient) (*FluxState, error) {
fluxState := &FluxState{
GitRepositories: []sourcev1.GitRepository{},
OCIRepositories: []sourcev1beta2.OCIRepository{},
Buckets: []sourcev1beta2.Bucket{},
Kustomizations: []kustomizationv1.Kustomization{},
HelmReleases: []helmv2beta2.HelmRelease{},
FluxServices: []Service{},
GitRepositories: []sourcev1.GitRepository{},
OCIRepositories: []sourcev1beta2.OCIRepository{},
Buckets: []sourcev1beta2.Bucket{},
Kustomizations: []kustomizationv1.Kustomization{},
HelmReleases: []helmv2beta2.HelmRelease{},
HelmRepositories: []sourcev1beta2.HelmRepository{},
HelmCharts: []sourcev1beta2.HelmChart{},
FluxServices: []Service{},
}

gitRepositories, err := dc.Resource(gitRepositoryGVR).
Expand Down Expand Up @@ -442,6 +456,38 @@ func State(c *kubernetes.Clientset, dc *dynamic.DynamicClient) (*FluxState, erro
fluxState.HelmReleases = append(fluxState.HelmReleases, helmRelease)
}

helmRepositories, err := dc.Resource(helmRepositoryGVR).
Namespace("").
List(context.TODO(), metav1.ListOptions{})
if err != nil {
return nil, err
}
for _, h := range helmRepositories.Items {
unstructured := h.UnstructuredContent()
var helmRepository sourcev1beta2.HelmRepository
err = runtime.DefaultUnstructuredConverter.FromUnstructured(unstructured, &helmRepository)
if err != nil {
return nil, err
}
fluxState.HelmRepositories = append(fluxState.HelmRepositories, helmRepository)
}

helmCharts, err := dc.Resource(helmChartGVR).
Namespace("").
List(context.TODO(), metav1.ListOptions{})
if err != nil {
return nil, err
}
for _, h := range helmCharts.Items {
unstructured := h.UnstructuredContent()
var helmChart sourcev1beta2.HelmChart
err = runtime.DefaultUnstructuredConverter.FromUnstructured(unstructured, &helmChart)
if err != nil {
return nil, err
}
fluxState.HelmCharts = append(fluxState.HelmCharts, helmChart)
}

fluxServices, err := fluxServicesWithDetails(c)
if err != nil {
return nil, err
Expand Down
14 changes: 8 additions & 6 deletions pkg/flux/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import (
)

type FluxState struct {
GitRepositories []sourcev1.GitRepository `json:"gitRepositories"`
OCIRepositories []sourcev1beta2.OCIRepository `json:"ociRepositories"`
Buckets []sourcev1beta2.Bucket `json:"buckets"`
Kustomizations []kustomizationv1.Kustomization `json:"kustomizations"`
HelmReleases []helmv2beta2.HelmRelease `json:"helmReleases"`
FluxServices []Service `json:"fluxServices"`
GitRepositories []sourcev1.GitRepository `json:"gitRepositories"`
OCIRepositories []sourcev1beta2.OCIRepository `json:"ociRepositories"`
Buckets []sourcev1beta2.Bucket `json:"buckets"`
Kustomizations []kustomizationv1.Kustomization `json:"kustomizations"`
HelmReleases []helmv2beta2.HelmRelease `json:"helmReleases"`
HelmRepositories []sourcev1beta2.HelmRepository `json:"helmRepositories"`
HelmCharts []sourcev1beta2.HelmChart `json:"helmCharts"`
FluxServices []Service `json:"fluxServices"`
}

type Service struct {
Expand Down

0 comments on commit f7ee504

Please sign in to comment.