in images/controller/pkg/appconfig.go [33:78]
func FetchBrokerAppConfigs(namespace string) ([]AppConfigObject, error) {
appConfigs := make([]AppConfigObject, 0)
type appConfigItems struct {
Items []AppConfigObject `yaml:"items"`
}
// Fetch all broker app configs
cmd := exec.Command("sh", "-c", fmt.Sprintf("kubectl get brokerappconfigs -n %s -o json", namespace))
output, err := cmd.Output()
if err != nil {
return appConfigs, err
}
var items appConfigItems
err = json.Unmarshal(output, &items)
// Set default values
for i := range items.Items {
// Default app type to StatefulSet
if items.Items[i].Spec.Type == "" {
items.Items[i].Spec.Type = AppTypeStatefulSet
}
// Default userBundles to empty list if not provided.
if items.Items[i].Spec.UserBundles == nil {
items.Items[i].Spec.UserBundles = make([]UserBundleSpec, 0)
}
if items.Items[i].Spec.Type == AppTypeDeployment {
// Default deployment selector to match app name.
if len(items.Items[i].Spec.Deployment.Selector) == 0 {
items.Items[i].Spec.Deployment.Selector = fmt.Sprintf("app=%s", items.Items[i].Spec.Name)
}
if items.Items[i].Spec.Deployment.Replicas == nil {
// Default number of deployment replicas.
// This value is a pointer so that it can accept 0 as a valid value.
defaultReplicas := DefaultDeploymentReplicas
items.Items[i].Spec.Deployment.Replicas = &defaultReplicas
}
}
}
return items.Items, err
}