zitadel/operator/database/kinds/databases/managed/desired.go

45 lines
1.3 KiB
Go

package managed
import (
"fmt"
corev1 "k8s.io/api/core/v1"
"github.com/caos/orbos/mntr"
"github.com/caos/orbos/pkg/kubernetes/k8s"
"github.com/caos/orbos/pkg/tree"
)
type DesiredV0 struct {
Common *tree.Common `yaml:",inline"`
Spec Spec
}
type Spec struct {
Verbose bool
Force bool `yaml:"force,omitempty"`
ReplicaCount int `yaml:"replicaCount,omitempty"`
StorageCapacity string `yaml:"storageCapacity,omitempty"`
StorageClass string `yaml:"storageClass,omitempty"`
NodeSelector map[string]string `yaml:"nodeSelector,omitempty"`
Tolerations []corev1.Toleration `yaml:"tolerations,omitempty"`
ClusterDns string `yaml:"clusterDNS,omitempty"`
Backups map[string]*tree.Tree `yaml:"backups,omitempty"`
Resources *k8s.Resources `yaml:"resources,omitempty"`
MaxSQLMemory string `yaml:"maxSqlMemory,omitempty"`
Cache string `yaml:"cache,omitempty"`
}
func parseDesiredV0(desiredTree *tree.Tree) (*DesiredV0, error) {
desiredKind := &DesiredV0{
Common: desiredTree.Common,
Spec: Spec{},
}
if err := desiredTree.Original.Decode(desiredKind); err != nil {
return nil, mntr.ToUserError(fmt.Errorf("parsing desired state failed"))
}
return desiredKind, nil
}