gravitational / teleport

The easiest, and most secure way to access and protect all of your infrastructure.
https://goteleport.com
GNU Affero General Public License v3.0
17.68k stars 1.77k forks source link

Identify ways Teleport Cloud users discover tctl and ensure these include remote instructions #11464

Closed ptgott closed 2 years ago

ptgott commented 2 years ago

Details

It's not always obvious in the product/docs that tctl can be used remotely to manage a Teleport cluster, especially for Teleport Cloud users.

Category

ptgott commented 2 years ago

Here are the docs pages that mention tctl but do not mention tsh login or include the tctl.mdx partial, which explains how to log in to Teleport in order to use tctl remotely:

docs/pages/database-access/guides/gui-clients.mdx
docs/pages/database-access/guides/redis-cluster.mdx
docs/pages/database-access/reference/configuration.mdx
docs/pages/database-access/reference/cli.mdx
docs/pages/database-access/reference/aws.mdx
docs/pages/machine-id/getting-started.mdx
docs/pages/machine-id/reference/configuration.mdx
docs/pages/access-controls/reference.mdx
docs/pages/access-controls/guides/per-session-mfa.mdx
docs/pages/enterprise/soc2.mdx
docs/pages/enterprise/sso/oidc.mdx
docs/pages/enterprise/workflow/ssh-approval-mattermost.mdx
docs/pages/enterprise/workflow/ssh-approval-pagerduty.mdx
docs/pages/enterprise/hsm.mdx
docs/pages/desktop-access/getting-started.mdx
docs/pages/desktop-access/rbac.mdx
docs/pages/desktop-access/troubleshooting.mdx
docs/pages/desktop-access/reference/cli.mdx
docs/pages/desktop-access/reference/sessions.mdx
docs/pages/kubernetes-access/getting-started/local.mdx
docs/pages/kubernetes-access/guides/cicd.mdx
docs/pages/kubernetes-access/controls.mdx
docs/pages/kubernetes-access/helm/guides/gcp.mdx
docs/pages/kubernetes-access/helm/guides/aws.mdx
docs/pages/kubernetes-access/helm/guides/custom.mdx
docs/pages/kubernetes-access/helm/guides/migration.mdx
docs/pages/kubernetes-access/helm/reference/teleport-kube-agent.mdx
docs/pages/contributing/documentation/style-guide.mdx
docs/pages/setup/admin/daemon.mdx
docs/pages/setup/operations/backup-restore.mdx
docs/pages/setup/guides/ssh-key-extensions.mdx
docs/pages/setup/reference/config.mdx
docs/pages/setup/reference/predicate-language.mdx
docs/pages/architecture/overview.mdx
docs/pages/architecture/proxy.mdx
docs/pages/architecture/users.mdx
docs/pages/getting-started/docker-compose.mdx
docs/pages/cloud/downloads.mdx
docs/pages/api/introduction.mdx
docs/pages/production.mdx
docs/pages/application-access/reference.mdx
docs/pages/application-access/getting-started.mdx
docs/pages/application-access/guides/connecting-apps.mdx
docs/pages/application-access/guides/dynamic-registration.mdx

I grabbed this list by running running find docs/pages -name "*.mdx" -not -wholename "*includes*" and -execing the following awk script for each file:

# To be run from the root of the gravitational/teleport repo
BEGIN{
    # Whether we mention tctl at all
    t=0;
    # Whether we mention "tsh login"
    l=0;
    # Whether we include tctl.mdx
    i=0;
}

/tctl/{t=1}

/tsh login/{l=1}

/tctl.mdx/{i=1}

END{
    # If we mention tctl, we should mention "tsh login" or include tctl.mdx
    if(t==1 && l==0 && i==0)
      print FILENAME;
}