github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/cli/create/template/cluster_template.cue (about)

     1  //Copyright (C) 2022-2023 ApeCloud Co., Ltd
     2  //
     3  //This file is part of KubeBlocks project
     4  //
     5  //This program is free software: you can redistribute it and/or modify
     6  //it under the terms of the GNU Affero General Public License as published by
     7  //the Free Software Foundation, either version 3 of the License, or
     8  //(at your option) any later version.
     9  //
    10  //This program is distributed in the hope that it will be useful
    11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  //GNU Affero General Public License for more details.
    14  //
    15  //You should have received a copy of the GNU Affero General Public License
    16  //along with this program.  If not, see <http://www.gnu.org/licenses/>.
    17  
    18  // required, command line input options for parameters and flags
    19  options: {
    20  	name:              string
    21  	namespace:         string
    22  	clusterDefRef:     string
    23  	clusterVersionRef: string
    24  	componentSpecs: [...]
    25  	terminationPolicy: string
    26  	podAntiAffinity:   string
    27  	tenancy:           string
    28  	topologyKeys: [...]
    29  	nodeLabels: {}
    30  	tolerations: [...]
    31  	annotations: {}
    32  	backupConfig: {}
    33  }
    34  
    35  // required, k8s api resource content
    36  content: {
    37  	apiVersion: "apps.kubeblocks.io/v1alpha1"
    38  	kind:       "Cluster"
    39  	metadata: {
    40  		name:        options.name
    41  		namespace:   options.namespace
    42  		annotations: options.annotations
    43  	}
    44  	spec: {
    45  		clusterDefinitionRef: options.clusterDefRef
    46  		clusterVersionRef:    options.clusterVersionRef
    47  		affinity: {
    48  			podAntiAffinity: options.podAntiAffinity
    49  			topologyKeys:    options.topologyKeys
    50  			nodeLabels:      options.nodeLabels
    51  			tenancy:         options.tenancy
    52  		}
    53  		backup:            options.backupConfig
    54  		tolerations:       options.tolerations
    55  		componentSpecs:    options.componentSpecs
    56  		terminationPolicy: options.terminationPolicy
    57  	}
    58  }