Add Azure deployment automation and documentation
- Add separate deployment pipeline (azure-pipelines-deploy.yml) for App Service deployment - Add advanced pipeline with deployment slots (azure-pipelines-slots.yml) - Restore azure-pipelines.yml to build-only (no deployment) - Add comprehensive Azure setup documentation: - AZURE-NEW-SUBSCRIPTION-SETUP.md: Complete step-by-step Azure resource setup - AZURE-RESOURCES-OVERVIEW.md: Quick reference for all Azure resources - AZURE-ACR-SHARED-SETUP.md: Guide for shared Container Registry - AZURE-ACR-NAMING-RECOMMENDATION.md: Naming recommendations for Zuyderland - AZURE-PIPELINE-DEPLOYMENT.md: Automated deployment setup guide - AZURE-PIPELINE-QUICK-REFERENCE.md: Quick reference for pipeline variables - AZURE-PIPELINES-USAGE.md: Guide for using build and deployment pipelines - Add setup script (scripts/setup-azure-resources.sh) for automated resource creation - Support for shared ACR across multiple applications
This commit is contained in:
165
docs/AZURE-ACR-NAMING-RECOMMENDATION.md
Normal file
165
docs/AZURE-ACR-NAMING-RECOMMENDATION.md
Normal file
@@ -0,0 +1,165 @@
|
||||
# Azure Container Registry Naming Recommendation
|
||||
|
||||
Recommendations for naming your Azure Container Registry for Zuyderland Application Services.
|
||||
|
||||
## 🎯 Requirements
|
||||
|
||||
Azure Container Registry names must:
|
||||
- Be **globally unique** (across all Azure subscriptions)
|
||||
- Be **5-50 characters** long
|
||||
- Contain **only lowercase alphanumeric characters** (no hyphens, underscores, or special characters)
|
||||
- Be **descriptive** but not too long
|
||||
|
||||
## 💡 Recommended Options
|
||||
|
||||
### Option 1: `zuyderlandacr` ⭐ **RECOMMENDED**
|
||||
|
||||
**Pros:**
|
||||
- ✅ Clear company identification
|
||||
- ✅ Short and memorable (15 characters)
|
||||
- ✅ Generic enough for all Application Services apps
|
||||
- ✅ Easy to type and remember
|
||||
- ✅ Professional appearance
|
||||
|
||||
**Cons:**
|
||||
- ⚠️ Might be taken if Zuyderland already has an ACR
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
ACR_NAME="zuyderlandacr"
|
||||
# Images: zuyderlandacr.azurecr.io/cmdb-insight/backend:latest
|
||||
```
|
||||
|
||||
### Option 2: `zuyderlandsharedacr`
|
||||
|
||||
**Pros:**
|
||||
- ✅ Clearly indicates it's a shared registry
|
||||
- ✅ Company identification
|
||||
- ✅ Good for documentation ("shared ACR")
|
||||
|
||||
**Cons:**
|
||||
- ⚠️ Longer (20 characters)
|
||||
- ⚠️ "shared" might be redundant (ACRs are typically shared)
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
ACR_NAME="zuyderlandsharedacr"
|
||||
# Images: zuyderlandsharedacr.azurecr.io/cmdb-insight/backend:latest
|
||||
```
|
||||
|
||||
### Option 3: `zyldacr` (Abbreviated)
|
||||
|
||||
**Pros:**
|
||||
- ✅ Very short (7 characters)
|
||||
- ✅ Easy to type
|
||||
- ✅ Less likely to be taken
|
||||
|
||||
**Cons:**
|
||||
- ⚠️ Less clear what "zyld" means
|
||||
- ⚠️ Might not be obvious it's Zuyderland
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
ACR_NAME="zyldacr"
|
||||
# Images: zyldacr.azurecr.io/cmdb-insight/backend:latest
|
||||
```
|
||||
|
||||
### Option 4: `zuyderlandappsvcsacr`
|
||||
|
||||
**Pros:**
|
||||
- ✅ Includes department name (Application Services)
|
||||
- ✅ Very specific
|
||||
|
||||
**Cons:**
|
||||
- ⚠️ Long (23 characters)
|
||||
- ⚠️ Less flexible if other departments want to use it
|
||||
- ⚠️ Harder to type
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
ACR_NAME="zuyderlandappsvcsacr"
|
||||
# Images: zuyderlandappsvcsacr.azurecr.io/cmdb-insight/backend:latest
|
||||
```
|
||||
|
||||
## 🏆 Final Recommendation
|
||||
|
||||
**Use: `zuyderlandacr`**
|
||||
|
||||
**Reasoning:**
|
||||
1. **Clear and professional**: Immediately identifies as Zuyderland
|
||||
2. **Appropriate length**: Not too short (unclear) or too long (hard to type)
|
||||
3. **Generic enough**: Can be used by all Application Services applications
|
||||
4. **Future-proof**: Works for any department or team within Zuyderland
|
||||
5. **Standard pattern**: Follows common naming convention (`companynameacr`)
|
||||
|
||||
## 🔍 Check Availability
|
||||
|
||||
Before creating, check if the name is available:
|
||||
|
||||
```bash
|
||||
# Try to check if name exists (will fail if available, which is good)
|
||||
az acr show --name zuyderlandacr --resource-group dummy-rg 2>&1 | grep -q "could not be found" && echo "Name available!" || echo "Name might be taken"
|
||||
|
||||
# Or try to create (will fail if taken)
|
||||
az acr check-name --name zuyderlandacr
|
||||
```
|
||||
|
||||
## 📝 Alternative if Name is Taken
|
||||
|
||||
If `zuyderlandacr` is already taken, try:
|
||||
|
||||
1. `zuyderlandacr01` - Add number suffix
|
||||
2. `zuyderlandacrprod` - Add environment suffix
|
||||
3. `zyldacr` - Use abbreviation
|
||||
4. `zuyderlandregistry` - Use full word "registry"
|
||||
5. `zuyderlandcontainers` - Use "containers" instead of "acr"
|
||||
|
||||
## 🎯 Naming Pattern
|
||||
|
||||
For consistency across Zuyderland, consider this pattern:
|
||||
|
||||
```
|
||||
zuyderlandacr ← Shared ACR for all apps (recommended)
|
||||
zuyderlandacrdev ← Development ACR (if needed)
|
||||
zuyderlandacrprod ← Production ACR (if separate)
|
||||
```
|
||||
|
||||
**But for most cases, one shared ACR (`zuyderlandacr`) is sufficient.**
|
||||
|
||||
## 📋 Update Your Configuration
|
||||
|
||||
Once you've chosen a name, update:
|
||||
|
||||
### 1. Setup Script
|
||||
```bash
|
||||
# In scripts/setup-azure-resources.sh
|
||||
ACR_NAME="zuyderlandacr"
|
||||
ACR_RESOURCE_GROUP="rg-shared-services" # Or rg-zuyderland-shared
|
||||
```
|
||||
|
||||
### 2. Pipeline Variables
|
||||
```yaml
|
||||
# In azure-pipelines.yml
|
||||
variables:
|
||||
acrName: 'zuyderlandacr'
|
||||
repositoryName: 'cmdb-insight'
|
||||
```
|
||||
|
||||
### 3. Build Scripts
|
||||
```bash
|
||||
# In scripts/build-and-push-azure.sh
|
||||
export ACR_NAME="zuyderlandacr"
|
||||
```
|
||||
|
||||
## ✅ Checklist
|
||||
|
||||
- [ ] Choose ACR name: `zuyderlandacr` (recommended)
|
||||
- [ ] Check name availability
|
||||
- [ ] Create ACR with chosen name
|
||||
- [ ] Update all configuration files
|
||||
- [ ] Document name for team
|
||||
- [ ] Share ACR name with other Application Services teams
|
||||
|
||||
---
|
||||
|
||||
**Recommended: `zuyderlandacr`** - Clear, professional, and reusable for all Zuyderland Application Services applications.
|
||||
Reference in New Issue
Block a user