github.com/oam-dev/kubevela@v1.9.11/references/docgen/testdata/helm.yaml (about)

     1  apiVersion: core.oam.dev/v1beta1
     2  kind: ComponentDefinition
     3  metadata:
     4    name: helm
     5  spec:
     6    workload:
     7      type: autodetects.core.oam.dev
     8    schematic:
     9      cue:
    10        template: |
    11          output: {
    12          	apiVersion: "source.toolkit.fluxcd.io/v1beta1"
    13          	metadata: {
    14          		name: context.name
    15          	}
    16          	if parameter.repoType == "git" {
    17          		kind: "GitRepository"
    18          		spec: {
    19          			url: parameter.url
    20          			if parameter.git.branch != _|_ {
    21          				ref: branch: parameter.git.branch
    22          			}
    23          			_secret
    24          			_sourceCommonArgs
    25          		}
    26          	}
    27          	if parameter.repoType == "oss" {
    28          		kind: "Bucket"
    29          		spec: {
    30          			endpoint:   parameter.url
    31          			bucketName: parameter.oss.bucketName
    32          			provider:   parameter.oss.provider
    33          			if parameter.oss.region != _|_ {
    34          				region: parameter.oss.region
    35          			}
    36          			_secret
    37          			_sourceCommonArgs
    38          		}
    39          	}
    40          	if parameter.repoType == "helm" {
    41          		kind: "HelmRepository"
    42          		spec: {
    43          			url: parameter.url
    44          			_secret
    45          			_sourceCommonArgs
    46          		}
    47          	}
    48          }
    49  
    50          outputs: release: {
    51          	apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
    52          	kind:       "HelmRelease"
    53          	metadata: {
    54          		name: context.name
    55          	}
    56          	spec: {
    57          		interval: parameter.pullInterval
    58          		chart: {
    59          			spec: {
    60          				chart:   parameter.chart
    61          				version: parameter.version
    62          				sourceRef: {
    63          					if parameter.repoType == "git" {
    64          						kind: "GitRepository"
    65          					}
    66          					if parameter.repoType == "helm" {
    67          						kind: "HelmRepository"
    68          					}
    69          					if parameter.repoType == "oss" {
    70          						kind: "Bucket"
    71          					}
    72          					name:      context.name
    73          					namespace: context.namespace
    74          				}
    75          				interval: parameter.pullInterval
    76          			}
    77          		}
    78          		if parameter.targetNamespace != _|_ {
    79          			targetNamespace: parameter.targetNamespace
    80          		}
    81          		if parameter.releaseName != _|_ {
    82          			releaseName: parameter.releaseName
    83          		}
    84          		if parameter.values != _|_ {
    85          			values: parameter.values
    86          		}
    87          	}
    88          }
    89  
    90          _secret: {
    91          	if parameter.secretRef != _|_ {
    92          		secretRef: {
    93          			name: parameter.secretRef
    94          		}
    95          	}
    96          }
    97  
    98          _sourceCommonArgs: {
    99          	interval: parameter.pullInterval
   100          	if parameter.timeout != _|_ {
   101          		timeout: parameter.timeout
   102          	}
   103          }
   104  
   105          parameter: {
   106          	repoType: *"helm" | "git" | "oss"
   107          	// +usage=The interval at which to check for repository/bucket and relese updates, default to 5m
   108          	pullInterval: *"5m" | string
   109          	// +usage=The Git or Helm repository URL, OSS endpoint, accept HTTP/S or SSH address as git url,
   110          	url: string
   111          	// +usage=The name of the secret containing authentication credentials
   112          	secretRef?: string
   113          	// +usage=The timeout for operations like download index/clone repository, optional
   114          	timeout?: string
   115  
   116          	git?: {
   117          		// +usage=The Git reference to checkout and monitor for changes, defaults to master branch
   118          		branch: string
   119          	}
   120          	oss?: {
   121          		// +usage=The bucket's name, required if repoType is oss
   122          		bucketName: string
   123          		// +usage="generic" for Minio, Amazon S3, Google Cloud Storage, Alibaba Cloud OSS, "aws" for retrieve credentials from the EC2 service when credentials not specified, default "generic"
   124          		provider: *"generic" | "aws"
   125          		// +usage=The bucket region, optional
   126          		region?: string
   127          	}
   128  
   129          	// +usage=1.The relative path to helm chart for git/oss source. 2. chart name for helm resource 3. relative path for chart package(e.g. ./charts/podinfo-1.2.3.tgz)
   130          	chart: string
   131          	// +usage=Chart version
   132          	version: *"*" | string
   133          	// +usage=The namespace for helm chart, optional
   134          	targetNamespace?: string
   135          	// +usage=The release name
   136          	releaseName?: string
   137          	// +usage=Chart values
   138          	values?: #nestedmap
   139          }
   140  
   141          #nestedmap: {
   142          	...
   143          }