Metadata-Version: 2.1
Name: karpentermig
Version: 0.2.2
Summary: A tool for Karpenter migration
Home-page: https://github.com/yourusername/karpentermig
Author: Pugar Jayanegara
Author-email: p.jayanegara@gmail.com
License: Copyright <2024> <PUGAR JAYANEGARA>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: questionary
Requires-Dist: boto3
Requires-Dist: click
Requires-Dist: pyyaml

# Simple Karpenter Migration Tool
Migrate your EKS cluster from NodeGroup Cluster Autoscaler to Karpenter

# Overview
The automation CLI tool is expected to do:

1. [Feature-1] Discovery of the EKS Cluster Cluster Auto Scaler and its entirely Workloads configurations to explore the variation of scaling method it currently employs. [CAS configs, Node Groups, ASGs, Launch Templates, PDBs, Deployments nodeSelectors,NodeAffinity,PodAffinity, TopologySpeads, Taints). Discovery prerequisite kubectl access to EKS clusters.
2. [Feature-2] Describe the Variations the Cluster Currently Employs, Emphasize the changes impact on different configuration artifacts. This would be helpful for customer with smaller engineering team which does not have proper CICD/GitOps documenting all the stack architecture in place.
3. [Feature-3] Generate recommended ready to test configuration artifacts required. Including : Karpenter, Deployment, PDB configs. The customer can start using this for staging to production after testing and tuning.

The scenario automation CLI support would be:

1. AWS EKS Cluster. All Region.
2. 3 scenario autoscaling: 
    1. Managed NodeGroups (ASGs)
    2. Managed NodeGroups (ASGs) + Launch Templates
    3. ~~Zone-aware ASGs (Multi-AZ)~~

# Download
karpentermig is available on PyPI https://pypi.org/project/karpentermig/

```bash
pip install karpentermig
```

# Running the tool
## pre-requisites
- python 3.10+
- aws cli installed, configured and with access to your EKS cluster
- kubectl installed and configured to talk to your EKS cluster
- eksctl installed and configured to talk to your EKS cluster

```bash
karpentermig
```
