nephos.helpers package

Submodules

nephos.helpers.helm module

class nephos.helpers.helm.HelmPreserve(secret_namespace, secret_name, data_item, values_path)

Bases: tuple

data_item

Alias for field number 2

secret_name

Alias for field number 1

secret_namespace

Alias for field number 0

values_path

Alias for field number 3

class nephos.helpers.helm.HelmSet(key, value, set_string)

Bases: tuple

key

Alias for field number 0

set_string

Alias for field number 2

value

Alias for field number 1

nephos.helpers.helm.helm_check(app, release, namespace, pod_num=None)[source]

Check if a Helm release exists and is functional.

Parameters:
  • app (str) – Helm application name.
  • release (str) – Release name on K8S.
  • namespace (str) – Namespace where Helm deployment is located.
  • pod_num (int) – Number of pods expected to exist in the release.
nephos.helpers.helm.helm_env_vars(env_vars)[source]

Convert environmental variables to a “–set” string for Helm deployments.

Parameters:env_vars (Iterable) – Environmental variables we wish to store in Helm.
Returns:String containing variables to be set with Helm release.
Return type:str
nephos.helpers.helm.helm_extra_vars(version=None, config_yaml=None, env_vars=None, preserve=None, verbose=False)[source]

Centralise obtaining extra variables for our helm_install and/or helm_upgrade

Parameters:
  • version (str) – Which Chart version do we wish to install?
  • config_yaml (str, Iterable) – Values file(s) to override defaults.
  • env_vars (Iterable) – Environmental variables we wish to store in Helm.
  • preserve (Iterable) – Set of secrets we wish to get data from to assign to the Helm Chart.
  • verbose (bool) – Verbosity. False by default.
Returns:

String of Chart version, values files, environmental variables,

Return type:

str

nephos.helpers.helm.helm_init()[source]

Initialise Helm on cluster, using RBAC.

nephos.helpers.helm.helm_install(repo, app, release, namespace, extra_vars='', verbose=False)[source]

Install Helm chart.

Parameters:
  • repo (str) – Repository or folder from which to install Helm chart.
  • app (str) – Helm application name.
  • release (str) – Release name on K8S.
  • namespace (str) – Namespace where to deploy Helm Chart.
  • extra_vars (str) – Extra variables for Helm including version, values files and environmental variables.
  • verbose (bool) – Verbosity. False by default.
nephos.helpers.helm.helm_preserve(preserve, verbose=False)[source]

Convert secret data to a “–set” string for Helm deployments.

Parameters:
  • preserve (Iterable) – Set of secrets we wish to get data from to assign to the Helm Chart.
  • verbose (bool) – Verbosity. False by default.
Returns:

String containing variables to be set with Helm release.

Return type:

str

nephos.helpers.helm.helm_upgrade(repo, app, release, extra_vars='', verbose=False)[source]

Upgrade Helm chart.

Parameters:
  • repo (str) – Repository or folder from which to install Helm chart.
  • app (str) – Helm application name.
  • release (str) – Release name on K8S.
  • extra_vars (str) – Extra variables for Helm including version, values files and environmental variables.
  • verbose (bool) – Verbosity. False by default.

nephos.helpers.k8s module

class nephos.helpers.k8s.Executer(pod, namespace, container='', verbose=False)[source]

Bases: object

execute(command)[source]

Execute a command in pod.

Parameters:command (str) – Command to execute.
Returns:2-tuple of execution info: 1) result of the command, if successful, None if not; 2) and error, if command failed, None if not.
Return type:tuple
logs(tail=-1, since_time=None)[source]

Get logs from pod.

Parameters:tail (int) – How many lines of logs to obtain?
Returns:Logs contained in pod.
Return type:str
nephos.helpers.k8s.cm_create(cm_data, name, namespace='default', verbose=False)[source]

Create a K8S ConfigMap

Parameters:
  • cm_data (dict) – Data to store in ConfigMap as key/value hash.
  • name (str) – Name of ConfigMap.
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
nephos.helpers.k8s.cm_read(name, namespace='default', verbose=False)[source]

Read a K8S ConfigMap.

Parameters:
  • name (str) – Name of the ConfigMap.
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
Returns:

Keys and values stored in the ConfigMap.

Return type:

dict

nephos.helpers.k8s.context_get(verbose=False)[source]

Obtain active K8S context.

