Openshift cluster login on command line
Project description
OCL (OpenShift Login)
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 fileOCL_CLUSTER_NAME
- cluster nameOCL_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 OpenShift
console inthe
browser`` (--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
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!:
, orfix!:
,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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for openshift_cluster_login-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fab98444ac4fe60084b72b84bd7a9e8e7f14023fbad48a3883ba7f71581f96e |
|
MD5 | 0e424c615a83c090db8dd9c0cf9faf5b |
|
BLAKE2b-256 | 7c6d36545553f2aa2af93b63f5937c552372b2cecb25164949468d44829fb71e |
Hashes for openshift_cluster_login-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17aaa769dc98de8955444e8ce07974abdbf3a98134ead1c253bcf4ad36a53e6b |
|
MD5 | a8bad9538912d456491a9ab1ef4116ff |
|
BLAKE2b-256 | bcc0def01fd23ef73bb41081ce15e2c03e048ac83f3f3382f5888ba17adbc1c6 |