diff --git a/ceph-14.2.1-468-g994fd9e0cc.tar.bz2 b/ceph-14.2.1-468-g994fd9e0cc.tar.bz2
deleted file mode 100644
index 32934c5..0000000
--- a/ceph-14.2.1-468-g994fd9e0cc.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:610979d8eaf3afa6eca33b7b16663f6d7ce6a9ebc9ad79b522fb9a747969a075
-size 95224915
diff --git a/ceph-14.2.1-469-g454d851f0a.tar.bz2 b/ceph-14.2.1-469-g454d851f0a.tar.bz2
new file mode 100644
index 0000000..9c3f677
--- /dev/null
+++ b/ceph-14.2.1-469-g454d851f0a.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ad74f9f243d5a268e08781e0f09e27f909c95dd4178bed196f2545897467f79
+size 95269506
diff --git a/ceph-test.changes b/ceph-test.changes
index 1f2fb0f..0324ca9 100644
--- a/ceph-test.changes
+++ b/ceph-test.changes
@@ -1,3 +1,14 @@
+-------------------------------------------------------------------
+Thu Jul  4 12:10:32 UTC 2019 - Nathan Cutler <ncutler@suse.com>
+
+- Update to 14.2.1-469-g454d851f0a:
+  + lvmcache: refactor argument parsing and add -h flag
+  + qa/deepsea: expand testing of dashboard (branding and E2E tests)
+  + spec:
+    * package the Dashboard E2E tests
+    * drop explicit systemd BuildRequires in case of building for SUSE
+      (allow OBS to pick better candidates to shorten rebuild queues)
+
 -------------------------------------------------------------------
 Wed Jun  5 08:00:39 UTC 2019 - Nathan Cutler <ncutler@suse.com>
 
diff --git a/ceph-test.spec b/ceph-test.spec
index 94e6be1..c2f4ad0 100644
--- a/ceph-test.spec
+++ b/ceph-test.spec
@@ -100,7 +100,7 @@
 # main package definition
 #################################################################################
 Name: ceph-test
-Version: 14.2.1.468+g994fd9e0cc
+Version: 14.2.1.469+g454d851f0a
 Release: 0%{?dist}
 %if 0%{?fedora} || 0%{?rhel}
 Epoch: 2
@@ -116,7 +116,7 @@ License: LGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and
 Group: System/Filesystems
 %endif
 URL: http://ceph.com/
-Source0: %{?_remote_tarball_prefix}ceph-14.2.1-468-g994fd9e0cc.tar.bz2
+Source0: %{?_remote_tarball_prefix}ceph-14.2.1-469-g454d851f0a.tar.bz2
 %if 0%{?suse_version}
 Source96: checkin.sh
 Source97: README-checkin.txt
@@ -233,7 +233,6 @@ BuildRequires:  yaml-cpp-devel
 %if 0%{?suse_version}
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:	systemd-rpm-macros
-BuildRequires:	systemd
 %{?systemd_requires}
 PreReq:		%fillup_prereq
 BuildRequires:	net-tools
@@ -506,8 +505,10 @@ This package contains Ceph benchmarks and test tools.
 %endif
 %if 0%{?suse_version}
 %endif
+%if 0%{?suse_version}
+%endif
 %prep
-%autosetup -p1 -n ceph-14.2.1-468-g994fd9e0cc
+%autosetup -p1 -n ceph-14.2.1-469-g454d851f0a
 
 %build
 # LTO can be enabled as soon as the following GCC bug is fixed:
@@ -691,6 +692,16 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr
 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd
 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
 
+# dashboard E2E tests
+install -m 0755 -d %{buildroot}/%{_datadir}/ceph/dashboard-e2e
+install -m 0755 src/script/dashboard_e2e_tests.sh %{buildroot}/%{_datadir}/ceph/dashboard-e2e/dashboard_e2e_tests.sh
+install -m 0644 src/pybind/mgr/dashboard/frontend/angular.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/angular.json
+install -m 0644 src/pybind/mgr/dashboard/frontend/protractor.conf.js %{buildroot}/%{_datadir}/ceph/dashboard-e2e/protractor.conf.js
+install -m 0644 src/pybind/mgr/dashboard/frontend/package.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/package.json
+install -m 0644 src/pybind/mgr/dashboard/frontend/package-lock.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/package-lock.json
+install -m 0755 src/pybind/mgr/dashboard/frontend/tsconfig.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/tsconfig.json
+cp -a src/pybind/mgr/dashboard/frontend/e2e/ %{buildroot}/%{_datadir}/ceph/dashboard-e2e
+
 %if 0%{?suse_version}
 # create __pycache__ directories and their contents
 %py3_compile %{buildroot}%{python3_sitelib}
@@ -951,6 +962,7 @@ rm -rf %{buildroot}monitoring/grafana/dashboards/README
 rm -rf %{buildroot}%doc
 rm -rf %{buildroot}monitoring/grafana/README.md
 rm -rf %{buildroot}/etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml
