GithubHelp home page GithubHelp logo

arcaflow-plugin-kubeconfig's Introduction

Kubeconfig Plugin for Arcaflow

The Kubeconfig plugin is used to input a kubernetes or openshift kubeconfig file and parse and extract components of the kubeconfig file such as cluster name, user, server url, client certificate, client token etc.

The plugin expects a kubeconfig inputed as a string, as defined in the InputParams dataclass in kubeconfig_plugin.py file. You define your test parameters in a YAML file to be passed to the plugin command as shown in kubeconfig_example.yaml.

To test:

In order to run the kubeconfig plugin run the following steps:

Containerized

  1. Clone this repository
  2. Create the container with docker build -t arca-kubeconfig -f Dockerfile
  3. Run cat kubeconfig_example.yaml | docker run -i arca-kubeconfig -f - to run the plugin

Native

  1. Clone this repository
  2. Create a venv in the current directory with python3 -m venv $(pwd)/venv
  3. Activate the venv by running source venv/bin/activate
  4. Run pip install poetry
  5. Run poetry install
  6. Run ./kubeconfig_plugin.py -f kubeconfig_example.yaml to run the plugin

Image Building

You can change this plugin's image version tag in .github/workflows/carpenter.yaml by editing the IMAGE_TAG variable, and pushing that change to the branch designated in that workflow.

kubeconfig plugin (kubeconfig)

Inputs a kubeconfig, parses it and extracts the kubernetes cluster details

Input

Type:scope
Root object:InputParams
Properties
kubeconfig (string)
Name:kubeconfig
Description:input kubeconfig string
Required:Yes
Type:string
Minimum length:1
Objects
InputParams (object)
Type:object
Properties
kubeconfig (string)
Name:kubeconfig
Description:input kubeconfig string
Required:Yes
Type:string
Minimum length:1

Outputs

error

Type:scope
Root object:ErrorOutput
Properties
error (string)
Name:Failure Error
Description:Reason for failure
Required:Yes
Type:string
Objects
ErrorOutput (object)
Type:object
Properties
error (string)
Name:Failure Error
Description:Reason for failure
Required:Yes
Type:string

success

Type:scope
Root object:SuccessOutput
Properties
connection (reference[Connection])
Name:Kubernetes connection
Description:Kubernetes connection confirmation.
Required:Yes
Type:reference[Connection]
Referenced object:Connection
Objects
Connection (object)
Type:object
Properties
bearerToken (string)
Name:Token
Description:Secret token of the user/service account
Required:No
Type:string
cacert (string)
Name:CA certificate
Description:CA certificate in PEM format
Required:No
Type:string
cert (string)
Name:Client certificate
Description:Client cert data in PEM format
Required:No
Type:string
host (string)
Name:Server
Description:Kubernetes API URL
Required:Yes
Type:string
key (string)
Name:Client key
Description:Client key in PEM format
Required:No
Type:string
password (string)
Name:Password
Description:Password to authenticate with.
Required:No
Type:string
path (string)
Name:API path
Description:Kubernetes API path
Required:No
Type:string
serverName (string)
Name:TLS server name
Description:Server name to verify TLS certificate against.
Required:No
Type:string
username (string)
Name:Username
Description:Username to authenticate with.
Required:No
Type:string
SuccessOutput (object)
Type:object
Properties
connection (reference[Connection])
Name:Kubernetes connection
Description:Kubernetes connection confirmation.
Required:Yes
Type:reference[Connection]
Referenced object:Connection

arcaflow-plugin-kubeconfig's People

Contributors

arcalot-bot avatar dependabot[bot] avatar dustinblack avatar harshith-umesh avatar jaredoconnell avatar jdowni000 avatar mfleader avatar platform-engineering-bot avatar redhat-renovate-bot avatar sandrobonazzola avatar

Watchers

 avatar  avatar  avatar

arcaflow-plugin-kubeconfig's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: None
Error type: Invalid gitAuthor
Message: gitAuthor is not parsed as valid RFC5322 format: Platform Engineering Bot

Missing project build support

Describe the bug

$ poetry build
Building arcaflow-plugin-kubeconfig (0.1.0)

No file/folder found for package arcaflow-plugin-kubeconfig

and

$ python -m build
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (poetry-core)
* Getting dependencies for sdist...
* Building sdist...
Traceback (most recent call last):
  File "~/upstream/arcaflow-plugin-kubeconfig/venv/lib64/python3.9/site-packages/pep517/in_process/_in_process.py", line 351, in <module>
    main()
  File "~/upstream/arcaflow-plugin-kubeconfig/venv/lib64/python3.9/site-packages/pep517/in_process/_in_process.py", line 333, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "~/upstream/arcaflow-plugin-kubeconfig/venv/lib64/python3.9/site-packages/pep517/in_process/_in_process.py", line 302, in build_sdist
    return backend.build_sdist(sdist_directory, config_settings)
  File "/tmp/build-env-7zcvow2i/lib/python3.9/site-packages/poetry/core/masonry/api.py", line 76, in build_sdist
    path = SdistBuilder(poetry).build(Path(sdist_directory))
  File "/tmp/build-env-7zcvow2i/lib/python3.9/site-packages/poetry/core/masonry/builders/builder.py", line 83, in __init__
    self._module = Module(
  File "/tmp/build-env-7zcvow2i/lib/python3.9/site-packages/poetry/core/masonry/utils/module.py", line 69, in __init__
    raise ModuleOrPackageNotFound(
poetry.core.masonry.utils.module.ModuleOrPackageNotFound: No file/folder found for package arcaflow-plugin-kubeconfig

ERROR Backend subprocess exited when trying to invoke build_sdist

building support is needed in order to publish to pypi.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.