--- title: Kustomize --- Create a Kustomize Component, it could be from Git Repo or OSS bucket or image registry. ## Watch Files ### Deploy From OSS bucket KubeVela's `kustomize` component meets the needs of users to directly connect Yaml files and folders as component products. No matter whether your Yaml file/folder is stored in a Git Repo or an OSS bucket, KubeVela can read and deliver it. Let's take the YAML folder component from the OSS bucket registry as an example to explain the usage. In the `Application` this time, I hope to deliver a component named bucket-comp. The deployment file corresponding to the component is stored in the cloud storage OSS bucket, and the corresponding bucket name is definition-registry. `kustomize.yaml` comes from this address of oss-cn-beijing.aliyuncs.com and the path is `./app/prod/`. 1. (Optional) If your OSS bucket needs identity verification, create a Secret: ```shell $ kubectl create secret generic bucket-secret --from-literal=accesskey= --from-literal=secretkey= secret/bucket-secret created ``` 2. Deploy it: ```shell cat <// git: branch: master provider: GitHub path: ./app/dev/ ``` **Override Kustomize** ```yaml apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: bucket-app spec: components: - name: bucket-comp type: kustomize properties: # ...omitted for brevity path: ./app/ ``` ## Watch Image Registry | Parameter | Required | Description | Example | | ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------- | | image | required | The image url | oamdev/vela-core | | secretRef | optional | If it's a private image registry, use `kubectl create secret docker-registry` to create the secret | my-secret | | policy.alphabetical.order | optional | Order specifies the sorting order of the tags. Given the letters of the alphabet as tags, ascending order would select Z, and descending order would select A | asc | | policy.numerical.order | optional | Given the integer values from 0 to 9 as tags, ascending order would select 9, and descending order would select 0 | asc | | policy.semver.range | optional | Range gives a semver range for the image tag; the highest version within the range that's a tag yields the latest image | '>=1.0.0 <2.0.0' | | filterTags.extract | optional | Extract allows a capture group to be extracted from the specified regular expression pattern, useful before tag evaluation | $timestamp | | filterTags.pattern | optional | Pattern specifies a regular expression pattern used to filter for image tags | '^master-[a-f0-9]' | | commitMessage | optional | Use for more commit message | 'Image: {{range .Updated.Images}}{{println .}}{{end}}' | **Example** ```yaml apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: image-app spec: components: - name: image type: kustomize properties: imageRepository: image: secretRef: imagesecret filterTags: pattern: '^master-[a-f0-9]+-(?P[0-9]+)' extract: '$ts' policy: numerical: order: asc commitMessage: "Image: {{range .Updated.Images}}{{println .}}{{end}}" ```