github.com/kotalco/kotal@v0.3.0/apis/near/v1alpha1/node_defaulting_webhook.go (about) 1 package v1alpha1 2 3 import ( 4 "sigs.k8s.io/controller-runtime/pkg/webhook" 5 ) 6 7 // +kubebuilder:webhook:path=/mutate-near-kotal-io-v1alpha1-node,mutating=true,failurePolicy=fail,groups=near.kotal.io,resources=nodes,verbs=create;update,versions=v1alpha1,name=mutate-near-v1alpha1-node.kb.io,sideEffects=None,admissionReviewVersions=v1 8 9 var _ webhook.Defaulter = &Node{} 10 11 // Default implements webhook.Defaulter so a webhook will be registered for the type 12 func (n *Node) Default() { 13 nodelog.Info("default", "name", n.Name) 14 15 if n.Spec.Image == "" { 16 n.Spec.Image = DefaultNearImage 17 } 18 19 if n.Spec.Replicas == nil { 20 // constants are not addressable 21 replicas := DefaltReplicas 22 n.Spec.Replicas = &replicas 23 } 24 25 if n.Spec.MinPeers == 0 { 26 n.Spec.MinPeers = DefaultMinPeers 27 } 28 29 if n.Spec.RPCPort == 0 { 30 n.Spec.RPCPort = DefaultRPCPort 31 } 32 33 if n.Spec.PrometheusPort == 0 { 34 n.Spec.PrometheusPort = DefaultPrometheusPort 35 } 36 37 if n.Spec.P2PPort == 0 { 38 n.Spec.P2PPort = DefaultP2PPort 39 } 40 41 if n.Spec.CPU == "" { 42 n.Spec.CPU = DefaultNodeCPURequest 43 } 44 if n.Spec.CPULimit == "" { 45 n.Spec.CPULimit = DefaultNodeCPULimit 46 } 47 48 if n.Spec.Memory == "" { 49 n.Spec.Memory = DefaultNodeMemoryRequest 50 } 51 if n.Spec.MemoryLimit == "" { 52 n.Spec.MemoryLimit = DefaultNodeMemoryLimit 53 } 54 55 if n.Spec.Storage == "" { 56 storage := DefaultNodeStorageRequest 57 if n.Spec.Archive { 58 storage = DefaultArchivalNodeStorageRequest 59 } 60 n.Spec.Storage = storage 61 } 62 63 }