Skip to main content

Openshift cluster login on command line

Project description

logo

OCL (OpenShift Login)

PyPI PyPI platforms PyPI - License Release and Package Application

OCL does an automatic login to an OpenShift cluster. It fetches cluster information from app-interface and performs a login via Selenium.

Installation

You can install this library from PyPI with pip:

python3 -m pip install openshift-cluster-login

or install it with pipx:

pipx install openshift-cluster-login

You can also use pipx to run the library without installing it:

pipx run openshift-cluster-login

Usage

ocl

This spawns a new shell with the following environment variables are set:

  • KUBECONFIG - path to kubeconfig file
  • OCL_CLUSTER_NAME - cluster name
  • OCL_CLUSTER_CONSOLE - url to cluster console

Features

OCL currently provides the following features (get help with -h or --help):

  • OpenShift console login (oc login) via GitHub or Red Hat authentication
  • Get cluster and namespace information from app-interface or user-defined (OCL_USER_CLUSTERS``) _ Open the OpenShiftconsole in thebrowser`` (--open-in-browser)
  • Shell completion (--install-completion, --show-completion)
  • Credentials via environment variables or shell command (e.g., 1password CLI)
  • Cache App-Interface queries (via GraphQL) for one week

Environment Variables

Variable Name Description Default
OCL_WAIT OCL_WAIT_COMMAND Selenium webdriver wait timeout 2
OCL_APP_INTERFACE_URL OCL_APP_INTERFACE_URL_COMMAND App-Interface URL
OCL_APP_INT_TOKEN OCL_APP_INT_TOKEN_COMMAND App-Interface authentication token [optional]
OCL_USER_CLUSTERS OCL_USER_CLUSTERS_COMMAND User defined clusters as json format (e.g. [{"name": "local-kind", "serverUrl": "https://localhost:6443", "consoleUrl": "not available}]) "[]"
OCL_CACHE_TIMEOUT_MINUTES GraphQL cache timeout in minutes 1 hour

You can either set a variable, e.g. export OCL_GITHUB_USERNAME="mail@example.com" or retrieve it via a command, e.g. export OCL_GITHUB_USERNAME_COMMAND="op read op://Private/Github/username". If a variable is not set but needed, OCL will ask for it interactively.

App-Interface

OCL retrieves the cluster information from app-interface via GraphQL (OCL_APP_INTERFACE_URL) and caches them in your user cache directory (on MacOS, e.g., ~/Library/Caches/ocl/gql_cache/). Remove this directory to force a refresh.

Limitations

  • Kerberos authentication only
  • Works only with a Red Hat associate account

Development

Code style: black Checked with mypy

Use Conventional Commit messages. The most important prefixes you should have in mind are:

  • fix: which represents bug fixes, and correlates to a SemVer patch.
  • feat: which represents a new feature, and correlates to a SemVer minor.
  • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a SemVer major.
  • chore: release to create a new release

Consider using an empty commit:

git commit --allow-empty -m "chore: release"

When a commit to the main branch has Release-As: x.x.x (case insensitive) in the commit body, Release Please will open a new pull request for the specified version.

git commit --allow-empty -m "chore: release 2.0.0" -m "Release-As: 2.0.0"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openshift_cluster_login-1.1.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

openshift_cluster_login-1.1.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file openshift_cluster_login-1.1.1.tar.gz.

File metadata

  • Download URL: openshift_cluster_login-1.1.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1023-azure

File hashes

Hashes for openshift_cluster_login-1.1.1.tar.gz
Algorithm Hash digest
SHA256 32505f0a8c65e24d6ce98ad3653cae57086117f8b367892e6b1ed8b9667a0a0c
MD5 ce1bbbc322b6101f32783a2bf465d9e3
BLAKE2b-256 f5624f70efe869602ca9118cce73fb39f08698a3d9cf9bb208c93fdebbc98cb3

See more details on using hashes here.

File details

Details for the file openshift_cluster_login-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openshift_cluster_login-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37e463cf5e05cbe5203feaa11183c3816b47a8c62a7ff75a92e99c5d6f6c020a
MD5 f67c499fb03576483d6266d8c2f3e53a
BLAKE2b-256 593b52d432b18a6608dcda7c9e8919a968c0cfb814ea7d0a88cca892bf1d664f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page