diff --git a/app/models/clusters/applications/prometheus.rb b/app/models/clusters/applications/prometheus.rb
index c702c4ee8074b5b66a3dedb268c8c01ebb7279b1..48137c2ed685628b036d95253fff841da6946c9a 100644
--- a/app/models/clusters/applications/prometheus.rb
+++ b/app/models/clusters/applications/prometheus.rb
@@ -3,7 +3,7 @@ module Clusters
     class Prometheus < ActiveRecord::Base
       include PrometheusAdapter
 
-      VERSION = "2.0.0".freeze
+      VERSION = '6.7.3'.freeze
 
       self.table_name = 'clusters_applications_prometheus'
 
@@ -37,6 +37,7 @@ module Clusters
         Gitlab::Kubernetes::Helm::InstallCommand.new(
           name,
           chart: chart,
+          version: version,
           values: values
         )
       end
diff --git a/changelogs/unreleased/48126-fix-prometheus-installation.yml b/changelogs/unreleased/48126-fix-prometheus-installation.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e6ab9c46fbf29ee58f4974f515b7e44c7b382231
--- /dev/null
+++ b/changelogs/unreleased/48126-fix-prometheus-installation.yml
@@ -0,0 +1,5 @@
+---
+title: Specify chart version when installing applications on Clusters
+merge_request: 20010
+author:
+type: fixed
diff --git a/lib/gitlab/kubernetes/helm/install_command.rb b/lib/gitlab/kubernetes/helm/install_command.rb
index 30af3e97b4ac8421ea235be49508b6efba837423..d2133a6d65b2830ae44be98ddcd55db4484c4ed4 100644
--- a/lib/gitlab/kubernetes/helm/install_command.rb
+++ b/lib/gitlab/kubernetes/helm/install_command.rb
@@ -2,11 +2,12 @@ module Gitlab
   module Kubernetes
     module Helm
       class InstallCommand < BaseCommand
-        attr_reader :name, :chart, :repository, :values
+        attr_reader :name, :chart, :version, :repository, :values
 
-        def initialize(name, chart:, values:, repository: nil)
+        def initialize(name, chart:, values:, version: nil, repository: nil)
           @name = name
           @chart = chart
+          @version = version
           @values = values
           @repository = repository
         end
@@ -39,9 +40,13 @@ module Gitlab
 
         def script_command
           <<~HEREDOC
-          helm install #{chart} --name #{name} --namespace #{Gitlab::Kubernetes::Helm::NAMESPACE} -f /data/helm/#{name}/config/values.yaml >/dev/null
+          helm install #{chart} --name #{name}#{optional_version_flag} --namespace #{Gitlab::Kubernetes::Helm::NAMESPACE} -f /data/helm/#{name}/config/values.yaml >/dev/null
           HEREDOC
         end
+
+        def optional_version_flag
+          " --version #{version}" if version
+        end
       end
     end
   end
diff --git a/spec/lib/gitlab/kubernetes/helm/api_spec.rb b/spec/lib/gitlab/kubernetes/helm/api_spec.rb
index 740466ea5cb6e4567a4b2f732da5802ec9b74d9f..aa7e43dfb163e75f05d459fca991bff9e15a823e 100644
--- a/spec/lib/gitlab/kubernetes/helm/api_spec.rb
+++ b/spec/lib/gitlab/kubernetes/helm/api_spec.rb
@@ -7,13 +7,7 @@ describe Gitlab::Kubernetes::Helm::Api do
   let(:namespace) { Gitlab::Kubernetes::Namespace.new(gitlab_namespace, client) }
   let(:application) { create(:clusters_applications_prometheus) }
 
-  let(:command) do
-    Gitlab::Kubernetes::Helm::InstallCommand.new(
-      application.name,
-      chart: application.chart,
-      values: application.values
-    )
-  end
+  let(:command) { application.install_command }
 
   subject { helm }
 
diff --git a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb
index 547f3f1752c3be58b6066cf77808870d060514f3..25c6fa3b9a3473284413d76aed5bcaf9636e3b80 100644
--- a/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb
+++ b/spec/lib/gitlab/kubernetes/helm/install_command_spec.rb
@@ -3,44 +3,60 @@ require 'rails_helper'
 describe Gitlab::Kubernetes::Helm::InstallCommand do
   let(:application) { create(:clusters_applications_prometheus) }
   let(:namespace) { Gitlab::Kubernetes::Helm::NAMESPACE }
-
-  let(:install_command) do
-    described_class.new(
-      application.name,
-      chart: application.chart,
-      values: application.values
-    )
-  end
+  let(:install_command) { application.install_command }
 
   subject { install_command }
 
-  it_behaves_like 'helm commands' do
-    let(:commands) do
-      <<~EOS
+  context 'for ingress' do
+    let(:application) { create(:clusters_applications_ingress) }
+
+    it_behaves_like 'helm commands' do
+      let(:commands) do
+        <<~EOS
          helm init --client-only >/dev/null
          helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
