akskubeconfig


Nameakskubeconfig JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/niq-ccoe-platform-engineering/akskubeconfig
SummaryA utility to genearate kubeconfig for AKS clusters in bulk across one or multiple subscriptions
upload_time2024-11-13 18:28:05
maintainerNone
docs_urlNone
authorCameron Larsen
requires_python<4.0,>=3.10
licenseMIT
keywords aks kubeconfig kubernetes
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- Space: CLDCOE -->
<!-- Parent: NIQ Managed Actions -->
<!-- Type: page -->
<!-- Layout: article -->
# akskubeconfig
<!-- Include: disclaimer.tmpl -->
<!-- Include: ac:toc -->

A utility to generate a kubeconfig file for all AKS clusters in one or more Azure subscriptions.

## Why

Managing and updating a Kubernetes configuration file for AKS clusters can be a
nightmare when you manage multiple clusters across multiple subscriptions. This
tool aims to simplify the process by generating a kubeconfig file for all AKS
clusters that you have access to in all subscriptions that you have access to.

While checking all subscriptions is default behavior, you can also specify a
list of subscriptions to check. This can be useful if you have access to a large
number of subscriptions and only want to check a subset of them.

It also supports generating that kubeconfig file using a number of different
authentication flows, including:

- Default (using the default authentication flow)
- Device Flow (using the device flow authentication flow)
- Interactive (using the interactive web browser authentication flow)
- Service Principal Secret (using a service principal secret to authenticate)
- Service Principal PFX (using a service principal pfx certificate to authenticate)
- Managed Identity (using a managed identity to authenticate)
- Managed Identity ID (using a managed identity to authenticate)
- Azure CLI (using the Azure CLI to authenticate)
- Workload Identity (using a workload identity to authenticate)

This can be useful for a number of reasons, such as generating a bulk kubeconfig
file on-the-fly for CI/CD pipelines, or for generating a kubeconfig file for a
specific cluster in a specific subscription.

## Installation

`akskubeconfig` is implemented in Python. Assuming you have a
Python interpreter and pip installed you should be able to install with:

```shell
pip install akskubeconfig
```

> This has not yet been widely tested and is currently in a _works on my
machine_ state.

## Usage

The simplest usage is to just run the tool and specify an output file for it to write to:

```shell
akskubeconfig -o ~/.kube/config
```

This will generate a set of schemas in a `schemas` directory. The tool
provides a number of options to modify the output:

```shell
akskubeconfig --help
usage: akskubeconfig [-h] [-v] [-s SUBSCRIPTIONS] [--client-id CLIENT_ID] [--tenant-id TENANT_ID] [--client-secret CLIENT_SECRET] [--certificate-path CERTIFICATE_PATH]
                     [--server-id SERVER_ID] [--environment ENVIRONMENT]
                     [--default | --device-flow | --interactive | --sp-secret | --sp-pfx | --managed-identity | --managed-identity-id | --az-cli | --workload-identity  --json | --yaml]
                     [-m MAX_THREADS] [-o OUTFILE]

options:
  -h, --help            show this help message and exit
  -v, --verbose         Increase output verbosity
  -s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS
                        A comma separated list of subscription to use. If omitted, all subscriptions will be checked.
  --client-id CLIENT_ID
                        Override the client id to write into the kubeconfig. Only applicable if required by the selected authentication flow.
  --tenant-id TENANT_ID
                        Override the tenant id to write into the kubeconfig. Only applicable if required by the selected authentication flow.
  --client-secret CLIENT_SECRET
                        Override the client secret to write into the kubeconfig. Only applicable if required by the selected authentication flow.
  --certificate-path CERTIFICATE_PATH
                        Override the certificate path to write into the kubeconfig. Only applicable if required by the selected authentication flow.
  --server-id SERVER_ID
                        Override the server id to write into the kubeconfig.
  --environment ENVIRONMENT
                        Override the environment to write into the kubeconfig.
  --default             Use the default flow authenticate within the generated kubeconfig (default)
  --device-flow         Use device flow to authenticate within the generated kubeconfig
  --interactive         Use the interactive web browser flow to authenticate within the generated kubeconfig
  --sp-secret           Use a service principal secret to authenticate within the generated kubeconfig
  --sp-pfx              Use a service principal pfx certificate to authenticate within the generated kubeconfig
  --managed-identity    Use a managed identity to authenticate within the generated kubeconfig
  --managed-identity-id
                        Use a managed identity to authenticate within the generated kubeconfig
  --az-cli              Use the Azure CLI to authenticate within the generated kubeconfig
  --workload-identity   Use a workload identity to authenticate within the generated kubeconfig
  --json                Output as JSON
  --yaml                Output as YAML (default)
  -m MAX_THREADS, --max-threads MAX_THREADS
                        Maximum number of threads to use
  -o OUTFILE, --outfile OUTFILE
                        Output file
```

