Metadata-Version: 2.1
Name: kubify
Version: 9015.0.1
Summary: Automated EKS
Home-page: https://github.com/willyguggenheim/kubify
Author: kubify
Author-email: w@kubify.com
License: BSD license
Keywords: kubify
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.7
License-File: LICENSE
Requires-Dist: ansible-runner
Requires-Dist: awscli
Requires-Dist: boto3
Requires-Dist: kubernetes
Requires-Dist: pytest-kind
Provides-Extra: develop
Requires-Dist: Sphinx ; extra == 'develop'
Requires-Dist: bandit ; extra == 'develop'
Requires-Dist: black ; extra == 'develop'
Requires-Dist: bump2version ; extra == 'develop'
Requires-Dist: check-manifest ; extra == 'develop'
Requires-Dist: flake8 ; extra == 'develop'
Requires-Dist: pick ; extra == 'develop'
Requires-Dist: pylint ; extra == 'develop'
Requires-Dist: pytest ; extra == 'develop'
Requires-Dist: pytest-cov ; extra == 'develop'
Requires-Dist: tox ; extra == 'develop'
Provides-Extra: test
Requires-Dist: bandit ; extra == 'test'
Requires-Dist: black ; extra == 'test'
Requires-Dist: bump2version ; extra == 'test'
Requires-Dist: check-manifest ; extra == 'test'
Requires-Dist: flake8 ; extra == 'test'
Requires-Dist: pick ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: tox ; extra == 'test'
Provides-Extra: tests
Requires-Dist: bandit ; extra == 'tests'
Requires-Dist: black ; extra == 'tests'
Requires-Dist: bump2version ; extra == 'tests'
Requires-Dist: check-manifest ; extra == 'tests'
Requires-Dist: flake8 ; extra == 'tests'
Requires-Dist: pick ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: tox ; extra == 'tests'

Welcome
=======

Kubify OS, Version: 9015.0.1

Turn-Key DevOps/MLOps Stack

Rapid Development Platform


Getting Started
===============

Local Install

    A: `pip install kubify`

    B: `conda install kubify`

Local Start Kubernetes Kind Kubify Rapid Testing Cluster `kubify --up`

A: Local Start Entire Enviornment in Multi-Service Kubify Code Edit Mode `kubify --start-all`
    * deploys all Terraform locally to localstack AWS Cloud Services
    * deploys all Serverless Framework to LocalStack AWS Cloud Services
    * deploys all Services to local Kind Cluster using Skaffold for Hot Reloading All Services

B: Local Start a Service and all it's Dependant Services in Multi-Service Kubify Code Edit Mode `kubify --start`
    1. `cd services/[][]`
    2. `kubify --start`

Stop local Kubernetes Kind Cluster `kubify --down`


Contributing Command
====================


It's As Simple As `git commit [] && make rapid` To Test All, Version And Push



Developer Context
=================


To (Optionally) Start 100% In A Container, DevContainer or Docker-Compose, or Similar ..

To Install Directly On Mac/Linux/Windows/WSL/WSL2, Use Ansible Roles In `kubify/ops/ansible`

To Install The Example Multi-Cloud MLOps DevOps Stack for Deploying with CICD to 

AWS EKS, GCP GKE & Azure AKS `kubify/ops/terraform` and one Way to Deploy Those is With `make clouds`

CloudFormation And Serverless Jinja Templates are in the ansible Folder for `kubify.yml` shorthand syntax

Additional Workflows:

A: CONTRIBUTING.rst
   * Includes Efficient Workflows For Contributing To This Repo (And For Any Custom Installs) Enjoy
