diff --git a/README.md b/README.md
index 38c915a5348dd36f6320f3d8cb4302247f1dc4ab..0db9d6f6ac9669ab62decdc3aaa411daa9432364 100644
--- a/README.md
+++ b/README.md
@@ -8,4 +8,17 @@ GitLab group are updated, deployment is executed and operational processing
 is upgraded.
 
 This repository also contains "helper" CI configs for sub-component
-repositories to use for building and testing their pieces.
\ No newline at end of file
+repositories to use for building and testing their pieces.
+
+## Repository Structure
+
+* admin: Kubernetes resources that should be manually installed to define
+  cluster resources available to the main geosphere application(s). These
+  are **not** run as part of continuous integration.
+* cichart: Docker image configuration used by certain CI jobs to build or
+  download helm charts.
+* production: Extra helm chart "values" YAML files to configure GeoSphere for
+  the production environment.
+* sidecars: Docker image configurations for various "sidecar" containers that
+  don't fit in one subcomponent's project.
+* .gitlab-ci.yml: Continuous Integration (CI) configuration
\ No newline at end of file
diff --git a/admin/README.md b/admin/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3472d259585ddbbde72252f8e9b096883859ed3e
--- /dev/null
+++ b/admin/README.md
@@ -0,0 +1,34 @@
+# Cluster Resource Administration
+
+This directory includes Kubernetes resources that should be installed on
+Kubernetes clusters that will have GeoSphere deployed on them. While there
+may be local cluster builtin equivalents to the resources defined here, these
+builtin names are not used in the current configuration in this deploy
+repository. The builtin resources could be used instead of installing the
+resources defined in this directory by updating the `values-X.yaml` files in
+the various directories and in the `.gitlab-ci.yml` configuration file.
+
+## Storage - Local Large Cache
+
+This storage class and persistent volume can be used for cases where a
+GeoSphere component needs relatively high performance and
+large capacity storage. Both the StorageClass and the PersistentVolume
+are defined in `local-large-cache.yaml`. This storage is primarily used
+for GeoSphere's tile cache (used by MapCache). It defines large storage
+that is physically located/connected to the node where the pod is being
+run or at least performs like it is. The term "large" here refers to
+multiple terabytes (3-10TB). While this isn't large in generic storage
+terms, it is considered large for a "cache" which is not guaranteed to
+persist.
+
+To apply:
+
+```bash
+kubectl apply -f local-large-cache.yaml
+```
+
+## Storage - Local Medium Archive
+
+Similar to Local Large Cache above, but larger available space. Note this
+should only be used for testing as data will be deleted when the claim
+is removed.
\ No newline at end of file
diff --git a/admin/local-large-cache.yaml b/admin/local-large-cache.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..27869c84488cc20f8fff8d0599f13ddba2eb2207
--- /dev/null
+++ b/admin/local-large-cache.yaml
@@ -0,0 +1,30 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: local-large-cache
+spec:
+  capacity:
+    storage: 10Ti
+  volumeMode: Filesystem
+  accessModes:
+  - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Delete
+  storageClassName: local-large-cache
+  local:
+    path: /data
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: kubernetes.io/hostname
+          operator: In
+          values:
+          - kubekorner.ssec.wisc.edu
+          - presto.ssec.wisc.edu
+---
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+  name: local-large-cache
+provisioner: kubernetes.io/no-provisioner
+volumeBindingMode: WaitForFirstConsumer
\ No newline at end of file
diff --git a/admin/local-medium-archive.yaml b/admin/local-medium-archive.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f3d21134d753218d1aaee1c96cfe00cab6acf19b
--- /dev/null
+++ b/admin/local-medium-archive.yaml
@@ -0,0 +1,30 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: local-medium-archive
+spec:
+  capacity:
+    storage: 15Ti
+  volumeMode: Filesystem
+  accessModes:
+  - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Delete
+  storageClassName: local-medium-archive
+  local:
+    path: /data
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: kubernetes.io/hostname
+          operator: In
+          values:
+          - kubekorner.ssec.wisc.edu
+          - presto.ssec.wisc.edu
+---
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+  name: local-medium-archive
+provisioner: kubernetes.io/no-provisioner
+volumeBindingMode: WaitForFirstConsumer
\ No newline at end of file