diff --git a/docs/usage/configuration-options.md b/docs/usage/configuration-options.md
index 2397c16316a08ede2bcef5f88f3006e9fd51fb38..5dd388664846c091cb2c126dd74d8cf478bb2185 100644
--- a/docs/usage/configuration-options.md
+++ b/docs/usage/configuration-options.md
@@ -3591,6 +3591,7 @@ This feature works with the following managers:
 - [`droneci`](modules/manager/droneci/index.md)
 - [`gitlabci`](modules/manager/gitlabci/index.md)
 - [`helm-requirements`](modules/manager/helm-requirements/index.md)
+- [`helm-values`](modules/manager/helm-values/index.md)
 - [`helmfile`](modules/manager/helmfile/index.md)
 - [`helmv3`](modules/manager/helmv3/index.md)
 - [`kubernetes`](modules/manager/kubernetes/index.md)
diff --git a/lib/modules/manager/helm-values/extract.spec.ts b/lib/modules/manager/helm-values/extract.spec.ts
index d8eb805db86f7ad6917490c1aa3649fbe33ef9f0..abab66d76f44e0423f697e2494fe3f48dfa33132 100644
--- a/lib/modules/manager/helm-values/extract.spec.ts
+++ b/lib/modules/manager/helm-values/extract.spec.ts
@@ -1,4 +1,6 @@
 import { Fixtures } from '../../../../test/fixtures';
