Replicated CLI Alias

The Replicated easy install script will automatically set up the replicated CLI and replicatedctl CLI aliases. However, if a server is automatically upgraded from a version before 2.9.0, then the replicatedctl alias will not be automatically installed. Likewise, if your customer performed a manual installation, then neither Replicated CLI versions will be available as an alias.

Depending on the scheduler Replicated is running with, run the following shell scripts as sudo to set up the replicated and replicatedctl aliases:

Replicated Scheduler

cat > /usr/local/bin/replicated <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
sudo docker exec -it replicated replicated "\$@"
else
sudo docker exec replicated replicated "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicated
cat > /usr/local/bin/replicatedctl <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
sudo docker exec -it replicated replicatedctl "\$@"
else
sudo docker exec replicated replicatedctl "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicatedctl

Swarm Scheduler

cat > /usr/local/bin/replicated <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
sudo docker exec -it "\$(sudo docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" "\$(sudo docker service ps "\$(sudo docker service inspect --format "{{.ID}}" replicated_replicated)" -q | awk "NR==1")")" replicated "\$@"
else
sudo docker exec "\$(sudo docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" "\$(sudo docker service ps "\$(sudo docker service inspect --format "{{.ID}}" replicated_replicated)" -q | awk "NR==1")")" replicated "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicated
cat > /usr/local/bin/replicatedctl <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
sudo docker exec -it "\$(sudo docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" "\$(sudo docker service ps "\$(sudo docker service inspect --format "{{.ID}}" replicated_replicated)" -q | awk "NR==1")")" replicatedctl "\$@"
else
sudo docker exec "\$(sudo docker inspect --format "{{.Status.ContainerStatus.ContainerID}}" "\$(sudo docker service ps "\$(sudo docker service inspect --format "{{.ID}}" replicated_replicated)" -q | awk "NR==1")")" replicatedctl "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicatedctl

Kubernetes Scheduler

cat > /usr/local/bin/replicated <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
kubectl exec -it "\$(kubectl get pods -l=app=replicated -l=tier=master -o=jsonpath='{.items..metadata.name}')" -c replicated -- replicated "\$@"
else
kubectl exec "\$(kubectl get pods -l=app=replicated -l=tier=master -o=jsonpath='{.items..metadata.name}')" -c replicated -- replicated "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicated
cat > /usr/local/bin/replicatedctl <<-EOF
#!/bin/sh

# test if stdout is a terminal
if [ -t 1 ]; then
kubectl exec -it "\$(kubectl get pods -l=app=replicated -l=tier=master -o=jsonpath='{.items..metadata.name}')" -c replicated -- replicatedctl "\$@"
else
kubectl exec "\$(kubectl get pods -l=app=replicated -l=tier=master -o=jsonpath='{.items..metadata.name}')" -c replicated -- replicatedctl "\$@"
fi
EOF
chmod a+x /usr/local/bin/replicatedctl