-
Notifications
You must be signed in to change notification settings - Fork 66
Closed
Labels
Description
Following #971 and #972, we need to wire up the logic such that a ServiceAccount
referenced in a ClusterExtension
is used to install/upgrade/uninstall content via the Helm client.
While exact implementation may vary, here are some things to consider during implementation:
- The type implemented in Implement a Go struct for fetching and caching authentication tokens for a ServiceAccount #972 could likely be used to create a
client.RestConfigMapper
that is used withclient.NewActionConfigGetter
to configure the helm client created for a given ClusterExtension.- You can see where the
client.NewActionConfigGetter
is configured here:operator-controller/cmd/manager/main.go
Lines 168 to 175 in 2eca31d
cfgGetter, err := helmclient.NewActionConfigGetter(mgr.GetConfig(), mgr.GetRESTMapper(), helmclient.StorageNamespaceMapper(installNamespaceMapper), helmclient.ClientNamespaceMapper(installNamespaceMapper), ) if err != nil { setupLog.Error(err, "unable to config for creating helm client") os.Exit(1) }
- You can see where the
Acceptance Criteria:
- The
client.NewActionConfigGetter
setup inoperator-controller/cmd/manager/main.go
Lines 168 to 175 in 2eca31d
cfgGetter, err := helmclient.NewActionConfigGetter(mgr.GetConfig(), mgr.GetRESTMapper(), helmclient.StorageNamespaceMapper(installNamespaceMapper), helmclient.ClientNamespaceMapper(installNamespaceMapper), ) if err != nil { setupLog.Error(err, "unable to config for creating helm client") os.Exit(1) } client.RestConfigMapper
that creates arest.Config
configured with a token from theServiceAccount
referenced in aClusterExtension
- The token for this should be retrieved via the implementation in Implement a Go struct for fetching and caching authentication tokens for a ServiceAccount #972
- Updates to the existing unit + e2e tests as necessary for them to continue functioning as expected. It is anticipated that some work will need to be done to configure a ServiceAccount with appropriate permissions to be used during e2e tests.
- Permissions on the operator-controller ServiceAccount should be updated to no longer require write permissions on content to be installed (and clean up any other permissions that are no longer necessary)
- Any changes to the previously implemented interfaces to facilitate the wiring of components successfully are made
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done