Site Update Commands¶
The site update command group provides comprehensive site configuration management capabilities.
Overview¶
Update commands allow you to: - Update site configuration from a YAML file - Modify individual site properties - Manage access control (users and groups) - Configure custom applications - Restart and upgrade sites - Request site publishing
All update commands require specifying the site with --space and --name flags.
Global Flags¶
--debug,-d,--verbose- Show debug information--insecure,-k- Skip TLS certificate verification--force,-f,-y,--yes- Force operations without prompting--output,-o- Output format:json,yaml, ortable
Commands¶
sitesctl site update set:all¶
Update site configuration from a YAML file.
Usage:
Flags:
- --file (required) - Path to YAML configuration file
Examples:
# Update site from YAML file
sitesctl site --space myspace --name mysite \
update set:all --file newconfig.yaml
# Update without confirmation
sitesctl site --space myspace --name mysite \
update set:all --file newconfig.yaml --force
Example YAML file:
site_name: mysite
description: "Updated description"
quota: 10
retention_date: "2027-12-31"
access_users:
- user1
- user2
admin_users:
- admin1
Note: Some fields like site_type, owner, and site_monitored require hub admin privileges.
sitesctl site update set:name¶
Update the site name.
Usage:
Flags:
- --value, -v (required) - New site name
Examples:
Important: - Changes the site URL - Old URL will no longer work - Update any bookmarks or links
sitesctl site update set:space¶
Update the site space (custom space identifier).
Usage:
Flags:
- --value, -v (required) - New custom space name
Examples:
Important:
- Changes the site URL
- Site will be accessible at https://sites.ecmwf.int/{new-space}/{name}
- Update any references to the old URL
sitesctl site update set:owner¶
Update the site owner.
Usage:
Flags:
- --value, -v (required) - New site owner username
Examples:
# Transfer ownership
sitesctl site --space myspace --name mysite \
update set:owner --value newowner
Note: May require hub admin privileges.
sitesctl site update set:retentiondate¶
Update the retention date.
Usage:
Flags:
- --value, -v - Retention date in YYYY-MM-DD format
- Default: One year from today
Examples:
# Set retention date
sitesctl site --space myspace --name mysite \
update set:retentiondate --value 2027-03-29
# Use default (one year from today)
sitesctl site --space myspace --name mysite \
update set:retentiondate
About Retention Date: - Date when the site may be automatically deleted - Sites past retention date may be cleaned up - Extend regularly for long-lived sites
sitesctl site update set:description¶
Update the site description.
Usage:
Flags:
- --value, -v (required) - New site description
Examples:
# Update description
sitesctl site --space myspace --name mysite \
update set:description --value "New project description"
sitesctl site update set:toggle¶
Archive or unarchive a site (toggle enabled state).
Usage:
Examples:
# Toggle archive state
sitesctl site --space myspace --name mysite update set:toggle
# Toggle without confirmation
sitesctl site --space myspace --name mysite update set:toggle --force
What it does: - If enabled: Archives the site (disables web access) - If archived: Unarchives the site (enables web access) - Content is preserved in both states
Use Cases: - Temporarily disable a site - Mark sites as inactive without deleting - Preserve content while preventing access
Access Control Commands¶
sitesctl site update set:share:accessusers¶
Set the users that can access the site.
Usage:
sitesctl site --space <space> --name <name> update set:share:accessusers --value <user1> --value <user2> ...
Flags:
- --value, -v (required, repeatable) - Usernames to grant access
Examples:
# Grant access to specific users
sitesctl site --space myspace --name mysite \
update set:share:accessusers --value user1 --value user2
# Grant access to single user
sitesctl site --space myspace --name mysite \
update set:share:accessusers --value user1
Note: This replaces the entire access users list. To add users, include existing users in the command.
sitesctl site update set:share:accessgroups¶
Set the groups that can access the site.
Usage:
sitesctl site --space <space> --name <name> update set:share:accessgroups --value <group1> --value <group2> ...
Flags:
- --value, -v (required, repeatable) - EMS group names to grant access
Examples:
# Grant access to groups
sitesctl site --space myspace --name mysite \
update set:share:accessgroups --value group1 --value group2
sitesctl site update set:share:adminusers¶
Set the users that can administer the site.
Usage:
sitesctl site --space <space> --name <name> update set:share:adminusers --value <user1> --value <user2> ...
Flags:
- --value, -v (required, repeatable) - Usernames to grant admin access
Examples:
# Grant admin access to users
sitesctl site --space myspace --name mysite \
update set:share:adminusers --value admin1 --value admin2
Admin Permissions: - Full content management - Site configuration updates - Token management - Cannot delete site (unless owner)
sitesctl site update set:share:admingroups¶
Set the groups that can administer the site.
Usage:
sitesctl site --space <space> --name <name> update set:share:admingroups --value <group1> --value <group2> ...
Flags:
- --value, -v (required, repeatable) - EMS group names to grant admin access
Examples:
# Grant admin access to groups
sitesctl site --space myspace --name mysite \
update set:share:admingroups --value admingroup1 --value admingroup2
Custom Application Commands¶
sitesctl site update set:customimage¶
Update the custom application image.
Usage:
Flags:
- --value, -v - Custom application image (e.g., eccr.ecmwf.int/project/image:1.0)
Examples:
# Set custom image
sitesctl site --space myspace --name mysite \
update set:customimage --value eccr.ecmwf.int/myproject/myphpsite:1.0
# Clear custom image (use default)
sitesctl site --space myspace --name mysite \
update set:customimage --value ""
Use Cases: - Deploy custom applications - Use specific software versions - Run specialized environments
sitesctl site update set:customcontextroot¶
Update the custom application context root.
Usage:
Flags:
- --value, -v (required) - Context root: root_context or site_context
Examples:
# Use root context (app serves from /)
sitesctl site --space myspace --name mysite \
update set:customcontextroot --value root_context
# Use site context (app serves from /{space}/{name}/)
sitesctl site --space myspace --name mysite \
update set:customcontextroot --value site_context
Context Root Options:
root_context: Application serves from/(ignores space/name path)site_context: Application serves from/{space}/{name}/(preserves URL structure)
sitesctl site update set:customproxy¶
Update the custom application proxy type.
Usage:
Flags:
- --value, -v (required) - Proxy type: proxy or fastcgi
Examples:
# Use HTTP proxy
sitesctl site --space myspace --name mysite \
update set:customproxy --value proxy
# Use FastCGI
sitesctl site --space myspace --name mysite \
update set:customproxy --value fastcgi
Proxy Types:
proxy: Standard HTTP reverse proxy (most applications)fastcgi: FastCGI protocol (PHP-FPM, etc.)
sitesctl site update set:customenv¶
Update custom application environment variables.
Usage:
sitesctl site --space <space> --name <name> update set:customenv --value <VAR=value> --value <VAR2=value2> ...
Flags:
- --value, -v (required, repeatable) - Environment variables in VAR=value format
Examples:
# Set environment variables
sitesctl site --space myspace --name mysite \
update set:customenv \
--value "DATABASE_URL=postgres://..." \
--value "API_KEY=abc123"
# Set multiple variables
sitesctl site --space myspace --name mysite \
update set:customenv \
--value "VAR1=value1" \
--value "VAR2=value2" \
--value "VAR3=value3"
Note: This replaces all environment variables. Include existing variables to preserve them.
Operational Commands¶
sitesctl site update restart¶
Restart the site by deleting the current pod.
Usage:
Examples:
# Restart site
sitesctl site --space myspace --name mysite update restart
# Restart without confirmation
sitesctl site --space myspace --name mysite update restart --force
What it does: - Terminates the current site pod - Kubernetes automatically creates a new pod - Applies any configuration changes - Brief downtime during restart (typically <30 seconds)
When to restart: - After updating custom application settings - To apply new environment variables - When the site is unresponsive - After updating custom image
sitesctl site update upgrade¶
Upgrade site components to the latest version.
Usage:
Examples:
# Upgrade site
sitesctl site --space myspace --name mysite update upgrade
# Upgrade without confirmation
sitesctl site --space myspace --name mysite update upgrade --force
What it does: - Updates site components to latest versions - Updates system dependencies - Applies security patches - May include new features
Recommendation: Regularly upgrade sites to receive updates and security fixes.
sitesctl site update publish¶
Request site publishing (make a private site public).
Usage:
Examples:
# Request publishing
sitesctl site --space myspace --name mysite update publish
# Request without confirmation
sitesctl site --space myspace --name mysite update publish --force
What it does: - Creates a publishing request for review - Site will be reviewed by administrators - If approved, site becomes publicly accessible - Private sites are only accessible to authorized users
Publishing Process: 1. Submit publishing request 2. Hub administrators review the request 3. If approved: Site visibility changes to public 4. Public sites are accessible without authentication
Common Update Workflows¶
Complete Site Configuration Update¶
# Create YAML file with all settings
cat > mysite-config.yaml <<EOF
site_name: mysite
description: "Production website"
quota: 20
retention_date: "2028-12-31"
access_users:
- user1
- user2
admin_users:
- admin1
EOF
# Apply configuration
sitesctl site --space myspace --name mysite \
update set:all --file mysite-config.yaml --force
Update Custom Application¶
# Set custom image
sitesctl site --space myspace --name mysite \
update set:customimage --value eccr.ecmwf.int/project/app:2.0 --force
# Set environment variables
sitesctl site --space myspace --name mysite \
update set:customenv \
--value "APP_ENV=production" \
--value "LOG_LEVEL=info" \
--force
# Restart to apply changes
sitesctl site --space myspace --name mysite \
update restart --force
Manage Access Control¶
# Add users and groups
sitesctl site --space myspace --name mysite \
update set:share:accessusers \
--value user1 --value user2 --value user3 --force
sitesctl site --space myspace --name mysite \
update set:share:accessgroups \
--value team1 --value team2 --force
# Set administrators
sitesctl site --space myspace --name mysite \
update set:share:adminusers \
--value admin1 --force
Archive and Restore¶
# Archive site (disable access)
sitesctl site --space myspace --name mysite \
update set:toggle --force
# ... time passes ...
# Unarchive site (restore access)
sitesctl site --space myspace --name mysite \
update set:toggle --force
Scripting Examples¶
Bulk Update Retention Dates¶
#!/bin/bash
# Extend retention date for all your sites
new_retention="2028-12-31"
username=$(whoami)
sitesctl list --owner "$username" --output json | \
jq -r '.[] | "\(.space) \(.name)"' | \
while read space name; do
echo "Updating $space/$name..."
sitesctl site --space "$space" --name "$name" \
update set:retentiondate --value "$new_retention" --force
done
Rolling Restart¶
#!/bin/bash
# Restart sites one by one with delay
sites=("site1" "site2" "site3")
for site in "${sites[@]}"; do
echo "Restarting $site..."
sitesctl site --space myspace --name "$site" update restart --force
echo "Waiting 60 seconds..."
sleep 60
done
Synchronize Access Control¶
#!/bin/bash
# Apply same access control to multiple sites
users=("user1" "user2" "user3")
sites=("site1" "site2" "site3")
for site in "${sites[@]}"; do
echo "Updating access for $site..."
sitesctl site --space myspace --name "$site" \
update set:share:accessusers \
${users[@]/#/--value } \
--force
done
Best Practices¶
- Test updates on development sites first
- Use YAML files for complex configurations
- Version control YAML configuration files
- Backup before major changes (use
content download) - Use
--forcecarefully in automation - Document access control changes
- Schedule restarts during low-traffic periods
- Monitor sites after updates
- Keep retention dates up to date
- Regularly upgrade sites for security updates
Troubleshooting¶
Permission Denied¶
Problem: Cannot update site settings
Solutions:
- Verify you're the owner or an admin
- Some fields require hub admin privileges
- Check with sitesctl list --space X --name Y
Restart Takes Too Long¶
Problem: Site doesn't come back online after restart
Solutions:
- Check site health: sitesctl site --space X --name Y health
- Verify custom image is accessible
- Check environment variables are correct
- Review logs via web interface
Access Control Not Working¶
Problem: Users/groups still can't access site
Solutions: - Verify usernames/groups are correct - Check if site is archived - Confirm users are in specified groups - Wait a few minutes for changes to propagate
See Also¶
- Create Site Command - Initial site creation
- Site Content Commands - Managing site files
- Site Token Management - Managing authentication tokens
- List Sites Command - Viewing site configurations