diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..891b8eb
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,312 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#-----------------------------------------------------------------
+# CODEOWNERS and .asf.yml - owned by everyone
+#-----------------------------------------------------------------
+CODEOWNERS @apache/geode-committers
+.asf.yml @apache/geode-committers
+
+#-----------------------------------------------------------------
+# Serialization
+#-----------------------------------------------------------------
+geode-serialization/**                                            @bschuchardt @Bill
+geode-core/**/org/apache/geode/pdx/**                             @upthewaterspout @dschneider-pivotal
+geode-core/**/org/apache/geode/internal/*                         @bschuchardt @Bill
+
+#-----------------------------------------------------------------
+# Membership
+#-----------------------------------------------------------------
+geode-membership/**                                               @bschuchardt @Bill
+geode-old-client-support/**                                       @bschuchardt @Bill
+geode-tcp-server/**                                               @bschuchardt @Bill
+geode-core/**/org/apache/geode/distributed/internal/membership/** @bschuchardt @Bill
+
+#-----------------------------------------------------------------
+# P2P Messaging
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/tcp/**                    @bschuchardt @Bill
+geode-core/**/org/apache/geode/distributed/internal/direct/**     @bschuchardt @Bill
+geode-core/**/org/apache/geode/internal/net/**                    @bschuchardt @Bill
+geode-core/**/org/apache/geode/net/**                             @bschuchardt @Bill
+geode-core/**/org/apache/geode/distributed/*                      @bschuchardt @Bill
+geode-core/**/org/apache/geode/distributed/internal/*             @bschuchardt @Bill
+
+#-----------------------------------------------------------------
+# Client/server messaging and cache operations
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/cache/client/**                    @bschuchardt @Bill
+geode-core/**/org/apache/geode/cache/server/**                    @bschuchardt @Bill
+geode-core/**/org/apache/geode/internal/cache/client/**           @bschuchardt @echobravopapa
+geode-core/**/org/apache/geode/internal/cache/tier/**             @bschuchardt @echobravopapa
+
+#-----------------------------------------------------------------
+# Client Queues
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/ha/**               @agingade @boglesby
+geode-core/**/org/apache/geode/internal/cache/tier/CacheClient*   @agingade @boglesby
+
+#-----------------------------------------------------------------
+# Experimental Protobuf based Client/Server
+#-----------------------------------------------------------------
+#geode-experimental-driver/**
+#geode-protobuf/**
+#geode-protobuf-messages/**
+
+#-----------------------------------------------------------------
+# Core Public API packages - Cache, Region, etc.
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/*                                  @dschneider-pivotal @boglesby
+geode-core/**/org/apache/geode/cache/*                            @dschneider-pivotal @boglesby
+geode-core/**/org/apache/geode/cache/util/**                      @dschneider-pivotal @boglesby
+
+#-----------------------------------------------------------------
+# Distributed Locks
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/distributed/internal/locks/**      @dschneider-pivotal @pivotal-eshu
+
+#-----------------------------------------------------------------
+# Core region implementations and plumbing
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/*                   @nabarunnag @DonalEvans @jchen21
+
+#-----------------------------------------------------------------
+# Region entry management
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/entries/**          @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
+geode-core/**/org/apache/geode/internal/cache/region/entry/**     @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
+geode-core/**/org/apache/geode/internal/cache/map/**              @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
+geode-core/**/org/apache/geode/compression/**                     @dschneider-pivotal @sabbey37
+geode-core/**/org/apache/geode/internal/cache/compression/**      @dschneider-pivotal @sabbey37
+
+#-----------------------------------------------------------------
+# Partitioned Regions
+#-----------------------------------------------------------------
+geode-rebalancer/**                                               @boglesby @BenjaminPerryRoss
+geode-core/**/org/apache/geode/internal/cache/partitioned/**      @boglesby @BenjaminPerryRoss
+geode-core/**/org/apache/geode/cache/partition/**                 @boglesby @BenjaminPerryRoss
+
+#-----------------------------------------------------------------
+# Event tracking
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/event/**            @agingade @nabarunnag @gesterzhou
+
+#-----------------------------------------------------------------
+# Eviction
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/eviction/**         @agingade @dschneider-pivotal
+geode-core/**/org/apache/geode/internal/size/**                   @agingade @dschneider-pivotal
+
+#-----------------------------------------------------------------
+# Offheap
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/offheap/**                @pivotal-eshu @dschneider-pivotal
+
+#-----------------------------------------------------------------
+# Transactions
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/tx/**               @pivotal-eshu @gesterzhou
+geode-core/**/org/apache/geode/internal/jta/**                    @pivotal-eshu @gesterzhou
+geode-core/**/org/apache/geode/internal/cache/locks/**            @pivotal-eshu @gesterzhou
+
+#-----------------------------------------------------------------
+# Function Execution
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/execute/**          @boglesby @sabbey37
+geode-core/**/org/apache/geode/cache/execute/**                   @boglesby @sabbey37
+
+#-----------------------------------------------------------------
+# Querying
+#-----------------------------------------------------------------
+geode-cq/**                                                       @nabarunnag @DonalEvans
+geode-core/**/org/apache/geode/cache/query/**                     @nabarunnag @DonalEvans
+
+#-----------------------------------------------------------------
+# Session State:
+#-----------------------------------------------------------------
+extensions/**                                                     @sabbey37 @jdeppe-pivotal @BenjaminPerryRoss
+geode-core/**/org/apache/geode/internal/modules/util/**           @sabbey37 @jdeppe-pivotal @BenjaminPerryRoss
+
+#-----------------------------------------------------------------
+# DEV rest API
+#-----------------------------------------------------------------
+geode-web-api/**                                                  @jdeppe-pivotal @jinmeiliao
+
+#-----------------------------------------------------------------
+# Lucene integration
+#-----------------------------------------------------------------
+geode-lucene/**                                                   @nabarunnag @DonalEvans
+
+#-----------------------------------------------------------------
+# Memcached integration
+#-----------------------------------------------------------------
+geode-memcached/**                                                @nabarunnag @DonalEvans
+
+#-----------------------------------------------------------------
+# Misc Utilities
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/util/concurrent/**        @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/shared/**                 @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/sequencelog/**            @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/concurrent/**             @nabarunnag @boglesby
+geode-core/**/org/apache/geode/distributed/internal/unsafe/**     @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/lang/**                   @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/monitoring/**             @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/exception/**              @nabarunnag @boglesby
+geode-core/**/org/apache/geode/lang/**                            @nabarunnag @boglesby
+geode-core/**/org/apache/geode/ra/**                              @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/util/**                   @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/cache/vmotion/**          @nabarunnag @boglesby
+geode-core/**/org/apache/geode/internal/jndi/**                   @nabarunnag @boglesby
+geode-common/**                                                   @nabarunnag @boglesby
+geode-unsafe/**                                                   @nabarunnag @boglesby
+
+#-----------------------------------------------------------------
+# Persistence
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/cache/persistence/**               @dschneider-pivotal @jchen21 @upthewaterspout @gesterzhou
+geode-core/**/org/apache/geode/internal/cache/persistence/**      @dschneider-pivotal @jchen21 @upthewaterspout @gesterzhou
+geode-core/**/org/apache/geode/internal/cache/backup/**           @dschneider-pivotal @agingade @jchen21 @upthewaterspout @gesterzhou
+
+#-----------------------------------------------------------------
+# Region Version Vectors - used for sychronization on
+# member failures and persistent recovery
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/internal/cache/versions/**         @dschneider-pivotal @gesterzhou @bschuchardt
+
+
+#-----------------------------------------------------------------
+# WAN messaging and queues
+#-----------------------------------------------------------------
+geode-wan/**                                                      @gesterzhou @boglesby
+geode-core/**/org/apache/geode/cache/asyncqueue/**                @gesterzhou @boglesby
+geode-core/**/org/apache/geode/cache/wan/**                       @gesterzhou @boglesby
+geode-core/**/org/apache/geode/internal/cache/wan/**              @gesterzhou @boglesby
+
+#-----------------------------------------------------------------
+# Management
+#-----------------------------------------------------------------
+geode-management/**                                               @jdeppe-pivotal @jinmeiliao
+geode-web-management/**                                           @jdeppe-pivotal @jinmeiliao
+geode-gfsh/**                                                     @jdeppe-pivotal @jinmeiliao
+geode-pulse/**                                                    @jdeppe-pivotal @jinmeiliao
+geode-http-service/**                                             @jdeppe-pivotal @jinmeiliao
+geode-web/**                                                      @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/admin/**                           @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/alerting/**                        @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/management/**                      @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/cache/configuration/**             @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/admin/**                  @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/cache/xmlcache/**         @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/cache/extension/**        @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/config/**                 @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/process/**                @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/cache/internal/*                   @jdeppe-pivotal @jinmeiliao
+
+#-----------------------------------------------------------------
+# Security
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/examples/security/**               @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/examples/**                        @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/security/**                        @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/security/**               @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/cache/operations/**                @jdeppe-pivotal @jinmeiliao
+geode-core/**/org/apache/geode/internal/cache/operations/**       @jdeppe-pivotal @jinmeiliao
+
+#-----------------------------------------------------------------
+# Logging
+#-----------------------------------------------------------------
+#geode-log4j/**
+#geode-logging/**
+#geode-core/**/org/apache/geode/logging/**
+#geode-core/**/org/apache/geode/internal/logging/**
+#geode-core/**/org/apache/geode/i18n/**
+#geode-core/**/org/apache/geode/internal/i18n/**
+#geode-core/**/org/apache/geode/internal/io/**
+
+#-----------------------------------------------------------------
+# Metrics & Statistics
+#-----------------------------------------------------------------
+#geode-core/**/org/apache/geode/internal/statistics/**
+#geode-core/**/org/apache/geode/internal/stats50/**
+#geode-core/**/org/apache/geode/metrics/**
+
+#-----------------------------------------------------------------
+# Region Snapshots
+#-----------------------------------------------------------------
+geode-core/**/org/apache/geode/cache/snapshot/**                  @agingade @jchen21
+geode-core/**/org/apache/geode/internal/cache/snapshot/**         @agingade @jchen21
+
+#-----------------------------------------------------------------
+# JDBC connector
+#-----------------------------------------------------------------
+geode-connectors/**                                               @agingade @jchen21
+geode-core/**/org/apache/geode/datasource/**                      @agingade @BenjaminPerryRoss @jchen21
+geode-core/**/org/apache/geode/internal/datasource/**             @agingade @BenjaminPerryRoss @jchen21
+
+
+#-----------------------------------------------------------------
+# Resource manager
+#-----------------------------------------------------------------
+#geode-core/**/org/apache/geode/cache/control/**
+#geode-core/**/org/apache/geode/internal/cache/control/**
+
+#-----------------------------------------------------------------
+# Testing utilities
+#-----------------------------------------------------------------
+#geode-concurrency-test/**
+#geode-dunit/**
+#geode-junit/**
+#geode-jmh/**
+geode-junit/**/org/apache/geode/test/util                         @jdeppe-pivotal @onichols-pivotal
+
+#-----------------------------------------------------------------
+# Redis API
+#-----------------------------------------------------------------
+geode-redis/**                                                    @sabbey37 @jdeppe-pivotal @nonbinaryprogrammer
+
+#-----------------------------------------------------------------
+# Build and tooling
+#-----------------------------------------------------------------
+*.gradle                                                          @rhoughton-pivot
+#etc/**
+build.gradle                                                      @rhoughton-pivot
+buildSrc/**                                                       @rhoughton-pivot @jdeppe-pivotal
+buildSrc/**/DependencyConstraints.groovy                          @onichols-pivotal @dickcav
+ci/**                                                             @onichols-pivotal @dickcav
+ci/scripts/**                                                     @onichols-pivotal @dickcav @rhoughton-pivot
+ci/scripts/repeat-new-tests.sh                                    @onichols-pivotal @dickcav @rhoughton-pivot @upthewaterspout @jdeppe-pivotal
+dev-tools/**                                                      @onichols-pivotal @dickcav
+docker/**                                                         @onichols-pivotal @dickcav
+geode-management/src/test/script/update-management-wiki.sh        @onichols-pivotal @dickcav
+#boms/**
+*gradle*                                                          @rhoughton-pivot
+static-analysis/**                                                @rhoughton-pivot
+geode-old-versions/**                                             @onichols-pivotal @dickcav
+KEYS                                                              @onichols-pivotal @dickcav
+geode-assembly/**                                                 @rhoughton-pivot
+
+#-----------------------------------------------------------------
+# Documentation
+#-----------------------------------------------------------------
+geode-book/**                                                     @karensmolermiller @davebarnes97
+geode-docs/**                                                     @karensmolermiller @davebarnes97
+BUILDING.md                                                       @rhoughton-pivot @upthewaterspout
+CODE_OF_CONDUCT.md                                                @upthewaterspout @pivotal-amurmann @nonbinaryprogrammer
+LICENSE                                                           @onichols-pivotal @dickcav @metatype
+NOTICE                                                            @onichols-pivotal @dickcav @metatype
+README.md                                                         @upthewaterspout @pivotal-amurmann
+#TESTING.md
diff --git a/ci/pipelines/geode-build/jinja.template.yml b/ci/pipelines/geode-build/jinja.template.yml
index 3e5b03d..8360252 100644
--- a/ci/pipelines/geode-build/jinja.template.yml
+++ b/ci/pipelines/geode-build/jinja.template.yml
@@ -163,6 +163,7 @@
     - ci/*
     - dev-tools/release/*
     - "*.md"
+    - CODEOWNERS
     {{ github_access() | indent(4) }}
 - name: geode-ci
   type: git
