github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/cli/create/template/io_chaos_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  	namespace: string
    21  	action:    string
    22  	selector: {}
    23  	mode:     string
    24  	value:    string
    25  	duration: string
    26  
    27  	delay: string
    28  	errno: int
    29  	attr?: {}
    30  	mistake?: {}
    31  
    32  	volumePath: string
    33  	path:       string
    34  	percent:    int
    35  	methods: [...]
    36  	containerNames: [...]
    37  }
    38  
    39  // required, k8s api resource content
    40  content: {
    41  	kind:       "IOChaos"
    42  	apiVersion: "chaos-mesh.org/v1alpha1"
    43  	metadata: {
    44  		generateName: "io-chaos-"
    45  		namespace:    options.namespace
    46  	}
    47  	spec: {
    48  		selector: options.selector
    49  		mode:     options.mode
    50  		value:    options.value
    51  		action:   options.action
    52  		duration: options.duration
    53  
    54  		delay: options.delay
    55  		errno: options.errno
    56  		if len(options.attr) != 0 {
    57  			attr: options.attr
    58  		}
    59  		if len(options.mistake) != 0 {
    60  			mistake: options.mistake
    61  		}
    62  
    63  		volumePath:     options.volumePath
    64  		path:           options.path
    65  		percent:        options.percent
    66  		methods:        options.methods
    67  		containerNames: options.containerNames
    68  	}
    69  }