Skip to content

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, or table

Commands

sitesctl site update set:all

Update site configuration from a YAML file.

Usage:

sitesctl site --space <space> --name <name> update set:all --file <yaml-file>

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:

sitesctl site --space <space> --name <name> update set:name --value <new-name>

Flags: - --value, -v (required) - New site name

Examples:

# Rename site
sitesctl site --space myspace --name oldname \
  update set:name --value newname

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:

sitesctl site --space <space> --name <name> update set:space --value <new-space>

Flags: - --value, -v (required) - New custom space name

Examples:

# Change space
sitesctl site --space oldspace --name mysite \
  update set:space --value newspace

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:

sitesctl site --space <space> --name <name> update set:owner --value <username>

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:

sitesctl site --space <space> --name <name> update set:retentiondate --value <date>

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:

sitesctl site --space <space> --name <name> update set:description --value <description>

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:

sitesctl site --space <space> --name <name> update set:toggle

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:

sitesctl site --space <space> --name <name> update set:customimage --value <image>

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:

sitesctl site --space <space> --name <name> update set:customcontextroot --value <context>

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:

sitesctl site --space <space> --name <name> update set:customproxy --value <proxy-type>

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:

sitesctl site --space <space> --name <name> update restart

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:

sitesctl site --space <space> --name <name> update upgrade

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:

sitesctl site --space <space> --name <name> update publish

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

  1. Test updates on development sites first
  2. Use YAML files for complex configurations
  3. Version control YAML configuration files
  4. Backup before major changes (use content download)
  5. Use --force carefully in automation
  6. Document access control changes
  7. Schedule restarts during low-traffic periods
  8. Monitor sites after updates
  9. Keep retention dates up to date
  10. 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