go.etcd.io/etcd@v3.3.27+incompatible/contrib/systemd/etcd2-backup-coreos/etcd2-backup.service (about)

     1  [Unit]
     2  Description=rclone powered etcd2 backup service
     3  After=etcd2.service
     4  
     5  [Service]
     6  Type=oneshot
     7  
     8  ExecStartPre=/usr/bin/rm -rf ${ETCD_BACKUP_DIR}
     9  ExecStartPre=/usr/bin/mkdir -p ${ETCD_BACKUP_DIR}/member/snap
    10  ExecStartPre=/usr/bin/echo ETCD_DATA_DIR: ${ETCD_DATA_DIR}
    11  ExecStartPre=/usr/bin/echo ETCD_BACKUP_DIR: ${ETCD_BACKUP_DIR}
    12  ExecStartPre=/usr/bin/etcdctl backup --data-dir=${ETCD_DATA_DIR} --backup-dir=${ETCD_BACKUP_DIR}
    13  ExecStartPre=/usr/bin/touch ${ETCD_BACKUP_DIR}/member/snap/iamhere.txt
    14  
    15  # Copy the last backup, in case the new upload gets corrupted
    16  ExecStartPre=-/usr/bin/docker run --rm \
    17  			      -v ${RCLONE_CONFIG_PATH}:/etc/rclone.conf \
    18  			      quay.io/coreos/rclone:latest --config /etc/rclone.conf --checksum=${RCLONE_CHECKSUM} \
    19  			      copy ${RCLONE_ENDPOINT}/%m ${RCLONE_ENDPOINT}/%m_backup
    20  
    21  # Upload new backup
    22  ExecStart=/usr/bin/docker run --rm \
    23  			  -v ${ETCD_BACKUP_DIR}:/etcd2backup \
    24  			  -v ${RCLONE_CONFIG_PATH}:/etc/rclone.conf \
    25  			  quay.io/coreos/rclone:latest --config ${RCLONE_CONFIG_PATH} --checksum=${RCLONE_CHECKSUM} \
    26  			  copy /etcd2backup/ ${RCLONE_ENDPOINT}/%m/
    27  
    28  [Install]
    29  WantedBy=multi-user.target