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  }