github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/cli/create/template/backup_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 backupName: string 21 namespace: string 22 backupMethod: string 23 backupPolicy: string 24 deletionPolicy: string 25 retentionPeriod: string 26 parentBackupName: string 27 } 28 29 // required, k8s api resource content 30 content: { 31 apiVersion: "dataprotection.kubeblocks.io/v1alpha1" 32 kind: "Backup" 33 metadata: { 34 name: options.backupName 35 namespace: options.namespace 36 labels: { 37 "kubeblocks.io/backup-protection": "retain" 38 } 39 } 40 spec: { 41 backupMethod: options.backupMethod 42 backupPolicyName: options.backupPolicy 43 if options.deletionPolicy != "" { 44 deletionPolicy: options.deletionPolicy 45 } 46 if options.retentionPeriod != "" { 47 retentionPeriod: options.retentionPeriod 48 } 49 if options.parentBackupName != "" { 50 parentBackupName: options.parentBackupName 51 } 52 } 53 }