<!-- Include: footer.tmpl -->

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/niq-ccoe-platform-engineering/akskubeconfig",
    "name": "akskubeconfig",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "aks, kubeconfig, kubernetes",
    "author": "Cameron Larsen",
    "author_email": "cameron.larsen@nielseniq.com",
    "download_url": "https://files.pythonhosted.org/packages/97/3c/274fe8909abc7279e6c8b268ffe74997b5ebd79c117eea93006489074f49/akskubeconfig-1.0.1.tar.gz",
    "platform": null,
    "description": "<!-- Space: CLDCOE -->\n<!-- Parent: NIQ Managed Actions -->\n<!-- Type: page -->\n<!-- Layout: article -->\n# akskubeconfig\n<!-- Include: disclaimer.tmpl -->\n<!-- Include: ac:toc -->\n\nA utility to generate a kubeconfig file for all AKS clusters in one or more Azure subscriptions.\n\n## Why\n\nManaging and updating a Kubernetes configuration file for AKS clusters can be a\nnightmare when you manage multiple clusters across multiple subscriptions. This\ntool aims to simplify the process by generating a kubeconfig file for all AKS\nclusters that you have access to in all subscriptions that you have access to.\n\nWhile checking all subscriptions is default behavior, you can also specify a\nlist of subscriptions to check. This can be useful if you have access to a large\nnumber of subscriptions and only want to check a subset of them.\n\nIt also supports generating that kubeconfig file using a number of different\nauthentication flows, including:\n\n- Default (using the default authentication flow)\n- Device Flow (using the device flow authentication flow)\n- Interactive (using the interactive web browser authentication flow)\n- Service Principal Secret (using a service principal secret to authenticate)\n- Service Principal PFX (using a service principal pfx certificate to authenticate)\n- Managed Identity (using a managed identity to authenticate)\n- Managed Identity ID (using a managed identity to authenticate)\n- Azure CLI (using the Azure CLI to authenticate)\n- Workload Identity (using a workload identity to authenticate)\n\nThis can be useful for a number of reasons, such as generating a bulk kubeconfig\nfile on-the-fly for CI/CD pipelines, or for generating a kubeconfig file for a\nspecific cluster in a specific subscription.\n\n## Installation\n\n`akskubeconfig` is implemented in Python. Assuming you have a\nPython interpreter and pip installed you should be able to install with:\n\n```shell\npip install akskubeconfig\n```\n\n> This has not yet been widely tested and is currently in a _works on my\nmachine_ state.\n\n## Usage\n\nThe simplest usage is to just run the tool and specify an output file for it to write to:\n\n```shell\nakskubeconfig -o ~/.kube/config\n```\n\nThis will generate a set of schemas in a `schemas` directory. The tool\nprovides a number of options to modify the output:\n\n```shell\nakskubeconfig --help\nusage: akskubeconfig [-h] [-v] [-s SUBSCRIPTIONS] [--client-id CLIENT_ID] [--tenant-id TENANT_ID] [--client-secret CLIENT_SECRET] [--certificate-path CERTIFICATE_PATH]\n                     [--server-id SERVER_ID] [--environment ENVIRONMENT]\n                     [--default | --device-flow | --interactive | --sp-secret | --sp-pfx | --managed-identity | --managed-identity-id | --az-cli | --workload-identity  --json | --yaml]\n                     [-m MAX_THREADS] [-o OUTFILE]\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         Increase output verbosity\n  -s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS\n                        A comma separated list of subscription to use. If omitted, all subscriptions will be checked.\n  --client-id CLIENT_ID\n                        Override the client id to write into the kubeconfig. Only applicable if required by the selected authentication flow.\n  --tenant-id TENANT_ID\n                        Override the tenant id to write into the kubeconfig. Only applicable if required by the selected authentication flow.\n  --client-secret CLIENT_SECRET\n                        Override the client secret to write into the kubeconfig. Only applicable if required by the selected authentication flow.\n  --certificate-path CERTIFICATE_PATH\n                        Override the certificate path to write into the kubeconfig. Only applicable if required by the selected authentication flow.\n  --server-id SERVER_ID\n                        Override the server id to write into the kubeconfig.\n  --environment ENVIRONMENT\n                        Override the environment to write into the kubeconfig.\n  --default             Use the default flow authenticate within the generated kubeconfig (default)\n  --device-flow         Use device flow to authenticate within the generated kubeconfig\n  --interactive         Use the interactive web browser flow to authenticate within the generated kubeconfig\n  --sp-secret           Use a service principal secret to authenticate within the generated kubeconfig\n  --sp-pfx              Use a service principal pfx certificate to authenticate within the generated kubeconfig\n  --managed-identity    Use a managed identity to authenticate within the generated kubeconfig\n  --managed-identity-id\n                        Use a managed identity to authenticate within the generated kubeconfig\n  --az-cli              Use the Azure CLI to authenticate within the generated kubeconfig\n  --workload-identity   Use a workload identity to authenticate within the generated kubeconfig\n  --json                Output as JSON\n  --yaml                Output as YAML (default)\n  -m MAX_THREADS, --max-threads MAX_THREADS\n                        Maximum number of threads to use\n  -o OUTFILE, --outfile OUTFILE\n                        Output file\n```\n\n<!-- Include: footer.tmpl -->\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A utility to genearate kubeconfig for AKS clusters in bulk across one or multiple subscriptions",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/niq-ccoe-platform-engineering/akskubeconfig",
        "Repository": "https://github.com/niq-ccoe-platform-engineering/akskubeconfig"
    },
    "split_keywords": [
        "aks",
        " kubeconfig",
        " kubernetes"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86ae7f98a2409f98bc60a78f26c202ae6ac8a22efaa0cf30d6cd8a795e5a55ee",
                "md5": "4be3f1326744140790bda23a06d8111b",
                "sha256": "fa60ee023020602784bbbdcd2bd137afc919affdc90d8ad216c9f2aee2c89ffb"
            },
            "downloads": -1,
            "filename": "akskubeconfig-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4be3f1326744140790bda23a06d8111b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 21387,
            "upload_time": "2024-11-13T18:28:04",
            "upload_time_iso_8601": "2024-11-13T18:28:04.101236Z",
            "url": "https://files.pythonhosted.org/packages/86/ae/7f98a2409f98bc60a78f26c202ae6ac8a22efaa0cf30d6cd8a795e5a55ee/akskubeconfig-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "973c274fe8909abc7279e6c8b268ffe74997b5ebd79c117eea93006489074f49",
                "md5": "7c392127ea999962b67e879aa090a2ab",
                "sha256": "70e4d75b231b310c4b602fa5af5337ebe4649018618326e0a83b73aced6d591d"
            },
            "downloads": -1,
            "filename": "akskubeconfig-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7c392127ea999962b67e879aa090a2ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 18849,
            "upload_time": "2024-11-13T18:28:05",
            "upload_time_iso_8601": "2024-11-13T18:28:05.611101Z",
            "url": "https://files.pythonhosted.org/packages/97/3c/274fe8909abc7279e6c8b268ffe74997b5ebd79c117eea93006489074f49/akskubeconfig-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-13 18:28:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "niq-ccoe-platform-engineering",
    "github_project": "akskubeconfig",
    "github_not_found": true,
    "lcname": "akskubeconfig"
}
        
Elapsed time: 1.32001s