B: Dev Container VSCode
   * Click The Dev Container Button In Your IDE Of Choise (Example: Visual Studio Code's Green Button)
C: GithUb Workspaces
   * Super Efficient On-Boarding Use Case (For Installs And Contributing): Click "."" Key in GitHub


Ideolegy
========


A Proven PROOF OF CONCEPT (Python Port IN PROGRESS) To Show The Idea And To Productionize It Together, 

Code Delivery Platform to Solve Regression Testing Early in the Development Process, Without The Wait,

A Fun Project I am Building To Prove An Interesting Next Gen Self Service Platform For Devs, DevOps and MLOps, to All Work On The Same Code Base, 

1. In The Kubify Platform, DevOps/MLOps/Devs/DataScientists/Researchers/Engineers Write Code Terraform/SLS/CF/ArgoCD/Services/ML At The Same Time, The Same Way, And Test The Same Way, As 1 Big Team (Same Codebase)
    * 1 Kubify Yaml in each `./services/[group][name]` Folder `kubify.yml` (Rapid Test in Local/DevContainer/CodeSpaces/NotebookServers/VSCode All Your Terraform/SLS/CF/ArgoCD/Services/ML/AWS and The Same Time)
    * 1 Environment Yaml, Each Environment Gets 1 Auto-Versioned Environment File (Easy to Rollback Multiple Services and Easy to UAT/Clone Prod Without Needing Any Access To The Data To Debug Anything, Solve/Debug Fast)
2. Developers Leverage DevOps/MLOps CodeBase Day-In-Day-Out To Test and Contribute (If It Works On My Laptop, It Works in Prod, That's What Makes This Different, Join-At-The-Hip Your DevOps/MLOps Devs to All of Your Devs)
3. Developers Are Now More Effecienct (1 Click/Command And You Are On-Boarded To Your Code Working Environment, With a Full Simulation of The Cloud Locally, With All Dependant Services Listening For Code Changes Hot Reloading)

Join-At-The-Hip Your DevOps/MLOps Hard Working Software Developers with the rest of Your Hard Working Software Developers With This Idea/Ideolegy

AutoDevOps AutoMLOps Turn-Key Solution for Developers, 1 Click/Command To On-Board Developers To Your Infra And Repos, Get Your Devs Up and Running With A Click

This Marries Your DevOps/MLOps Teams to Your Developer Teams For Maximum Efficiency In Itterating

Rapid Test Real Infra and Code Changes At The Same Time
* Deploy the Same Way that you Code, With The Real Infra Code
* Itterate Fast when Building Many-to-Many Services, Really Fast
* Rapid Test Your Real Infra As You Code, Test and Itterate
* Know How It Will Function In The Cloud, Before You Push

Happy Coding

To use the python package
=========================

You can ``import kubify`` (we ship to PyPi), and then you can override
any folder (such as terraform or services folders) by having folder with
the same name in your repo.

See ``./examples/simple`` for Python Package usage example.

To run this repo directly
=========================

To contribute to Kubify Open Source (and I hope you do), then clone this
repo and:

1. ``make cloud cloud=[aws|gcp|azure]``
2. ``make local``
3. ``make local start-all``
4. ``make local [service]``

All the dependant services will start and will listen for code changes
as well. Efficiently edit the entire codebase.

To install directly on workstation
==================================

To install directly on your workstation (instead of just using the
container):

1. apple: ``make mac``
2. ubuntu, debian and other debian-based: ``make deb``
3. rhel, centos and other epel-based: ``make epel``

Environment Isolation
=====================

Security Minute: You should not give prod access to anyone (but devs
need to debug urgent issue in prod). How?

.. code:: bash

   cd services/example-node-complex-svc
   make local prod

What Just Happened?
===================

You are hot patching many services locally (and with the full real
environment) without access to data, but with the full real prod!
Kubernetes can be amazing, and it is, with Kubify..

Contributing Workflow Patterns
==============================

1. DevContainer
2. Invoke Python Directly (pull image if missing tools)
3. Tox (multi-python testing)
4. Install Directly and Invoke Python Directly


# TODO: put link to automatic gitops docs
# TODO: multi-cloud ArgoCD Helm-Native automation README explainer here
# TODO: rapid testing explainer here

