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 }