Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cspell/azure-services.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ arcbox
arcgis
arck
arcsight
arccontainerstorage
armttk
azacsnap
azapi
azcmagent
azcopy
certmanagement
connectedk8s
containerstorage
azdo
azmk
azmon
Expand Down Expand Up @@ -68,5 +72,8 @@ servicebus
sharepoint
snet
southeastasia
storageaccountendpoint
wasbs
westus
edgevolume
edgevolumes
1 change: 1 addition & 0 deletions .cspell/general-technical.txt
Original file line number Diff line number Diff line change
Expand Up @@ -953,6 +953,7 @@ pipelines
pitj
pivottable
pkgs
pkill
platform
platformops
platforms
Expand Down
10 changes: 10 additions & 0 deletions data-pipeline/arc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,13 @@ Kubernetes manifests and configuration for Arc-connected edge data pipeline comp
| K8s manifests | Deployments, services, and config maps for recording workloads |
| RBAC policies | Service accounts and role bindings for edge agents |
| Flux configuration | GitOps sync definitions for automated edge deployment |
| ACSA manifests | PVC and IngestSubvolume templates for cloud-backed edge storage |

## 📄 ACSA Manifests

| File | Description |
|-------------------------------|-------------------------------------------------------|
| `acsa-pvc.yaml` | ReadWriteMany PVC backed by ACSA `cloud-backed-sc` |
| `acsa-ingest-subvolume.yaml` | IngestSubvolume CRD defining Blob sync policy |

These templates use `envsubst` variables rendered by `data-pipeline/setup/deploy-acsa.sh`. See the [ACSA setup guide](../../docs/data-pipeline/acsa-setup.md) for full deployment instructions.
20 changes: 20 additions & 0 deletions data-pipeline/arc/acsa-ingest-subvolume.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
apiVersion: arccontainerstorage.azure.net/v1
kind: IngestSubvolume
metadata:
name: ${SUBVOLUME_NAME}
namespace: ${EDGE_NAMESPACE}
spec:
edgevolume: ${ACSA_PVC_NAME}
path: ${SUBVOLUME_PATH}
authentication:
authType: MANAGED_IDENTITY
storageAccountEndpoint: "https://${STORAGE_ACCOUNT_NAME}.blob.core.windows.net/"
containerName: ${BLOB_CONTAINER_NAME}
ingest:
order: ${ACSA_INGEST_ORDER}
minDelaySec: ${ACSA_INGEST_MIN_DELAY_SEC}
eviction:
order: ${ACSA_EVICTION_ORDER}
minDelaySec: ${ACSA_EVICTION_MIN_DELAY_SEC}
onDelete: ${ACSA_ON_DELETE}
13 changes: 13 additions & 0 deletions data-pipeline/arc/acsa-pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${ACSA_PVC_NAME}
namespace: ${EDGE_NAMESPACE}
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: ${ACSA_PVC_SIZE}
storageClassName: ${ACSA_STORAGE_CLASS}
9 changes: 9 additions & 0 deletions data-pipeline/setup/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,12 @@ Deployment scripts for Arc-connected edge agents that run the ROS 2 recording se
| Arc agent provisioning | Connect edge devices to Azure Arc-enabled Kubernetes |
| Connectivity validation | Verify cloud connectivity and service endpoints |
| Runtime configuration | Deploy recording configuration and service dependencies |
| ACSA deployment | Install Azure Container Storage for Arc and configure Blob sync |

## 📜 Scripts

| Script | Purpose |
|--------------------|-----------------------------------------------------------------------------------|
| `deploy-acsa.sh` | Install cert-manager + ACSA extensions, assign Blob role, apply PVC/subvolume manifests |

See the [ACSA setup guide](../../docs/data-pipeline/acsa-setup.md) for deployment instructions.
31 changes: 31 additions & 0 deletions data-pipeline/setup/defaults.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Default configuration for data-pipeline setup deployment scripts
# Override via command-line arguments or environment variables

# Default Terraform Directory (relative to data-pipeline/setup)
DEFAULT_TF_DIR="${DEFAULT_TF_DIR:-../../infrastructure/terraform}"

# Arc Namespace Configuration
EDGE_NAMESPACE="${EDGE_NAMESPACE:-data-pipeline}"

# ACSA Extension Configuration
ACSA_EXTENSION_NAME="${ACSA_EXTENSION_NAME:-azure-arc-containerstorage}"
ACSA_EXTENSION_VERSION="${ACSA_EXTENSION_VERSION:-2.11.2}"
ACSA_RELEASE_TRAIN="${ACSA_RELEASE_TRAIN:-stable}"
ACSA_DISK_STORAGE_CLASS="${ACSA_DISK_STORAGE_CLASS:-default,local-path}"

# ACSA Volume Configuration
ACSA_STORAGE_CLASS="${ACSA_STORAGE_CLASS:-cloud-backed-sc}"
ACSA_PVC_NAME="${ACSA_PVC_NAME:-recording-data}"
ACSA_PVC_SIZE="${ACSA_PVC_SIZE:-50Gi}"

# Blob Sync Configuration
BLOB_CONTAINER_NAME="${BLOB_CONTAINER_NAME:-datasets}"
SUBVOLUME_NAME="${SUBVOLUME_NAME:-recordings}"
SUBVOLUME_PATH="${SUBVOLUME_PATH:-recordings}"

# IngestSubvolume synchronization behavior
ACSA_INGEST_ORDER="${ACSA_INGEST_ORDER:-oldest-first}"
ACSA_INGEST_MIN_DELAY_SEC="${ACSA_INGEST_MIN_DELAY_SEC:-30}"
ACSA_EVICTION_ORDER="${ACSA_EVICTION_ORDER:-unordered}"
ACSA_EVICTION_MIN_DELAY_SEC="${ACSA_EVICTION_MIN_DELAY_SEC:-600}"
ACSA_ON_DELETE="${ACSA_ON_DELETE:-trigger-immediate-ingest}"
Loading
Loading