diff --git a/addons/packages/fluxcd-kustomize-controller/0.21.1/README.md b/addons/packages/fluxcd-kustomize-controller/0.21.1/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9e08f55bec1edaa8b3e5bea3f247385d6753c987
--- /dev/null
+++ b/addons/packages/fluxcd-kustomize-controller/0.21.1/README.md
@@ -0,0 +1,258 @@
+# kustomize-controller
+
+The kustomize-controller is a Kubernetes operator, specialized in running continuous delivery pipelines for
+infrastructure and workloads defined with Kubernetes manifests and assembled with Kustomize.
+
+The kustomize-controller is part of a composable [GitOps](https://fluxcd.io/docs/components/) toolkit and depends on [source-controller](https://github.com/fluxcd/source-controller) to acquire the Kubernetes manifests from Git repositories and S3 compatible storage buckets.
+
+The kustomize-controller implements the [kustomize.toolkit.fluxcd.io](https://github.com/fluxcd/kustomize-controller/tree/main/docs/spec/v1beta2) API and is one of the component of GitOps toolkit.
+
+## Configuration
+
+The Kustomize controller package has following configurable properties.
+
+| Value           | Required/Optional | Description                     |
+|-----------------|-------------------|---------------------------------|
+| `namespace`     | Optional          | Sets namespace for k8s objects. |
+| `limits_cpu`    | Optional          | Sets maximum usage of cpu.      |
+| `limits_memory` | Optional          | Sets maximum usage of memory.   |
+
+## Installation
+
+To install FluxCD kustomize-controller from the Tanzu Application Platform package repository:
+
+1. Prerequisite:-
+  
+   - Install source-controller package:-
+
+     Kustomize-controller package requires source-controller package to be installed for acquiring the Kubernetes manifests from the sources.
+  
+      ```shell
+      tanzu package install fluxcd-source-controller -p fluxcd-source-controller.community.tanzu.vmware.com -v VERSION-NUMBER
+      ```
+  
+      Where:
+
+       - VERSION-NUMBER is the version of the package listed in step 1.
+
+      For example:
+
+      ```shell
+      tanzu package install fluxcd-source-controller -p fluxcd-source-controller.community.tanzu.vmware.com -v 0.21.2
+      \ Installing package 'fluxcd-source-controller.community.tanzu.vmware.com'
+      | Getting package metadata for 'fluxcd-source-controller.community.tanzu.vmware.com'
+      | Creating service account 'fluxcd-source-controller-default-sa'
+      | Creating cluster admin role 'fluxcd-source-controller-default-cluster-role'
+      | Creating cluster role binding 'fluxcd-source-controller-default-cluster-rolebinding'
+      | Creating package resource
+      / Waiting for 'PackageInstall' reconciliation for 'fluxcd-source-controller'
+      \ 'PackageInstall' resource install status: Reconciling
+  
+       Added installed package 'fluxcd-source-controller'
+
+      ```
+
+2. List version information for the package by running:
+
+    ```shell
+    tanzu package available list kustomize-controller.fluxcd.community.tanzu.vmware.com
+    ```
+
+    For example:
+
+    ```shell
+    $ tanzu package available list kustomize-controller.fluxcd.community.tanzu.vmware.com
+      / Retrieving package versions for kustomize-controller.fluxcd.community.tanzu.vmware.com...  
+      NAME                                                    VERSION  RELEASED-AT  
+      kustomize-controller.fluxcd.community.tanzu.vmware.com  0.21.1   2022-02-23 16:44:08 +0530 IST  
+    ```
+  
+3. Configure kustomize-controller package:  
+  
+   User can optionally provide the configuration parameters with --values-file flag while installing the package. Download the values.yaml file from [values.yaml](https://github.com/vmware-tanzu/package-for-kustomize-controller/blob/main/0.21.1/bundle/config/values.yaml).
+  
+   ```shell
+   cat values.yaml  
+   #@data/values
+   ---
+   namespace: kustomize-system
+   limits_cpu: 1000m
+   limits_memory: 1Gi
+   ```
+
+4. Install the package by running:
+
+   ```shell
+   tanzu package install fluxcd-kustomize-controller -p kustomize-controller.fluxcd.community.tanzu.vmware.com -v VERSION-NUMBER --values-file VALUES-FILE
+   ```
+
+   Where:
+
+   - `VERSION-NUMBER` is the version of the package listed in step 1.
+   - `VALUES-FILE` is the configuration file for the package listed in step1.
+
+   For example:
+
+   ```shell
+   tanzu package install fluxcd-kustomize-controller -p kustomize-controller.fluxcd.community.tanzu.vmware.com -v 0.21.1 --values-file values.yaml  
+   / Installing package 'kustomize-controller.fluxcd.community.tanzu.vmware.com'
+   | Getting package metadata for 'kustomize-controller.fluxcd.community.tanzu.vmware.com'
+   | Creating service account 'fluxcd-kustomize-controller-default-sa'
+   | Creating cluster admin role 'fluxcd-kustomize-controller-default-cluster-role'
+   | Creating cluster role binding 'fluxcd-kustomize-controller-default-cluster-rolebinding'
+   | Creating package resource
+   / Waiting for 'PackageInstall' reconciliation for 'fluxcd-kustomize-controller'
+   \ 'PackageInstall' resource install status: Reconciling
+
+   Added installed package 'fluxcd-kustomize-controller'
+   ```
+
+5. Verify the package install by running:
+
+   ```shell
+   tanzu package installed get fluxcd-kustomize-controller
+   ```
+
+   For example:
+
+   ```shell
+   - Retrieving installation details for fluxcd-kustomize-controller...
+     NAME:                    fluxcd-kustomize-controller
+     PACKAGE-NAME:            kustomize-controller.fluxcd.community.tanzu.vmware.com
+     PACKAGE-VERSION:         0.21.1
+     STATUS:                  Reconcile succeeded
+     CONDITIONS:              [{ReconcileSucceeded True  }]
+   ```
+
+   Verify that `STATUS` is `Reconcile succeeded`
+
+   ```shell
+   kubectl get pods -n kustomize-system
+   ```
+
+   For example:
+
+   ```shell
+   kubectl get pods -n kustomize-system
+   NAME                                    READY   STATUS    RESTARTS   AGE
+   kustomize-controller-7d96857bfc-hcbmk   1/1     Running   0          3m36s
+   ```
+
+   Verify that `STATUS` is `Running`
+
+## Try kustomize-controller
+
+1. Verify all the objects are installed:
+
+    This package would create a new namespace where all the elements of fluxcd will be hosted called `kustomize-system`
+
+    you can verify the main components of `kustomize-controller` were installed by running:
+
+    ```shell
+    kubectl get all -n kustomize-system  
+    NAME                                        READY   STATUS    RESTARTS   AGE
+    pod/kustomize-controller-7d96857bfc-hcbmk   1/1     Running   0          6m12s
+
+    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
+    deployment.apps/kustomize-controller   1/1     1            1           6m12s
+
+    NAME                                              DESIRED   CURRENT   READY   AGE
+    replicaset.apps/kustomize-controller-7d96857bfc   1         1         1       6m12s
+    ```
+
+    you should get something really similar!
+
+2. Verify all the CRD were installed correctly:
+
+    The way you would communicate with `kustomize-controller` would be through its CRDs, this will be your main action point.
+
+    In order to check all the CRDs were installed you can run:
+
+    ```shell
+    kubectl get crds -n flux-system | grep ".fluxcd.io"  
+    buckets.source.toolkit.fluxcd.io                                               2022-04-08T11:28:55Z
+    gitrepositories.source.toolkit.fluxcd.io                                       2022-04-08T11:28:55Z
+    helmcharts.source.toolkit.fluxcd.io                                            2022-04-08T11:28:55Z
+    helmrepositories.source.toolkit.fluxcd.io                                      2022-04-08T11:28:55Z
+    kustomizations.kustomize.toolkit.fluxcd.io                                     2022-04-10T16:12:13Z
+    ```
+
+3. Try one simple example:
+
+    Try one quick example yourself, so you can check everything is working as expected
+
+    - Let's consume a `GitRepository` and `Kustomization` object,
+
+      - Create the following `sample.yaml` file:
+
+       ```yaml
+       apiVersion: source.toolkit.fluxcd.io/v1beta1
+       kind: GitRepository
+       metadata:
+         name: podinfo
+         namespace: flux-system
+       spec:
+         interval: 1m
+         url: https://github.com/stefanprodan/podinfo
+       ---
+       apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
+       kind: Kustomization
+       metadata:
+         name: podinfo
+         namespace: flux-system
+       spec:
+         interval: 5m0s
+         path: ./kustomize
+         prune: true
+         sourceRef:
+           kind: GitRepository
+           name: podinfo
+         targetNamespace: flux-system
+       ```
+
+      - Apply the created conf
+
+       ```shell
+       kubectl apply -f sample.yaml
+       gitrepository.source.toolkit.fluxcd.io/podinfo created
+       kustomization.kustomize.toolkit.fluxcd.io/podinfo created
+       ```
+
+      - Check the git-repository was fetched correctly
+      - Check the Kustomization is created
+
+       ```shell
+
+       kubectl get GitRepository -A
+       NAMESPACE     NAME      URL                                       READY   STATUS                          6m12s
+       flux-system   podinfo   https://github.com/stefanprodan/podinfo   True    Fetched revision: master/b8910253653d375bce5b71178518fa50a9cab23f   3s
+  
+       kubectl get Kustomization -A
+       NAMESPACE     NAME      READY   STATUS                                                              AGE
+       flux-system   podinfo   True    Applied revision: master/b8910253653d375bce5b71178518fa50a9cab23f   8s
+  
+       k get all -n flux-system
+       NAME                                    READY   STATUS    RESTARTS   AGE
+       pod/podinfo-694f589bf6-5p8bc            1/1     Running   0          7m59s
+       pod/podinfo-694f589bf6-tll6k            1/1     Running   0          8m14s
+  
+       NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
+       service/podinfo             ClusterIP   10.96.169.222   <none>        9898/TCP,9999/TCP   8m14s
+  
+       NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
+       deployment.apps/podinfo             2/2     2            2           8m14s
+  
+       NAME                                          DESIRED   CURRENT   READY   AGE
+       replicaset.apps/podinfo-694f589bf6            2         2         2       8m14s
+  
+       NAME                                          REFERENCE            TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
+       horizontalpodautoscaler.autoscaling/podinfo   Deployment/podinfo   <unknown>/99%   2         4         2          8m14s
+
+       ```
+
+    You can find more examples checking out the samples folder on [fluxcd/kustomize-controller/samples](https://github.com/fluxcd/kustomize-controller/tree/main/config/samples)
+
+## Documentation
+
+For documentation specific to kustomize-controller, check out the main repository
+[fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller).
diff --git a/addons/packages/fluxcd-kustomize-controller/0.21.1/package.yaml b/addons/packages/fluxcd-kustomize-controller/0.21.1/package.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..93e24a0cfc12a50e50b6dcc2e8f33e511afd4caa
--- /dev/null
+++ b/addons/packages/fluxcd-kustomize-controller/0.21.1/package.yaml
@@ -0,0 +1,39 @@
+apiVersion: data.packaging.carvel.dev/v1alpha1
+kind: Package
+metadata:
+  name: kustomize-controller.fluxcd.community.tanzu.vmware.com.0.21.1
+spec:
+  refName: kustomize-controller.fluxcd.community.tanzu.vmware.com
+  version: 0.21.1
+  releasedAt: "2022-02-23T11:14:08Z"
+  capacityRequirementsDescription: ""
+  template:
+    spec:
+      fetch:
+        - imgpkgBundle:
+            image: projects.registry.vmware.com/tce/fluxcd-kustomize-controller-bundle@sha256:6eb24dc826b1a293eebb93f9eeb1d251cc297564240b0de9a6286aab9959d038
+      template:
+        - ytt:
+            paths:
+              - config/
+        - kbld:
+            paths:
+              - "-"
+              - .imgpkg/images.yml
+      deploy:
+        - kapp: {}
+  valuesSchema:
+    openAPIv3:
+      properties:
+        namespace:
+          type: string
+          description: Deployment and service namespace
+          default: kustomize-system
+        limits_cpu:
+          type: string
+          description: Set cpu usuage limit
+          default: 1000m
+        limits_memory:
+          type: string
+          description: Set memory usuage limit
+          default: 1Gi
diff --git a/addons/packages/fluxcd-kustomize-controller/metadata.yaml b/addons/packages/fluxcd-kustomize-controller/metadata.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9ee3994b1136e5392b83a5e0be086c93fc519731
--- /dev/null
+++ b/addons/packages/fluxcd-kustomize-controller/metadata.yaml
@@ -0,0 +1,14 @@
+apiVersion: data.packaging.carvel.dev/v1alpha1
+kind: PackageMetadata
+metadata:
+  name: kustomize-controller.fluxcd.community.tanzu.vmware.com
+spec:
+  displayName: "Flux Kustomize Controller"
+  shortDescription:  "Kustomize controller is one of the components in GitOps toolkit."
+  longDescription: "The kustomize-controller is a Kubernetes operator, specialized in running continuous delivery pipelines for infrastructure and workloads defined with Kubernetes manifests and assembled with Kustomize."
+  supportDescription: "Support provided by VMware for deployment on TKG 1.4+ clusters. Best-effort support for deployment on any conformant Kubernetes cluster. Contact support by opening a support request via VMware Cloud Services or my.vmware.com."
+  providerName: "VMware"
+  categories:
+  - gitops
+  maintainers:
+  - name: "Build-integration-team"
diff --git a/addons/packages/fluxcd-kustomize-controller/vendir.lock.yml b/addons/packages/fluxcd-kustomize-controller/vendir.lock.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eff0ee8e3fa37c7b21a78c2fd21ed9694f38e9bd
--- /dev/null
+++ b/addons/packages/fluxcd-kustomize-controller/vendir.lock.yml
@@ -0,0 +1,8 @@
+apiVersion: vendir.k14s.io/v1alpha1
+directories:
+- contents:
+  - githubRelease:
+      url: https://api.github.com/repos/vmware-tanzu/package-for-kustomize-controller/releases/63976199
+    path: .
+  path: 0.21.1
+kind: LockConfig
diff --git a/addons/packages/fluxcd-kustomize-controller/vendir.yml b/addons/packages/fluxcd-kustomize-controller/vendir.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4991914ad2556f12adeef19483569a22fee2bae4
--- /dev/null
+++ b/addons/packages/fluxcd-kustomize-controller/vendir.yml
@@ -0,0 +1,14 @@
+apiVersion: vendir.k14s.io/v1alpha1
+kind: Config
+minimumRequiredVersion: 0.12.0
+directories:
+  - path: 0.21.1
+    contents:
+      - path: .
+        githubRelease:
+          slug: vmware-tanzu/package-for-kustomize-controller
+          tag: v0.21.1
+          disableAutoChecksumValidation: true
+          assetNames:
+          - "package.yaml"
+          - "README.md"