Parameters:verbose (bool) – Verbosity. False by default.
Returns:Active context.
Return type:object
nephos.helpers.k8s.get_app_info(namespace, ingress, secret, secret_key='API_KEY', verbose=False)[source]

Get application information.

Parameters:
  • namespace (str) – Name of namespace.
  • ingress (str) – Ingress name.
  • secret (str) – Secret where access details (e.g. API key) are located.
  • secret_key (str) – Key in t containing access details. By default “API KEY”
  • verbose (bool) – Verbosity. False by default.

Returns:

nephos.helpers.k8s.ingress_read(name, namespace='default', verbose=False)[source]

Get host names contained in K8S Ingress.

Parameters:
  • name (str) – Name of Ingress.
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
Returns:

List of host names.

Return type:

list

nephos.helpers.k8s.ns_create(namespace, verbose=False)[source]

Create K8S namespace.

Parameters:
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
nephos.helpers.k8s.ns_read(namespace, verbose=False)[source]

Read Name of namespace.

Parameters:
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
Returns:

Namespace object.

Return type:

object

nephos.helpers.k8s.pod_check(namespace, identifier, sleep_interval=10, pod_num=None)[source]

Check if a set of pods exist and are functional.

Parameters:
  • namespace (str) – Namespace where Helm deployment is located.
  • identifier (str) – Name of pod, or a label descriptor.
  • sleep_interval (int) – Number of seconds to sleep between attempts.
  • pod_num (int) – Number of pods expected to exist in the release. None by default.
nephos.helpers.k8s.secret_create(secret_data, name, namespace='default', verbose=False)[source]

Create a K8S Secret.

Parameters:
  • secret_data (dict) – Data to store in t as key/value hash.
  • name (str) – Name of the Secret.
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
nephos.helpers.k8s.secret_from_file(secret, namespace, key=None, filename=None, verbose=False)[source]

Convert a file into a K8S Secret.

Parameters:
  • secret (str) – Name of Secret where to save the file.
  • namespace (str) – Name of namespace.
  • key (str) – Key to which to assign the file in the K8S t. If not specified, the filename is used.
  • filename (str) – If not provided, we ask the user for input.
  • verbose (bool) – Verbosity. False by default.
nephos.helpers.k8s.secret_read(name, namespace='default', verbose=False)[source]

Read a K8S Secret.

Parameters:
  • name (str) – Name of the Secret.
  • namespace (str) – Name of namespace.
  • verbose (bool) – Verbosity. False by default.
Returns:

Keys and values stored in the Secret.

Return type:

dict

nephos.helpers.misc module

nephos.helpers.misc.execute(command, verbose=False, show_command=True, show_errors=True)[source]

Execute an arbitrary command line command.

Parameters:
  • command (str) – Command to execute.
  • verbose (bool) – Verbosity. False by default.
  • show_command (bool) – Do we display the command? True by default.
  • show_errors (bool) – Do we display errors? True by default.
Returns:

2-tuple of execution info: 1) result of the command, if successful, None if not; 2) and error, if command failed, None if not.

Return type:

tuple

nephos.helpers.misc.execute_until_success(command, verbose=False, delay=15)[source]

Execute a command until it is successful.

Parameters:
  • command (str) – Command to execute.
  • verbose (bool) – Verbosity. False by default.
  • delay (int) – Delay in seconds between each unsuccessful attempt.
Returns:

result of the command

Return type:

str

nephos.helpers.misc.get_response(question, permitted_responses=(), sensitive=False)[source]

Get response from user.

Parameters:
  • question – What do we want to obtain from the user?
  • permitted_responses – What responses do we allow?
  • sensitive – Is the information sensitive (e.g. a password)?
Returns:

Response from user.

Return type:

str

nephos.helpers.misc.input_files(keys, clean_key=False)[source]

Read a set of filenames and return data from them.

Parameters:
  • keys (Iterable) – Tuple of keys
  • clean_key (bool) – Do we clean the key to replace non-alphanumeric symbols with an underscore? False by default.
Returns:

Data from each file assigned to its relevant key.

Return type:

dict

nephos.helpers.misc.pretty_print(string)[source]

Pretty print a JSON string.

Parameters:string (str) – String we want to pretty print.
nephos.helpers.misc.rand_string(length)[source]

Create random alphanumeric string (useful for passwords).

Parameters:length (int) – Length of random string.
Returns:Alphanumeric string.
Return type:str

Module contents