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 }