+rm -rf %{buildroot}%{_datadir}/ceph/dashboard-e2e
 
 dirs=`find %{buildroot} -type d -empty`
 while [[ -n $dirs ]]; do
diff --git a/ceph.changes b/ceph.changes
index 1f2fb0f..0324ca9 100644
--- a/ceph.changes
+++ b/ceph.changes
@@ -1,3 +1,14 @@
+-------------------------------------------------------------------
+Thu Jul  4 12:10:32 UTC 2019 - Nathan Cutler <ncutler@suse.com>
+
+- Update to 14.2.1-469-g454d851f0a:
+  + lvmcache: refactor argument parsing and add -h flag
+  + qa/deepsea: expand testing of dashboard (branding and E2E tests)
+  + spec:
+    * package the Dashboard E2E tests
+    * drop explicit systemd BuildRequires in case of building for SUSE
+      (allow OBS to pick better candidates to shorten rebuild queues)
+
 -------------------------------------------------------------------
 Wed Jun  5 08:00:39 UTC 2019 - Nathan Cutler <ncutler@suse.com>
 
diff --git a/ceph.spec b/ceph.spec
index 32e8fcc..66ac90c 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -100,7 +100,7 @@
 # main package definition
 #################################################################################
 Name:		ceph
-Version:	14.2.1.468+g994fd9e0cc
+Version:	14.2.1.469+g454d851f0a
 Release:	0%{?dist}
 %if 0%{?fedora} || 0%{?rhel}
 Epoch:		2
@@ -116,7 +116,7 @@ License:	LGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and
 Group:		System/Filesystems
 %endif
 URL:		http://ceph.com/
-Source0:	%{?_remote_tarball_prefix}ceph-14.2.1-468-g994fd9e0cc.tar.bz2
+Source0:	%{?_remote_tarball_prefix}ceph-14.2.1-469-g454d851f0a.tar.bz2
 %if 0%{?suse_version}
 # _insert_obs_source_lines_here
 ExclusiveArch:  x86_64 aarch64 ppc64le s390x
@@ -225,7 +225,6 @@ BuildRequires:  yaml-cpp-devel
 %if 0%{?suse_version}
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:	systemd-rpm-macros
-BuildRequires:	systemd
 %{?systemd_requires}
 PreReq:		%fillup_prereq
 BuildRequires:	net-tools
@@ -1074,11 +1073,22 @@ Group:          System/Monitoring
 This package provides Ceph’s default alerts for Prometheus.
 %endif
 
+%package dashboard-e2e
+Summary:       Standalone Ceph Dashboard End-To-End ("E2E") tests
+BuildArch:     noarch
+%if 0%{?suse_version}
+Group:         System/Filesystems
+%endif
+Requires:      ceph-common = %{_epoch_prefix}%{version}-%{release}
+%description dashboard-e2e
+This package provides the Ceph Dashboard End-To-End ("E2E") tests as a
+standalone RPM for use in Continuous Integration and ad hoc testing.
+
 #################################################################################
 # common
 #################################################################################
 %prep
-%autosetup -p1 -n ceph-14.2.1-468-g994fd9e0cc
+%autosetup -p1 -n ceph-14.2.1-469-g454d851f0a
 
 %build
 # LTO can be enabled as soon as the following GCC bug is fixed:
@@ -1262,6 +1272,16 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr
 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd
 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
 
+# dashboard E2E tests
+install -m 0755 -d %{buildroot}/%{_datadir}/ceph/dashboard-e2e
+install -m 0755 src/script/dashboard_e2e_tests.sh %{buildroot}/%{_datadir}/ceph/dashboard-e2e/dashboard_e2e_tests.sh
+install -m 0644 src/pybind/mgr/dashboard/frontend/angular.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/angular.json
+install -m 0644 src/pybind/mgr/dashboard/frontend/protractor.conf.js %{buildroot}/%{_datadir}/ceph/dashboard-e2e/protractor.conf.js
+install -m 0644 src/pybind/mgr/dashboard/frontend/package.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/package.json
+install -m 0644 src/pybind/mgr/dashboard/frontend/package-lock.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/package-lock.json
+install -m 0755 src/pybind/mgr/dashboard/frontend/tsconfig.json %{buildroot}/%{_datadir}/ceph/dashboard-e2e/tsconfig.json
+cp -a src/pybind/mgr/dashboard/frontend/e2e/ %{buildroot}/%{_datadir}/ceph/dashboard-e2e
+
 %if 0%{?suse_version}
 # create __pycache__ directories and their contents
 %py3_compile %{buildroot}%{python3_sitelib}
@@ -2232,6 +2252,8 @@ exit 0
 %config /etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml
 %endif
 
+%files dashboard-e2e
+%{_datadir}/ceph/dashboard-e2e
 
 %changelog
 # nospeccleaner