{"id":39112270,"url":"https://github.com/nobbs/kubectl-mapr-ticket","last_synced_at":"2026-01-17T19:56:05.776Z","repository":{"id":214696210,"uuid":"736809619","full_name":"nobbs/kubectl-mapr-ticket","owner":"nobbs","description":"Kubectl plugin to inspect Mapr tickets used by the Mapr CSI driver.","archived":false,"fork":false,"pushed_at":"2026-01-15T22:36:21.000Z","size":262,"stargazers_count":3,"open_issues_count":12,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-16T01:51:47.021Z","etag":null,"topics":["kubectl-plugins","kubernetes","mapr"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nobbs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-29T00:09:04.000Z","updated_at":"2024-07-20T13:50:16.000Z","dependencies_parsed_at":"2023-12-30T01:20:38.444Z","dependency_job_id":"239c42f0-fab5-49ba-9db5-ff59d79a9798","html_url":"https://github.com/nobbs/kubectl-mapr-ticket","commit_stats":null,"previous_names":["nobbs/kubectl-mapr-ticket"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/nobbs/kubectl-mapr-ticket","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobbs%2Fkubectl-mapr-ticket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobbs%2Fkubectl-mapr-ticket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobbs%2Fkubectl-mapr-ticket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobbs%2Fkubectl-mapr-ticket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nobbs","download_url":"https://codeload.github.com/nobbs/kubectl-mapr-ticket/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobbs%2Fkubectl-mapr-ticket/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28517429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubectl-plugins","kubernetes","mapr"],"created_at":"2026-01-17T19:56:05.065Z","updated_at":"2026-01-17T19:56:05.766Z","avatar_url":"https://github.com/nobbs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kubectl-mapr-ticket\n\n[![GitHub Release](https://img.shields.io/github/v/release/nobbs/kubectl-mapr-ticket)](https://github.com/nobbs/kubectl-mapr-ticket/releases/latest)\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/nobbs/kubectl-mapr-ticket/ci.yaml?branch=release-please--branches--main\u0026label=CI%20Build)](https://github.com/nobbs/kubectl-mapr-ticket/actions/workflows/ci.yaml)\n[![Codecov](https://img.shields.io/codecov/c/github/nobbs/kubectl-mapr-ticket)](https://app.codecov.io/gh/nobbs/kubectl-mapr-ticket)\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/nobbs/kubectl-mapr-ticket)\n\n`kubectl-mapr-ticket` is a `kubectl` plugin that allows you to list and inspect MapR tickets deployed as Kubernetes secrets in a cluster.\n\nMapR tickets are used by the [MapR CSI driver](https://github.com/mapr/mapr-csi) to authenticate and authorize access to Persistent Volumes backed by MapR storage.\n\n## Installation\n\n### Using `krew`\n\nThe easiest way to install the plugin is using the [krew](https://krew.sigs.k8s.io/) plugin manager for `kubectl`. Once you have `krew` installed, you can install the plugin as follows:\n\n```console\n$ kubectl krew install mapr-ticket\n$ kubectl mapr-ticket --help\n```\n\n### Using Release Binaries\n\nYou can download the latest release binaries from the [releases page](https://github.com/nobbs/kubectl-mapr-ticket/releases). Binaries are available for Linux and macOS for both AMD64 and ARM64 architectures.\n\n\u003c!-- x-release-please-start-version --\u003e\n\nExample installation of `v0.4.1` for Apple Silicon (ARM64) macOS:\n\n```console\n$ curl -LO https://github.com/nobbs/kubectl-mapr-ticket/releases/download/v0.4.1/kubectl-mapr-ticket-arm64-darwin.tar.gz\n$ tar -xvf kubectl-mapr-ticket-arm64-darwin.tar.gz\n$ mv ./kubectl-mapr-ticket /usr/local/bin\n$ kubectl mapr-ticket --help\n```\n\n\u003c!-- x-release-please-end --\u003e\n\n### From Source\n\nTo install from source, you will need to have [Go](https://golang.org/) installed on your system. Once you have Go installed, you can build the plugin as follows:\n\n```console\n$ git clone https://github.com/nobbs/kubectl-mapr-ticket.git\n$ cd kubectl-mapr-ticket \u0026\u0026 CGO_ENABLED=0 go build -buildvcs=true -o ./bin/kubectl-mapr-ticket ./cmd \u0026\u0026 mv ./bin/kubectl-mapr-ticket /usr/local/bin\n$ kubectl mapr-ticket --help\n```\n\n## Usage\n\nThe plugin can be invoked using the `kubectl mapr-ticket` command. The plugin supports the following subcommands:\n\n- `inspect`, alias `i` - Inspect the contents of a MapR ticket secret in the current namespace or a local file.\n- `secret`, alias `s` - List all secrets containing MapR tickets in the current namespace and print some information about them.\n- `volume`, alias `pv` - List all persistent volumes that use the specified MapR ticket secret and print some information about them.\n- `claim`, alias `pvc` - List all persistent volume claims that use a MapR ticket in the current namespace.\n\n### Inspect\n\nThe `inspect` subcommand will print the contents of a MapR ticket secret in the current namespace or a MapR ticket from a local file. The output by default is a minimal JSON representation of the ticket. An optional `--output` flag can be used to instead print the ticket in YAML format. The optional `--human-readable` (`-H`) flag can be used to print the ticket in a human-readable format, pretty-printing the JSON output and converting UNIX timestamps to human-readable dates.\n\n```consol\n$ cat mapr_ticket\ndemo.mapr.com +Cze+qwYCbAXGbz56OO7UF+lGqL3WPXrNkO1SLawEEDmSbgNl019xBeBY3kvh+R13iz/mCnwpzsLQw4Y5jEnv5GtuIWbeoC95ha8VKwX8MKcE6Kn9nZ2AF0QminkHwNVBx6TDriGZffyJCfZzivBwBSdKoQEWhBOPFCIMAi7w2zV/SX5Ut7u4qIKvEpr0JHV7sLMWYLhYncM6CKMd7iECGvECsBvEZRVj+dpbEY0BaRN/W54/7wNWaSVELUF6JWHQ8dmsqty4cZlI0/MV10HZzIbl9sMLFQ=\n\n$ kubectl mapr-ticket inspect --human-readable --file mapr_ticket\n{\n  \"cluster\": \"demo.mapr.com\",\n  \"ticket\": {\n    \"expiryTime\": \"29229672-06-17T19:31:17+02:00\",\n    \"creationTimeSec\": \"2018-04-04T16:31:37+02:00\",\n    \"maxRenewalDurationSec\": \"0s\",\n    \"encryptedTicket\": \"AggBendQDHJBpB80ZZpmpde/2DYxfbgEPOBjBZTgLNno844p0I5Y5OZ7PvUdbcS1HwvGQjOWnsX3oIS3F6ZrGLeNWxKwQW9VtQG7EcOZFFtHCFMjcnWU3RSGo6dRn8EndfObMZBbXAQYJks5Qw==\",\n    \"userKey\": {\n      \"key\": \"t4l3cSFODvinISYUr6C394nN9w3gbg+YspV4fIu+vkQ=\"\n    },\n    \"userCreds\": {\n      \"uid\": 5000,\n      \"gids\": [\n        5000,\n        0,\n        5001\n      ],\n      \"userName\": \"mapr\"\n    }\n  }\n}\n```\n\n### Secrets\n\nThe `secret` subcommand will list all MapR tickets deployed as `Secrets` in the current namespace. The output by default will be a table that can be extended with the `--output wide` flag. Additional flags can be used to customize the output, see `kubectl mapr-ticket secret --help` for more details.\n\n```console\n$ kubectl mapr-ticket secret\nNAME                      MAPR CLUSTER         USER     STATUS              AGE\nmapr-dev-ticket-user-a    demo.dev.mapr.com    user_a   Valid (4y left)     75d\nmapr-dev-ticket-user-b    demo.dev.mapr.com    user_b   Valid (4y left)     75d\nmapr-dev-ticket-user-c    demo.dev.mapr.com    user_c   Valid (4y left)     75d\nmapr-prod-ticket-user-a   demo.prod.mapr.com   user_a   Expired (43d ago)   73d\nmapr-prod-ticket-user-b   demo.prod.mapr.com   user_b   Expired (43d ago)   73d\nmapr-prod-ticket-user-c   demo.prod.mapr.com   user_c   Expired (43d ago)   73d\n```\n\n### Volumes\n\nThe `volume` subcommand will list all Persistent Volumes that are using a specific MapR ticket if a secret name is specified, or any ticket in the current namespace if no argument is provided. The output by default will be a table with the following columns. Additional flags can be used to customize the output, see `kubectl mapr-ticket volume --help` for more details.\n\n```console\n$ kubectl mapr-ticket mapr-ticket-secret -n test-csi\nNAME             SECRET NAMESPACE   SECRET               CLAIM NAMESPACE   CLAIM        TICKET STATUS         AGE\ntest-static-pv   test-csi           mapr-ticket-secret   default           test-claim   Not found / Invalid   13h\nvar-lib-mapr     test-csi           mapr-ticket-secret   default           test-var     Valid (4y left)       12d\nexpired-pv       test-csi           mapr-ticket-secret   default           test-exp     Expired (43d ago)     12d\n```\n\n### Claims\n\nThe `claim` subcommand will list all Persistent Volume Claims in the current namespace that are using a MapR ticket. The output by default will be a table with the following columns. Additional flags can be used to customize the output, see `kubectl mapr-ticket claim --help` for more details.\n\n```console\n$ kubectl mapr-ticket claim -n default\nNAME         SECRET NAMESPACE   SECRET               VOLUME NAME      TICKET STATUS         AGE\ntest-claim   test-csi           mapr-ticket-secret   test-static-pv   Not found / Invalid   13h\ntest-var     test-csi           mapr-ticket-secret   var-lib-mapr     Valid (4y left)       12d\ntest-exp     test-csi           mapr-ticket-secret   expired-pv       Expired (43d ago)     12d\n```\n\n### Shell Completion\n\nThe plugin supports shell completion for various shells. To enable shell completion, you will need to source the completion script for your shell. For example, to enable completion for `zsh`, you can run the following command:\n\n```console\n$ source \u003c(kubectl mapr-ticket completion zsh)\n```\n\nNote, that this is only local to your current shell session. To enable completion permanently, you either need to add the command to your shell profile or place the completion script in the appropriate location for your shell.\n\nUnfortunately, the above setup will only provide completion for the `kubectl-mapr_ticket` command, not the actual `kubectl mapr-ticket` alias. To enable completion for the alias, you need to create a special `kubectl_complete-mapr_ticket` executable in your `PATH` that will delegate execution to the plugin. You can find an example of it in the [hack](hack) directory. Place the script somewhere in your `PATH` and make sure it is executable, e.g. by running:\n\n```console\n$ curl -LO https://github.com/nobbs/kubectl-mapr-ticket/raw/main/hack/kubectl_complete-mapr_ticket\n$ chmod +x ./kubectl_complete-mapr_ticket\n$ mv ./kubectl_complete-mapr_ticket /usr/local/bin\n```\n\n## Does this require a connection to a MapR cluster?\n\n**No, this `kubectl` plugin does not require a connection to a MapR cluster.** The plugin will inspect the secrets in the current namespace, filter them down to those that are MapR tickets, and then decode the ticket contents using [this reverse-engineered ticket parser](https://github.com/nobbs/mapr-ticket-parser) which is based on this [blog post of mine](https://nobbs.dev/posts/reverse-engineering-mapr-ticket-format/).\n\nBased on testing, the plugin is able to parse tickets starting at least from MapR 6.0.0 as the format did not receive any breaking changes since then.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobbs%2Fkubectl-mapr-ticket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnobbs%2Fkubectl-mapr-ticket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobbs%2Fkubectl-mapr-ticket/lists"}