-      EOS
+        EOS
+      end
+    end
+  end
+
+  context 'for prometheus' do
+    let(:application) { create(:clusters_applications_prometheus) }
+
+    it_behaves_like 'helm commands' do
+      let(:commands) do
+        <<~EOS
+         helm init --client-only >/dev/null
+         helm install #{application.chart} --name #{application.name} --version #{application.version} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
+        EOS
+      end
     end
   end
 
-  context 'with an application with a repository' do
+  context 'for runner' do
     let(:ci_runner) { create(:ci_runner) }
     let(:application) { create(:clusters_applications_runner, runner: ci_runner) }
-    let(:install_command) do
-      described_class.new(
-        application.name,
-        chart: application.chart,
-        values: application.values,
-        repository: application.repository
-      )
+
+    it_behaves_like 'helm commands' do
+      let(:commands) do
+        <<~EOS
+         helm init --client-only >/dev/null
+         helm repo add #{application.name} #{application.repository}
+         helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
+        EOS
+      end
     end
+  end
+
+  context 'for jupyter' do
+    let(:application) { create(:clusters_applications_jupyter) }
 
     it_behaves_like 'helm commands' do
       let(:commands) do
         <<~EOS
-           helm init --client-only >/dev/null
-           helm repo add #{application.name} #{application.repository}
-           helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
+         helm init --client-only >/dev/null
+         helm repo add #{application.name} #{application.repository}
+         helm install #{application.chart} --name #{application.name} --namespace #{namespace} -f /data/helm/#{application.name}/config/values.yaml >/dev/null
         EOS
       end
     end
diff --git a/spec/models/clusters/applications/ingress_spec.rb b/spec/models/clusters/applications/ingress_spec.rb
index a47a07d908dc2e7cf7d6dd0e9090bf5d2443059b..bb5b2ef3a47223bd7f2ef288c69118074b61b77d 100644
--- a/spec/models/clusters/applications/ingress_spec.rb
+++ b/spec/models/clusters/applications/ingress_spec.rb
@@ -73,6 +73,7 @@ describe Clusters::Applications::Ingress do
     it 'should be initialized with ingress arguments' do
       expect(subject.name).to eq('ingress')
       expect(subject.chart).to eq('stable/nginx-ingress')
+      expect(subject.version).to be_nil
       expect(subject.values).to eq(ingress.values)
     end
   end
diff --git a/spec/models/clusters/applications/jupyter_spec.rb b/spec/models/clusters/applications/jupyter_spec.rb
index ca48a1d807286f83ade374252a351ba440a0f6cc..65750141e6587611a96fe7259078a7e9b3ec093b 100644
--- a/spec/models/clusters/applications/jupyter_spec.rb
+++ b/spec/models/clusters/applications/jupyter_spec.rb
@@ -36,6 +36,7 @@ describe Clusters::Applications::Jupyter do
     it 'should be initialized with 4 arguments' do
       expect(subject.name).to eq('jupyter')
       expect(subject.chart).to eq('jupyter/jupyterhub')
+      expect(subject.version).to be_nil
       expect(subject.repository).to eq('https://jupyterhub.github.io/helm-chart/')
       expect(subject.values).to eq(jupyter.values)
     end
diff --git a/spec/models/clusters/applications/prometheus_spec.rb b/spec/models/clusters/applications/prometheus_spec.rb
index d2302583ac8215541e6c25a9f30e6ba28bf6a8b5..efd5704000521e58399fc29f66eb3b65d514156e 100644
--- a/spec/models/clusters/applications/prometheus_spec.rb
+++ b/spec/models/clusters/applications/prometheus_spec.rb
@@ -109,6 +109,7 @@ describe Clusters::Applications::Prometheus do
     it 'should be initialized with 3 arguments' do
       expect(subject.name).to eq('prometheus')
       expect(subject.chart).to eq('stable/prometheus')
+      expect(subject.version).to eq('6.7.3')
       expect(subject.values).to eq(prometheus.values)
     end
   end
diff --git a/spec/models/clusters/applications/runner_spec.rb b/spec/models/clusters/applications/runner_spec.rb
index 3ef59457c5f6bfeea2aecd65139cd71d9693829a..b12500d0acd1af802ec6166654cc73ceb47aac79 100644
--- a/spec/models/clusters/applications/runner_spec.rb
+++ b/spec/models/clusters/applications/runner_spec.rb
@@ -31,6 +31,7 @@ describe Clusters::Applications::Runner do
     it 'should be initialized with 4 arguments' do
       expect(subject.name).to eq('runner')
       expect(subject.chart).to eq('runner/gitlab-runner')
+      expect(subject.version).to be_nil
       expect(subject.repository).to eq('https://charts.gitlab.io')
       expect(subject.values).to eq(gitlab_runner.values)
     end