diff --git a/lib/manager/kustomize/__fixtures__/depsInResources.yaml b/lib/manager/kustomize/__fixtures__/depsInResources.yaml
index acdcb457a67de3413240fad64761276c8c5b3c89..d8c210bd9fb523affc11427904bff513888e23ba 100644
--- a/lib/manager/kustomize/__fixtures__/depsInResources.yaml
+++ b/lib/manager/kustomize/__fixtures__/depsInResources.yaml
@@ -10,5 +10,8 @@ resources:
 - deployment.yaml
 - github.com/fluxcd/flux/deploy?ref=1.19.0
 
+components:
+- github.com/fluxcd/flux/memcache-dep?ref=1.18.0
+
 images:
 - name: nginx
diff --git a/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap b/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap
index ec2fc9f8161ef301f6ce4ecd737bfed1d9086b1a..55eaee546135896981b86c74bfc7e99a09b3bce2 100644
--- a/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap
@@ -67,7 +67,7 @@ Array [
 ]
 `;
 
-exports[`manager/kustomize/extract extractPackageFile() should extract bases from bases block and the resources block 1`] = `
+exports[`manager/kustomize/extract extractPackageFile() should extract bases resources and components from their respective blocks 1`] = `
 Array [
   Object {
     "currentValue": "v0.0.1",
@@ -79,6 +79,11 @@ Array [
     "datasource": "github-tags",
     "depName": "fluxcd/flux",
   },
+  Object {
+    "currentValue": "1.18.0",
+    "datasource": "github-tags",
+    "depName": "fluxcd/flux",
+  },
 ]
 `;
 
diff --git a/lib/manager/kustomize/extract.spec.ts b/lib/manager/kustomize/extract.spec.ts
index 7fe27a25229599781470e6b00198060b9bc3ced0..44c2b71ca9c0995896c63ac4e1ead58c60014a5f 100644
--- a/lib/manager/kustomize/extract.spec.ts
+++ b/lib/manager/kustomize/extract.spec.ts
@@ -242,14 +242,16 @@ describe('manager/kustomize/extract', () => {
     it('does nothing with kustomize empty kustomize files', () => {
       expect(extractPackageFile(kustomizeEmpty)).toBeNull();
     });
-    it('should extract bases from bases block and the resources block', () => {
+    it('should extract bases resources and components from their respective blocks', () => {
       const res = extractPackageFile(kustomizeDepsInResources);
       expect(res).not.toBeNull();
       expect(res.deps).toMatchSnapshot();
-      expect(res.deps).toHaveLength(2);
+      expect(res.deps).toHaveLength(3);
       expect(res.deps[0].currentValue).toEqual('v0.0.1');
       expect(res.deps[1].currentValue).toEqual('1.19.0');
+      expect(res.deps[2].currentValue).toEqual('1.18.0');
       expect(res.deps[1].depName).toEqual('fluxcd/flux');
+      expect(res.deps[2].depName).toEqual('fluxcd/flux');
     });
     it('extracts sha256 instead of tag', () => {
       expect(extractPackageFile(sha)).toMatchSnapshot({
diff --git a/lib/manager/kustomize/extract.ts b/lib/manager/kustomize/extract.ts
index 12bfb8280c0d8ecadae0615f96b014378d3f061e..8a06c3da71caf74f6ba0c9df1c5af0429ecea541 100644
--- a/lib/manager/kustomize/extract.ts
+++ b/lib/manager/kustomize/extract.ts
@@ -84,7 +84,10 @@ export function parseKustomize(content: string): Kustomize | null {
     return null;
   }
 
-  pkg.bases = (pkg.bases || []).concat(pkg.resources || []);
+  pkg.bases = (pkg.bases || []).concat(
+    pkg.resources || [],
+    pkg.components || []
+  );
   pkg.images = pkg.images || [];
 
   return pkg;
diff --git a/lib/manager/kustomize/readme.md b/lib/manager/kustomize/readme.md
index b38948bb55f8dbed5454be25f091e606e3d873f8..1a63c7718cebf23d5fe53ec5a1f8de553c3f7235 100644
--- a/lib/manager/kustomize/readme.md
+++ b/lib/manager/kustomize/readme.md
@@ -2,6 +2,7 @@ This package will manage two parts of the `kustomization.yaml` file:
 
 1. [remote bases](https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md)
 2. [image tags](https://github.com/kubernetes-sigs/kustomize/blob/master/examples/image.md)
+3. [components](https://github.com/kubernetes-sigs/kustomize/blob/master/examples/components.md)
 
 **How It Works**