-
Notifications
You must be signed in to change notification settings - Fork 30
/
mandatory.go
32 lines (27 loc) · 963 Bytes
/
mandatory.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package templatelookup
import (
"context"
"fmt"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/kyma-project/lifecycle-manager/api/v1beta2"
)
// GetMandatory returns ModuleTemplates TOs (Transfer Objects) which are marked are mandatory modules.
func GetMandatory(ctx context.Context, kymaClient client.Reader) (ModuleTemplatesByModuleName,
error,
) {
moduleTemplateList := &v1beta2.ModuleTemplateList{}
if err := kymaClient.List(ctx, moduleTemplateList); err != nil {
return nil, fmt.Errorf("could not list ModuleTemplates: %w", err)
}
mandatoryModules := make(map[string]*ModuleTemplateInfo)
for _, moduleTemplate := range moduleTemplateList.Items {
moduleTemplate := moduleTemplate
if moduleTemplate.Spec.Mandatory && moduleTemplate.DeletionTimestamp.IsZero() {
mandatoryModules[moduleTemplate.Name] = &ModuleTemplateInfo{
ModuleTemplate: &moduleTemplate,
Err: nil,
}
}
}
return mandatoryModules, nil
}