docs: Update all documentation with Vault credential requirements
All checks were successful
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 36s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 31s
Code Quality & Security Scan / TFLint (push) Successful in 21s
Code Quality & Security Scan / Terraform Destroy (push) Has been skipped
Code Quality & Security Scan / Terraform Validate (push) Successful in 32s
Code Quality & Security Scan / SonarQube Scan (push) Successful in 42s
Code Quality & Security Scan / Terraform Plan (push) Successful in 1m22s
Code Quality & Security Scan / Terraform Apply (push) Successful in 1m57s
All checks were successful
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 36s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 31s
Code Quality & Security Scan / TFLint (push) Successful in 21s
Code Quality & Security Scan / Terraform Destroy (push) Has been skipped
Code Quality & Security Scan / Terraform Validate (push) Successful in 32s
Code Quality & Security Scan / SonarQube Scan (push) Successful in 42s
Code Quality & Security Scan / Terraform Plan (push) Successful in 1m22s
Code Quality & Security Scan / Terraform Apply (push) Successful in 1m57s
Updated comprehensive documentation across README, QUICKSTART, and MIGRATION_GUIDE to clarify that Renovate credentials are stored in HashiCorp Vault, not passed as Terraform variables. Changes to README.md: - Added detailed Vault setup section in Gitea Bot Setup - Documented all 5 required keys in secret/renovate path - Added vault kv put example with all required fields - Added token regeneration instructions - Clarified prerequisites to include Vault secret requirements - Emphasized CRITICAL nature of Vault storage Changes to QUICKSTART.md: - Added comprehensive Step 3: Store Credentials in Vault - Included complete vault kv put command with all keys - Added verification steps with expected output - Listed common mistakes to avoid (missing username, wrong endpoint, etc.) - Updated Step 4 to clarify tfvars only needs Vault auth - Renumbered subsequent steps (5-9) - Added environment variable verification in Step 6 - Added troubleshooting steps for authentication errors Changes to MIGRATION_GUIDE.md: - Clearly separated Vault-stored config from Terraform variables - Added vault kv put example in New Required Configuration section - Updated migration steps to include Vault credential storage - Clarified that renovate_endpoint and renovate_token are NOT tfvars - Listed all 5 required Vault keys with descriptions These changes address the authentication failures caused by: - Missing renovate_username in environment variables - Confusion about where credentials should be stored - Token regeneration without updating Vault All documentation now consistently emphasizes the Vault-first approach and provides clear, copy-paste-ready commands for proper setup.
This commit is contained in:
parent
2d287824c7
commit
906d000e8e
@ -43,21 +43,35 @@ This module has been completely repurposed from deploying Ansible Event-Driven A
|
|||||||
- `upload_example_rulebook` → Use `upload_config_file` instead
|
- `upload_example_rulebook` → Use `upload_config_file` instead
|
||||||
- `cpu_limit` → Removed (can be added back if needed)
|
- `cpu_limit` → Removed (can be added back if needed)
|
||||||
|
|
||||||
#### New Required Variables
|
#### New Required Configuration (Stored in Vault)
|
||||||
|
|
||||||
|
**CRITICAL**: The following values are NOT Terraform variables. They must be stored in HashiCorp Vault at path `secret/renovate`:
|
||||||
|
|
||||||
|
- `renovate_platform` - Must be "gitea"
|
||||||
- `renovate_endpoint` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1/`)
|
- `renovate_endpoint` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1/`)
|
||||||
- `renovate_token` - Gitea personal access token for the bot
|
- `renovate_token` - Gitea personal access token for the bot
|
||||||
|
- `renovate_git_author` - Git commit author (e.g., "Renovate Bot <bot@example.com>")
|
||||||
|
- `renovate_username` - Bot username (e.g., "renovate-bot")
|
||||||
|
|
||||||
#### New Optional Variables
|
**Store in Vault using:**
|
||||||
|
```bash
|
||||||
|
vault kv put secret/renovate \
|
||||||
|
renovate_platform="gitea" \
|
||||||
|
renovate_endpoint="https://gitea.example.com/api/v1/" \
|
||||||
|
renovate_token="YOUR_GITEA_TOKEN" \
|
||||||
|
renovate_git_author="Renovate Bot <renovate-bot@example.com>" \
|
||||||
|
renovate_username="renovate-bot"
|
||||||
|
```
|
||||||
|
|
||||||
- `renovate_platform` - Git platform (default: "gitea")
|
#### New Optional Variables (Terraform)
|
||||||
- `renovate_git_author` - Git commit author
|
|
||||||
- `renovate_username` - Bot username
|
- `github_com_token` - Optional GitHub.com token for changelog fetching
|
||||||
- `renovate_autodiscover` - Enable auto-discovery
|
- `restart_policy` - Container restart policy (default: "unless-stopped")
|
||||||
- `renovate_onboarding_config` - Onboarding configuration
|
- `upload_config_file` - Upload config.js template (default: true)
|
||||||
- `github_com_token` - Optional GitHub.com token
|
- `renovate_autodiscover` - Enable auto-discovery (default: true)
|
||||||
- `restart_policy` - Container restart policy
|
- `renovate_onboarding_config` - Onboarding configuration JSON
|
||||||
- `upload_config_file` - Upload config.js template
|
- `log_level` - Logging level (default: "info")
|
||||||
|
- `extra_env_vars` - Additional environment variables
|
||||||
|
|
||||||
### 6. Configuration Files
|
### 6. Configuration Files
|
||||||
|
|
||||||
@ -88,10 +102,28 @@ This is the safest approach if you don't need to preserve the existing infrastru
|
|||||||
terraform destroy
|
terraform destroy
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Update Configuration**:
|
3. **Store Renovate Credentials in Vault**:
|
||||||
- Update `terraform.tfvars` with new variables
|
```bash
|
||||||
- Add `renovate_endpoint` and `renovate_token`
|
# Authenticate to Vault
|
||||||
|
export VAULT_ADDR="https://your-vault-server:8200"
|
||||||
|
vault login -method=approle role_id=YOUR_ROLE_ID secret_id=YOUR_SECRET_ID
|
||||||
|
|
||||||
|
# Store Renovate credentials
|
||||||
|
vault kv put secret/renovate \
|
||||||
|
renovate_platform="gitea" \
|
||||||
|
renovate_endpoint="https://gitea.example.com/api/v1/" \
|
||||||
|
renovate_token="YOUR_GITEA_TOKEN" \
|
||||||
|
renovate_git_author="Renovate Bot <renovate-bot@example.com>" \
|
||||||
|
renovate_username="renovate-bot"
|
||||||
|
|
||||||
|
# Verify
|
||||||
|
vault kv get secret/renovate
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Update Configuration**:
|
||||||
|
- Update `terraform.tfvars` with only Vault credentials
|
||||||
- Remove old EDA-specific variables
|
- Remove old EDA-specific variables
|
||||||
|
- Do NOT add `renovate_endpoint` or `renovate_token` to tfvars (they're in Vault)
|
||||||
|
|
||||||
4. **Initialize and Deploy**:
|
4. **Initialize and Deploy**:
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@ -29,28 +29,74 @@ This is a quick reference for getting Renovate up and running with Gitea.
|
|||||||
- ☑️ `user` (Read)
|
- ☑️ `user` (Read)
|
||||||
- ☑️ `issue` (Read and Write)
|
- ☑️ `issue` (Read and Write)
|
||||||
- ☑️ `organization` (Read)
|
- ☑️ `organization` (Read)
|
||||||
5. Generate and **save the token securely**
|
5. Click **Generate Token**
|
||||||
|
6. **IMMEDIATELY COPY THE TOKEN** - You won't be able to see it again!
|
||||||
|
7. Save the token securely - you'll need it for the next step
|
||||||
|
|
||||||
## Step 3: Configure terraform.tfvars
|
## Step 3: Store Credentials in HashiCorp Vault
|
||||||
|
|
||||||
Edit `terraform.tfvars` and update:
|
**CRITICAL**: This module retrieves all Renovate configuration from Vault, NOT from Terraform variables.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Set your Vault address
|
||||||
|
export VAULT_ADDR="https://your-vault-server:8200"
|
||||||
|
|
||||||
|
# Authenticate to Vault using AppRole
|
||||||
|
vault login -method=approle \
|
||||||
|
role_id=YOUR_VAULT_ROLE_ID \
|
||||||
|
secret_id=YOUR_VAULT_SECRET_ID
|
||||||
|
|
||||||
|
# Store all Renovate credentials in Vault
|
||||||
|
vault kv put secret/renovate \
|
||||||
|
renovate_platform="gitea" \
|
||||||
|
renovate_endpoint="https://gitea.bsdserver.nl/api/v1/" \
|
||||||
|
renovate_token="YOUR_TOKEN_FROM_STEP_2" \
|
||||||
|
renovate_git_author="Renovate Bot <renovate-bot@bsdserver.nl>" \
|
||||||
|
renovate_username="renovate-bot"
|
||||||
|
|
||||||
|
# IMPORTANT: Verify the secrets were stored correctly
|
||||||
|
vault kv get secret/renovate
|
||||||
|
```
|
||||||
|
|
||||||
|
**Expected output:**
|
||||||
|
```
|
||||||
|
====== Data ======
|
||||||
|
Key Value
|
||||||
|
--- -----
|
||||||
|
renovate_platform gitea
|
||||||
|
renovate_endpoint https://gitea.bsdserver.nl/api/v1/
|
||||||
|
renovate_token <your-token>
|
||||||
|
renovate_git_author Renovate Bot <renovate-bot@bsdserver.nl>
|
||||||
|
renovate_username renovate-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
**⚠️ Common Mistakes to Avoid:**
|
||||||
|
- ❌ Endpoint without trailing `/api/v1/`
|
||||||
|
- ❌ Forgetting the `renovate_username` key
|
||||||
|
- ❌ Using wrong Vault path (must be `secret/renovate`)
|
||||||
|
- ❌ Token with insufficient scopes
|
||||||
|
|
||||||
|
**If you need to update the token later:**
|
||||||
|
```bash
|
||||||
|
vault kv patch secret/renovate renovate_token="NEW_TOKEN_HERE"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 4: Configure terraform.tfvars
|
||||||
|
|
||||||
|
Edit `terraform.tfvars` and update only these values:
|
||||||
|
|
||||||
```hcl
|
```hcl
|
||||||
# Renovate Configuration
|
# Vault Authentication (required)
|
||||||
domain = "bsdserver.nl"
|
|
||||||
role_id = "your-vault-role-id"
|
role_id = "your-vault-role-id"
|
||||||
secret_id = "your-vault-secret-id"
|
secret_id = "your-vault-secret-id"
|
||||||
|
|
||||||
# Gitea Configuration
|
# Optional: Domain configuration
|
||||||
renovate_endpoint = "https://gitea.bsdserver.nl/api/v1/"
|
domain = "bsdserver.nl"
|
||||||
renovate_token = "your-gitea-token-from-step-2"
|
|
||||||
renovate_git_author = "Renovate Bot <renovate-bot@bsdserver.nl>"
|
|
||||||
renovate_username = "renovate-bot"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Important**: Replace `your-gitea-token-from-step-2` with the actual token from Step 2.
|
**Note**: `renovate_endpoint`, `renovate_token`, `renovate_git_author`, and `renovate_username` are NOT Terraform variables - they come from Vault!
|
||||||
|
|
||||||
## Step 4: Deploy Renovate
|
## Step 5: Deploy Renovate
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Initialize Terraform
|
# Initialize Terraform
|
||||||
@ -65,22 +111,39 @@ terraform apply
|
|||||||
|
|
||||||
Type `yes` when prompted to confirm.
|
Type `yes` when prompted to confirm.
|
||||||
|
|
||||||
## Step 5: Verify Deployment
|
## Step 6: Verify Deployment
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Check container is running
|
# Check container is running
|
||||||
docker ps | grep renovate
|
docker ps | grep renovate
|
||||||
|
|
||||||
# View logs
|
# View logs (watch for errors)
|
||||||
docker logs renovate -f
|
docker logs renovate -f
|
||||||
|
|
||||||
|
# Check environment variables are set correctly
|
||||||
|
docker exec renovate env | grep RENOVATE
|
||||||
```
|
```
|
||||||
|
|
||||||
Look for messages like:
|
**Expected environment variables:**
|
||||||
|
- ✅ `RENOVATE_PLATFORM=gitea`
|
||||||
|
- ✅ `RENOVATE_ENDPOINT=https://gitea.bsdserver.nl/api/v1/`
|
||||||
|
- ✅ `RENOVATE_TOKEN=<your-token>`
|
||||||
|
- ✅ `RENOVATE_GIT_AUTHOR=Renovate Bot <renovate-bot@bsdserver.nl>`
|
||||||
|
- ✅ `RENOVATE_USERNAME=renovate-bot`
|
||||||
|
- ✅ `RENOVATE_AUTODISCOVER=true`
|
||||||
|
|
||||||
|
**Look for SUCCESS messages in logs:**
|
||||||
- ✅ "Platform: gitea"
|
- ✅ "Platform: gitea"
|
||||||
- ✅ "Autodiscovering repositories"
|
- ✅ "Autodiscovering repositories"
|
||||||
- ✅ "Repository: owner/repo"
|
- ✅ "Repository: owner/repo"
|
||||||
|
|
||||||
## Step 6: Add Renovate to a Test Repository
|
**❌ If you see authentication errors:**
|
||||||
|
1. Verify the token is correct in Vault: `vault kv get secret/renovate`
|
||||||
|
2. Check the token hasn't expired in Gitea
|
||||||
|
3. Verify all 5 required keys are in Vault (especially `renovate_username`)
|
||||||
|
4. Ensure the endpoint URL ends with `/api/v1/`
|
||||||
|
|
||||||
|
## Step 7: Add Renovate to a Test Repository
|
||||||
|
|
||||||
1. Navigate to a test repository in Gitea
|
1. Navigate to a test repository in Gitea
|
||||||
2. Add `renovate-bot` as a collaborator with **Write** access
|
2. Add `renovate-bot` as a collaborator with **Write** access
|
||||||
@ -98,7 +161,7 @@ Look for messages like:
|
|||||||
|
|
||||||
4. Commit and push
|
4. Commit and push
|
||||||
|
|
||||||
## Step 7: Wait for Onboarding PR
|
## Step 8: Wait for Onboarding PR
|
||||||
|
|
||||||
Within a few minutes (depends on your container restart schedule), Renovate will:
|
Within a few minutes (depends on your container restart schedule), Renovate will:
|
||||||
|
|
||||||
@ -108,7 +171,7 @@ Within a few minutes (depends on your container restart schedule), Renovate will
|
|||||||
|
|
||||||
**Review and merge the onboarding PR** to activate Renovate.
|
**Review and merge the onboarding PR** to activate Renovate.
|
||||||
|
|
||||||
## Step 8: Configure Scheduling (Optional)
|
## Step 9: Configure Scheduling (Optional)
|
||||||
|
|
||||||
Choose one of these methods:
|
Choose one of these methods:
|
||||||
|
|
||||||
|
|||||||
39
README.md
39
README.md
@ -66,6 +66,7 @@ Before using this module, ensure you have:
|
|||||||
7. **HashiCorp Vault**: Running instance with:
|
7. **HashiCorp Vault**: Running instance with:
|
||||||
- AppRole authentication enabled
|
- AppRole authentication enabled
|
||||||
- DNS credentials stored at `secret/dns`
|
- DNS credentials stored at `secret/dns`
|
||||||
|
- Renovate credentials stored at `secret/renovate` (see Vault Setup section)
|
||||||
- Role ID and Secret ID for authentication
|
- Role ID and Secret ID for authentication
|
||||||
8. **MinIO/S3 Backend**: For Terraform state storage
|
8. **MinIO/S3 Backend**: For Terraform state storage
|
||||||
9. **DNS Server**: Supporting dynamic updates (TSIG authentication) - optional
|
9. **DNS Server**: Supporting dynamic updates (TSIG authentication) - optional
|
||||||
@ -92,9 +93,43 @@ In your Gitea instance:
|
|||||||
- `user` (Read)
|
- `user` (Read)
|
||||||
- `issue` (Read and Write)
|
- `issue` (Read and Write)
|
||||||
- `organization` (Read)
|
- `organization` (Read)
|
||||||
5. Save the token securely - you'll need it for the `renovate_token` variable
|
5. **IMPORTANT**: Copy the token immediately - you won't be able to see it again
|
||||||
|
6. Save the token securely - you'll need it for Vault storage (next step)
|
||||||
|
|
||||||
### 3. Configure Repository Access
|
### 3. Store Credentials in Vault
|
||||||
|
|
||||||
|
**CRITICAL**: All Renovate configuration must be stored in Vault at `secret/renovate` before deploying this module.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Authenticate to Vault
|
||||||
|
export VAULT_ADDR="https://your-vault-server:8200"
|
||||||
|
vault login -method=approle role_id=YOUR_ROLE_ID secret_id=YOUR_SECRET_ID
|
||||||
|
|
||||||
|
# Store Renovate credentials in Vault
|
||||||
|
vault kv put secret/renovate \
|
||||||
|
renovate_platform="gitea" \
|
||||||
|
renovate_endpoint="https://gitea.example.com/api/v1/" \
|
||||||
|
renovate_token="YOUR_GITEA_TOKEN_FROM_STEP_2" \
|
||||||
|
renovate_git_author="Renovate Bot <renovate-bot@example.com>" \
|
||||||
|
renovate_username="renovate-bot"
|
||||||
|
|
||||||
|
# Verify the secrets are stored correctly
|
||||||
|
vault kv get secret/renovate
|
||||||
|
```
|
||||||
|
|
||||||
|
**Required Keys in `secret/renovate`:**
|
||||||
|
- `renovate_platform` - Must be "gitea"
|
||||||
|
- `renovate_endpoint` - Your Gitea API endpoint (must end with `/api/v1/`)
|
||||||
|
- `renovate_token` - The Personal Access Token from Step 2
|
||||||
|
- `renovate_git_author` - Git commit author for Renovate PRs
|
||||||
|
- `renovate_username` - The Gitea username of the bot account
|
||||||
|
|
||||||
|
**Note**: If you regenerate the Gitea token, you must update it in Vault:
|
||||||
|
```bash
|
||||||
|
vault kv patch secret/renovate renovate_token="NEW_TOKEN_HERE"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Configure Repository Access
|
||||||
|
|
||||||
For each repository you want Renovate to manage:
|
For each repository you want Renovate to manage:
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user