+import { partial } from '../../../../test/util';
+import type { ExtractConfig } from '../types';
 import { extractPackageFile } from '.';
 
 const helmDefaultChartInitValues = Fixtures.get(
@@ -9,20 +11,34 @@ const helmMultiAndNestedImageValues = Fixtures.get(
   'multi_and_nested_image_values.yaml',
 );
 
+const config = partial<ExtractConfig>({});
+
+const configAliases = partial<ExtractConfig>({
+  registryAliases: {
+    'quay.io': 'registry.internal/mirror/quay.io',
+  },
+});
+
+const packageFile = 'values.yaml';
+
 describe('modules/manager/helm-values/extract', () => {
   describe('extractPackageFile()', () => {
     it('returns null for invalid yaml file content', () => {
-      const result = extractPackageFile('nothing here: [');
+      const result = extractPackageFile('nothing here: [', packageFile, config);
       expect(result).toBeNull();
     });
 
     it('returns null for empty yaml file content', () => {
-      const result = extractPackageFile('');
+      const result = extractPackageFile('', packageFile, config);
       expect(result).toBeNull();
     });
 
     it('extracts from values.yaml correctly with same structure as "helm create"', () => {
-      const result = extractPackageFile(helmDefaultChartInitValues);
+      const result = extractPackageFile(
+        helmDefaultChartInitValues,
+        packageFile,
+        config,
+      );
       expect(result).toMatchSnapshot({
         deps: [
           {
@@ -34,7 +50,11 @@ describe('modules/manager/helm-values/extract', () => {
     });
 
     it('extracts from complex values file correctly"', () => {
-      const result = extractPackageFile(helmMultiAndNestedImageValues);
+      const result = extractPackageFile(
+        helmMultiAndNestedImageValues,
+        packageFile,
+        config,
+      );
       expect(result).toMatchSnapshot();
       expect(result?.deps).toHaveLength(5);
     });
@@ -43,7 +63,7 @@ describe('modules/manager/helm-values/extract', () => {
       const multiDocumentFile = Fixtures.get(
         'single_file_with_multiple_documents.yaml',
       );
-      const result = extractPackageFile(multiDocumentFile);
+      const result = extractPackageFile(multiDocumentFile, packageFile, config);
       expect(result).toMatchObject({
         deps: [
           {
@@ -61,5 +81,32 @@ describe('modules/manager/helm-values/extract', () => {
         ],
       });
     });
+
+    it('extract data from file with registry aliases', () => {
+      const multiDocumentFile = Fixtures.get(
+        'single_file_with_multiple_documents.yaml',
+      );
+      const result = extractPackageFile(
+        multiDocumentFile,
+        packageFile,
+        configAliases,
+      );
+      expect(result).toMatchObject({
+        deps: [
+          {
+            currentValue: 'v0.13.10',
+            depName: 'registry.internal/mirror/quay.io/metallb/controller',
+            datasource: 'docker',
+            versioning: 'docker',
+          },
+          {
+            currentValue: 'v0.13.10',
+            depName: 'registry.internal/mirror/quay.io/metallb/speaker',
+            datasource: 'docker',
+            versioning: 'docker',
+          },
+        ],
+      });
+    });
   });
 });
diff --git a/lib/modules/manager/helm-values/extract.ts b/lib/modules/manager/helm-values/extract.ts
index 61437fdbb79571efd78b93cd90663ccaef7e577b..f4041420dd4445d10bbda64f00bb5517d7b7dc47 100644
--- a/lib/modules/manager/helm-values/extract.ts
+++ b/lib/modules/manager/helm-values/extract.ts
@@ -2,23 +2,28 @@ import { logger } from '../../../logger';
 import { parseYaml } from '../../../util/yaml';
 import { id as dockerVersioning } from '../../versioning/docker';
 import { getDep } from '../dockerfile/extract';
-import type { PackageDependency, PackageFileContent } from '../types';
+import type {
+  ExtractConfig,
+  PackageDependency,
+  PackageFileContent,
+} from '../types';
 import type { HelmDockerImageDependency } from './types';
 import {
   matchesHelmValuesDockerHeuristic,
   matchesHelmValuesInlineImage,
 } from './util';
 
-function getHelmDep({
-  registry,
-  repository,
-  tag,
-}: {
-  registry: string;
-  repository: string;
-  tag: string;
-}): PackageDependency {
-  const dep = getDep(`${registry}${repository}:${tag}`, false);
+function getHelmDep(
+  registry: string,
+  repository: string,
+  tag: string,
+  config: ExtractConfig,
+): PackageDependency {
+  const dep = getDep(
+    `${registry}${repository}:${tag}`,
+    false,
+    config.registryAliases,
+  );
   dep.replaceString = tag;
   dep.versioning = dockerVersioning;
   dep.autoReplaceStringTemplate =
@@ -34,6 +39,7 @@ function getHelmDep({
 function findDependencies(
   parsedContent: Record<string, unknown> | HelmDockerImageDependency,
   packageDependencies: Array<PackageDependency>,
+  config: ExtractConfig,
 ): Array<PackageDependency> {
   if (!parsedContent || typeof parsedContent !== 'object') {
     return packageDependencies;
@@ -47,11 +53,15 @@ function findDependencies(
       registry = registry ? `${registry}/` : '';
       const repository = String(currentItem.repository);
       const tag = `${currentItem.tag ?? currentItem.version}`;
-      packageDependencies.push(getHelmDep({ repository, tag, registry }));
+      packageDependencies.push(getHelmDep(registry, repository, tag, config));
     } else if (matchesHelmValuesInlineImage(key, value)) {
-      packageDependencies.push(getDep(value));
+      packageDependencies.push(getDep(value, true, config.registryAliases));
     } else {
-      findDependencies(value as Record<string, unknown>, packageDependencies);
+      findDependencies(
+        value as Record<string, unknown>,
+        packageDependencies,
+        config,
+      );
     }
   });
   return packageDependencies;
@@ -59,7 +69,8 @@ function findDependencies(
 
 export function extractPackageFile(
   content: string,
-  packageFile?: string,
+  packageFile: string,
+  config: ExtractConfig,
 ): PackageFileContent | null {
   let parsedContent: Record<string, unknown>[] | HelmDockerImageDependency[];
   try {
@@ -75,7 +86,7 @@ export function extractPackageFile(
     const deps: PackageDependency<Record<string, any>>[] = [];
 
     for (const con of parsedContent) {
-      deps.push(...findDependencies(con, []));
+      deps.push(...findDependencies(con, [], config));
     }
 
     if (deps.length) {