Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add show user command #83

Merged
merged 4 commits into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/content/reference/pgo_show.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,5 @@ HA
* [pgo](/reference/) - pgo is a kubectl plugin for PGO, the open source Postgres Operator
* [pgo show backup](/reference/pgo_show_backup/) - Show backup information for a PostgresCluster
* [pgo show ha](/reference/pgo_show_ha/) - Show 'patronictl list' for a PostgresCluster.
* [pgo show user](/reference/pgo_show_user/) - Show details for a PostgresCluster user.

91 changes: 91 additions & 0 deletions docs/content/reference/pgo_show_user.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: pgo show user
---
## pgo show user

Show details for a PostgresCluster user.

### Synopsis

Show details for a PostgresCluster user. Only shows
details for the default user for a PostgresCluster
or for users defined on the PostgresCluster spec.
Use the "--show-connection-info" flag to get the
connection info, including password.

#### RBAC Requirements
Resources Verbs
--------- -----
secrets [list]

### Usage

```
pgo show user USER_NAME --cluster CLUSTER_NAME [flags]
```

### Examples

```
# Show non-sensitive contents of users for "hippo" cluster
pgo show user --cluster hippo

# Show non-sensitive contents of user "rhino" for "hippo" cluster
pgo show user rhino --cluster hippo

# Show connection info for user "rhino" for "hippo" cluster,
# including sensitive password info
pgo show user rhino --cluster hippo --show-connection-info

```
### Example output
```
# Showing all the users of the "hippo" cluster
CLUSTER USERNAME
hippo hippo
hippo rhino

# Showing the connection info for user "hippo" of cluster "hippo"
WARNING: This command will show sensitive password information.
Are you sure you want to continue? (yes/no): yes

Connection information for hippo for hippo cluster
Connection info string:
dbname=hippo host=hippo-primary.postgres-operator.svc port=5432 user=hippo password=<password>
Connection URL:
postgres://<password>@hippo-primary.postgres-operator.svc:5432/hippo
```

### Options

```
-h, --help help for user
--show-connection-info show sensitive user fields
```

### Options inherited from parent commands

```
--as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--as-uid string UID to impersonate for the operation.
--cache-dir string Default cache directory (default "$HOME/.kube/cache")
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--context string The name of the kubeconfig context to use
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to the kubeconfig file to use for CLI requests.
-n, --namespace string If present, the namespace scope for this CLI request
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
-s, --server string The address and port of the Kubernetes API server
--tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
```

### SEE ALSO

* [pgo show](/reference/pgo_show/) - Show PostgresCluster details

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ require (
k8s.io/apimachinery v0.24.3
k8s.io/cli-runtime v0.24.1
k8s.io/client-go v0.24.3
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9
sigs.k8s.io/structured-merge-diff/v4 v4.2.1
sigs.k8s.io/yaml v1.3.0
)
Expand Down Expand Up @@ -68,7 +69,6 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/klog/v2 v2.60.1 // indirect
k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect
sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect
sigs.k8s.io/kustomize/api v0.11.4 // indirect
sigs.k8s.io/kustomize/kyaml v0.13.6 // indirect
Expand Down
10 changes: 0 additions & 10 deletions internal/cmd/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,3 @@ postgresclusters/hippo deleted`)

return cmd
}

// containsString returns true if slice contains element
func containsString(slice []string, element string) bool {
for _, elem := range slice {
if elem == element {
return true
}
}
return false
}
40 changes: 0 additions & 40 deletions internal/cmd/delete_test.go

This file was deleted.

Loading