Provisioning: Allow disabling of image rendering instance wide (#111359)
This commit is contained in:
@@ -85,7 +85,8 @@ type APIBuilder struct {
|
||||
// TODO: Set this up in the standalone API server
|
||||
onlyApiServer bool
|
||||
|
||||
allowedTargets []provisioning.SyncTargetType
|
||||
allowedTargets []provisioning.SyncTargetType
|
||||
allowImageRendering bool
|
||||
|
||||
features featuremgmt.FeatureToggles
|
||||
usageStats usagestats.Service
|
||||
@@ -133,6 +134,7 @@ func NewAPIBuilder(
|
||||
extraWorkers []jobs.Worker,
|
||||
jobHistoryConfig *JobHistoryConfig,
|
||||
allowedTargets []provisioning.SyncTargetType,
|
||||
allowImageRendering bool,
|
||||
newStandaloneClientFactoryFunc func(loopbackConfigProvider apiserver.RestConfigProvider) resources.ClientFactory, // optional, only used for standalone apiserver
|
||||
) *APIBuilder {
|
||||
var clients resources.ClientFactory
|
||||
@@ -161,6 +163,7 @@ func NewAPIBuilder(
|
||||
jobHistoryConfig: jobHistoryConfig,
|
||||
extraWorkers: extraWorkers,
|
||||
allowedTargets: allowedTargets,
|
||||
allowImageRendering: allowImageRendering,
|
||||
}
|
||||
|
||||
for _, builder := range extraBuilders {
|
||||
@@ -244,6 +247,7 @@ func RegisterAPIService(
|
||||
extraWorkers,
|
||||
createJobHistoryConfigFromSettings(cfg),
|
||||
allowedTargets,
|
||||
cfg.ProvisioningAllowImageRendering,
|
||||
nil,
|
||||
)
|
||||
apiregistration.RegisterAPI(builder)
|
||||
@@ -558,7 +562,18 @@ func (b *APIBuilder) Validate(ctx context.Context, a admission.Attributes, o adm
|
||||
cfg := repo.Config()
|
||||
|
||||
if !slices.Contains(b.allowedTargets, cfg.Spec.Sync.Target) {
|
||||
return fmt.Errorf("sync target %s is not supported", cfg.Spec.Sync.Target)
|
||||
list = append(list,
|
||||
field.Invalid(
|
||||
field.NewPath("spec", "target"),
|
||||
cfg.Spec.Sync.Target,
|
||||
"sync target is not supported"))
|
||||
}
|
||||
|
||||
if !b.allowImageRendering && cfg.Spec.GitHub != nil && cfg.Spec.GitHub.GenerateDashboardPreviews {
|
||||
list = append(list,
|
||||
field.Invalid(field.NewPath("spec", "generateDashboardPreviews"),
|
||||
cfg.Spec.GitHub.GenerateDashboardPreviews,
|
||||
"image rendering is not enabled"))
|
||||
}
|
||||
|
||||
if a.GetOperation() == admission.Update {
|
||||
|
||||
@@ -167,6 +167,7 @@ func (b *APIBuilder) handleSettings(w http.ResponseWriter, r *http.Request) {
|
||||
// FIXME: this shouldn't be here in provisioning but at the dual writer or something about the storage
|
||||
LegacyStorage: legacyStorage,
|
||||
AvailableRepositoryTypes: b.repoFactory.Types(),
|
||||
AllowImageRendering: b.allowImageRendering,
|
||||
}
|
||||
|
||||
for i, val := range all {
|
||||
|
||||
Reference in New Issue
Block a user