diff --git a/.gitignore b/.gitignore
index 77975fb..dd8dd40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+SOURCES/ad_integration-1.0.0.tar.gz
 SOURCES/ansible-posix-1.4.0.tar.gz
 SOURCES/ansible-sshd-v0.18.0.tar.gz
 SOURCES/auto-maintenance-e3ac549bee05349d7ae033971448f861415ad608.tar.gz
diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata
index 9a23cd1..71e99f3 100644
--- a/.rhel-system-roles.metadata
+++ b/.rhel-system-roles.metadata
@@ -1,3 +1,4 @@
+e7ccb7b1a2f66be5d9a1500c4fe3d18b434f95af SOURCES/ad_integration-1.0.0.tar.gz
 e699d31bfa020050818f133b7c65a49d2e459178 SOURCES/ansible-posix-1.4.0.tar.gz
 845ae09c2643c59aafff61a1ded9ccca114f5255 SOURCES/ansible-sshd-v0.18.0.tar.gz
 d7aa4c69b339bf109227ea9c289b242a808ca0f5 SOURCES/auto-maintenance-e3ac549bee05349d7ae033971448f861415ad608.tar.gz
diff --git a/SOURCES/CHANGELOG.md b/SOURCES/CHANGELOG.md
index c5229e1..903deff 100644
--- a/SOURCES/CHANGELOG.md
+++ b/SOURCES/CHANGELOG.md
@@ -1,6 +1,17 @@
 Changelog
 =========
 
+[1.21.0-0.9] - 2022-12-06
+----------------------------
+
+### New Features
+
+- [ad_integration - [RFE] new role to support AD integration, join to AD domain](https://bugilla.redhat.com/show_bug.cgi?id=2144876)
+
+### Bug Fixes
+
+- none
+
 [1.21.0-0.8] - 2022-12-05
 ----------------------------
 
diff --git a/SPECS/rhel-system-roles.spec b/SPECS/rhel-system-roles.spec
index b744af9..0b33831 100644
--- a/SPECS/rhel-system-roles.spec
+++ b/SPECS/rhel-system-roles.spec
@@ -30,7 +30,7 @@ Name: linux-system-roles
 Url: https://github.com/linux-system-roles
 Summary: Set of interfaces for unified system management
 Version: 1.21.0
-Release: 0.8%{?dist}
+Release: 0.9%{?dist}
 
 License: GPLv3+ and MIT and BSD and Python
 %global _pkglicensedir %{_licensedir}/%{name}
@@ -191,6 +191,10 @@ Requires: (ansible-core >= 2.11.0 or ansible >= 2.9.0)
 %global rolename21 podman
 %deftag 21 1.0.1
 
+#%%defcommit 22 8e536917c4202f847ec8bf53c759b78304019a2f
+%global rolename22 ad_integration
+%deftag 22 1.0.0
+
 %global mainid e3ac549bee05349d7ae033971448f861415ad608
 Source: %{url}/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz
 Source1: %{archiveurl1}
@@ -214,6 +218,7 @@ Source18: %{archiveurl18}
 Source19: %{archiveurl19}
 Source20: %{archiveurl20}
 Source21: %{archiveurl21}
+Source22: %{archiveurl22}
 
 # Not conditionalizing sources per FPC:
 # https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_do_not_conditionalize_sources
@@ -295,7 +300,7 @@ for i,v in ipairs(roles) do
 end
 
 %prep
-%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a21 -n %{getarchivedir 0}
+%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a21 -a22 -n %{getarchivedir 0}
 
 %if 0%{?rhel}
 # Untar vendored collection tarballs to corresponding directories
@@ -366,7 +371,7 @@ cd ..
 #   - library:
 #     - Module selinux and seboolean for the selinux role
 #     - Module mount for the storage role
-declare -A module_map=( ["selinux.py"]="selinux" ["seboolean.py"]="selinux"  ["mount.py"]="storage" )
+declare -A module_map=( ["selinux.py"]="selinux" ["seboolean.py"]="selinux" ["mount.py"]="storage" )
 for module in "${!module_map[@]}"; do
   role="${module_map[${module}]}"
   if [ ! -d $role/library ]; then
@@ -392,7 +397,7 @@ done
 #   - library:
 #     - Module seport, sefcontext and selogin for the selinux role rolename2
 #     - Module ini_file for role tlog
-module_map=( ["seport.py"]="selinux" ["sefcontext.py"]="selinux"  ["selogin.py"]="selinux" ["ini_file.py"]="tlog" )
+module_map=( ["seport.py"]="selinux" ["sefcontext.py"]="selinux" ["selogin.py"]="selinux" ["ini_file.py"]="tlog" )
 for module in "${!module_map[@]}"; do
   role="${module_map[${module}]}"
   if [ ! -d $role/library ]; then
@@ -763,6 +768,9 @@ find %{buildroot}%{ansible_roles_dir} -mindepth 1 -maxdepth 1 | \
 %endif
 
 %changelog
+* Tue Dec 06 2022 Rich Megginson <rmeggins@redhat.com> - 1.21.0-0.9
+- Resolves:rhbz#2144876 : ad_integration - [RFE] new role to support AD integration, join to AD domain
+
 * Mon Dec 05 2022 Rich Megginson <rmeggins@redhat.com> - 1.21.0-0.8
 - Resolves:rhbz#2130362 : logging - [RFE] convert logging role to use firewall, selinux role, and certificate role
   fix tests - tests_relp now uses logging_purge_confs