github.com/kotalco/kotal@v0.3.0/apis/ipfs/v1alpha1/cluster_peer_defaulting_webhook.go (about)

     1  package v1alpha1
     2  
     3  import "sigs.k8s.io/controller-runtime/pkg/webhook"
     4  
     5  // +kubebuilder:webhook:path=/mutate-ipfs-kotal-io-v1alpha1-clusterpeer,mutating=true,failurePolicy=fail,groups=ipfs.kotal.io,resources=clusterpeers,verbs=create;update,versions=v1alpha1,name=mutate-ipfs-v1alpha1-clusterpeer.kb.io,sideEffects=None,admissionReviewVersions=v1
     6  
     7  var _ webhook.Defaulter = &ClusterPeer{}
     8  
     9  // DefaultResources defaults cluster peer resources
    10  func (r *ClusterPeer) DefaultResources() {
    11  	if r.Spec.Resources.CPU == "" {
    12  		r.Spec.Resources.CPU = DefaultNodeCPURequest
    13  	}
    14  
    15  	if r.Spec.Resources.CPULimit == "" {
    16  		r.Spec.Resources.CPULimit = DefaultNodeCPULimit
    17  	}
    18  
    19  	if r.Spec.Resources.Memory == "" {
    20  		r.Spec.Resources.Memory = DefaultNodeMemoryRequest
    21  	}
    22  
    23  	if r.Spec.Resources.MemoryLimit == "" {
    24  		r.Spec.Resources.MemoryLimit = DefaultNodeMemoryLimit
    25  	}
    26  
    27  	if r.Spec.Resources.Storage == "" {
    28  		r.Spec.Resources.Storage = DefaultNodeStorageRequest
    29  	}
    30  }
    31  
    32  // Default implements webhook.Defaulter so a webhook will be registered for the type
    33  func (r *ClusterPeer) Default() {
    34  	clusterpeerlog.Info("default", "name", r.Name)
    35  
    36  	if r.Spec.Image == "" {
    37  		r.Spec.Image = DefaultGoIPFSClusterImage
    38  	}
    39  
    40  	if r.Spec.Replicas == nil {
    41  		// constants are not addressable
    42  		replicas := DefaltReplicas
    43  		r.Spec.Replicas = &replicas
    44  	}
    45  
    46  	if r.Spec.Logging == "" {
    47  		r.Spec.Logging = DefaultLogging
    48  	}
    49  
    50  	if r.Spec.Consensus == "" {
    51  		r.Spec.Consensus = DefaultIPFSClusterConsensus
    52  	}
    53  
    54  	if len(r.Spec.TrustedPeers) == 0 {
    55  		r.Spec.TrustedPeers = []string{"*"}
    56  	}
    57  
    58  	r.DefaultResources()
    59  }