Skip to content

Commit 46d5c47

Browse files
committed
OK, that should be all the new packaging support files. Currently the dependencies are based on local files, but once we test each for individual the installs locally and make sure the tests work properly, we can then publish
the core and adjust the model/codegen/meta package requirements so they refer to the content on PyPI.
1 parent 2197272 commit 46d5c47

22 files changed

+207
-156
lines changed

README-codegen.rst

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
2+
.. |travis| image:: https://travis-ci.com/haxsaw/hikaru.svg?branch=dev
3+
:target: https://app.travis-ci.com/github/haxsaw/hikaru
4+
5+
.. |license| image:: https://img.shields.io/github/license/haxsaw/hikaru
6+
:alt: GitHub license :target: https://github.com/haxsaw/hikaru/blob/main/LICENSE
7+
8+
.. |versions| image:: https://img.shields.io/pypi/pyversions/hikaru
9+
:alt: PyPI - Python Version
10+
11+
.. |coverage| image:: https://codecov.io/gh/haxsaw/hikaru/branch/dev/graph/badge.svg?token=QOFGNVHGNP
12+
:target: https://codecov.io/gh/haxsaw/hikaru
13+
14+
.. |logo| image:: hikaru-model-26-logo.png
15+
:alt: Hikaru
16+
17+
|logo|
18+
19+
20+
Version 1.1.0
21+
22+
|travis| |license| |versions| |coverage|
23+
24+
`Try it: see Hikaru convert your K8s YAML <http://www.incisivetech.co.uk/try-hikaru.html>`_
25+
26+
`Release notes <https://github.com/haxsaw/hikaru/blob/main/release_notes.rst>`_
27+
28+
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
29+
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
31+
a variety of ways:
32+
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
34+
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
36+
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
37+
objects loaded from non-Python sources.
38+
- Hikaru also supports a number of features that aid in the management of
39+
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
41+
on your provisioned K8s resources.
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
43+
and watches.
44+
- Finally, Hikaru includes a facility to specify a collection of
45+
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
46+
watch, and management capabilities on the entire application as it does on single resource objects
47+
(full format shifting support to come).
48+
49+
**This package supports resources from the Kubernetes Python client version 26.x**. It depends on the
50+
``hikaru-core`` package which will be installed automatically when this packages is installed. This package
51+
will work with any version of the Kubernetes Python client >= 26.x; if you need to constrain which release
52+
is installed then you should establish your own requirement limts on the Kubernetes Python client package.
53+
54+
See README-core.rst for the main README and links to overall documentation.
55+
56+
About
57+
~~~~~
58+
59+
Hikaru is Mr. Sulu’s first name, a famed fictional helmsman.

README-core.rst

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,33 @@ Version 1.1.0
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
``Hikaru`` is a collection of tools that allow you to work with Kubernetes resources from within Python in
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
3131
a variety of ways:
3232

33-
- ``Hikaru`` provides type-annotated classes that model all of the Kubernetes resources in Python
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
3434
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35-
- ``Hikaru`` also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
3636
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
3737
objects loaded from non-Python sources.
38-
- ``Hikaru`` also supports a number of features that aid in the management of
38+
- Hikaru also supports a number of features that aid in the management of
3939
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40-
- ``Hikaru`` includes support for creating 'watches' on your objects, providing a means to monitor events
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
4141
on your provisioned K8s resources.
42-
- ``Hikaru`` provides support for creation of CRDs which support all the above features such as CRUD operations
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
4343
and watches.
44-
- Finally, ``Hikaru`` includes a facility to specify a collection of
44+
- Finally, Hikaru includes a facility to specify a collection of
4545
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
4646
watch, and management capabilities on the entire application as it does on single resource objects
4747
(full format shifting support to come).
4848

4949
The ``hikaru-core`` package provides all the base machinery to support the above capabilities but
5050
does not include any of the Kubernetes model objects, nor does it include the support to generate
51-
Python source code from in-memory ``hikaru`` objects.
51+
Python source code from in-memory Hikaru objects.
5252

5353
- For model objects, install one of the ``hikaru-model-*`` packages. The ``hikaru-core`` package is
5454
is a requirement for all model packages, so you will automatically get ``hikaru-core`` when you
5555
install a model. You may install as many model releases into the same Python instance as you wish, but
56-
you will need to indicate to ``hikaru`` which release should be used when create objects from a
56+
you will need to indicate to Hikaru which release should be used when create objects from a
5757
cluster or other sources.
5858
- For source code generation capabilities, you'll need to install the ``hikaru-codegen`` package.
5959

@@ -135,10 +135,10 @@ you to build your own controllers for your CRDs.
135135
Model entire applications
136136
-------------------------
137137

138-
``Hikaru`` provides an application base class that can be derived from to allow the creation
139-
of sets of resources that comprise the infra for an application system. This application model
138+
Hikaru provides an Application base class that can be derived from to allow the creation
139+
of sets of resources that comprise the infra for an application system. This Application model
140140
can be inspected, provisioned into a cluster, read from a cluster, and watched, just like
141-
with individual ``hikaru`` K8s objects.
141+
with individual Hikaru K8s objects.
142142

143143
Integrate your own subclasses
144144
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

README-model-23.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,29 +27,29 @@ Version 1.1.0
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
``Hikaru`` is a collection of tools that allow you to work with Kubernetes resources from within Python in
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
3131
a variety of ways:
3232

33-
- ``Hikaru`` provides type-annotated classes that model all of the Kubernetes resources in Python
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
3434
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35-
- ``Hikaru`` also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
3636
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
3737
objects loaded from non-Python sources.
38-
- ``Hikaru`` also supports a number of features that aid in the management of
38+
- Hikaru also supports a number of features that aid in the management of
3939
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40-
- ``Hikaru`` includes support for creating 'watches' on your objects, providing a means to monitor events
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
4141
on your provisioned K8s resources.
42-
- ``Hikaru`` provides support for creation of CRDs which support all the above features such as CRUD operations
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
4343
and watches.
44-
- Finally, ``Hikaru`` includes a facility to specify a collection of
44+
- Finally, Hikaru includes a facility to specify a collection of
4545
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
4646
watch, and management capabilities on the entire application as it does on single resource objects
4747
(full format shifting support to come).
4848

4949
**This package supports resources from the Kubernetes Python client version 23.x**. It depends on the
5050
``hikaru-core`` package which will be installed automatically when this packages is installed. This package
5151
will work with any version of the Kubernetes Python client >= 23.x; if you need to constrain which release
52-
is installed then you should establish your own requirement limts on the Kubernetes Python client package.
52+
is installed then you should establish your own requirement limits on the Kubernetes Python client package.
5353

5454
See README-core.rst for the main README and links to overall documentation.
5555

README-model-24.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ Version 1.1.0
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
``Hikaru`` is a collection of tools that allow you to work with Kubernetes resources from within Python in
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
3131
a variety of ways:
3232

33-
- ``Hikaru`` provides type-annotated classes that model all of the Kubernetes resources in Python
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
3434
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35-
- ``Hikaru`` also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
3636
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
3737
objects loaded from non-Python sources.
38-
- ``Hikaru`` also supports a number of features that aid in the management of
38+
- Hikaru also supports a number of features that aid in the management of
3939
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40-
- ``Hikaru`` includes support for creating 'watches' on your objects, providing a means to monitor events
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
4141
on your provisioned K8s resources.
42-
- ``Hikaru`` provides support for creation of CRDs which support all the above features such as CRUD operations
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
4343
and watches.
44-
- Finally, ``Hikaru`` includes a facility to specify a collection of
44+
- Finally, Hikaru includes a facility to specify a collection of
4545
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
4646
watch, and management capabilities on the entire application as it does on single resource objects
4747
(full format shifting support to come).

README-model-25.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ Version 1.1.0
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
``Hikaru`` is a collection of tools that allow you to work with Kubernetes resources from within Python in
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
3131
a variety of ways:
3232

33-
- ``Hikaru`` provides type-annotated classes that model all of the Kubernetes resources in Python
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
3434
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35-
- ``Hikaru`` also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
3636
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
3737
objects loaded from non-Python sources.
38-
- ``Hikaru`` also supports a number of features that aid in the management of
38+
- Hikaru also supports a number of features that aid in the management of
3939
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40-
- ``Hikaru`` includes support for creating 'watches' on your objects, providing a means to monitor events
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
4141
on your provisioned K8s resources.
42-
- ``Hikaru`` provides support for creation of CRDs which support all the above features such as CRUD operations
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
4343
and watches.
44-
- Finally, ``Hikaru`` includes a facility to specify a collection of
44+
- Finally, Hikaru includes a facility to specify a collection of
4545
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
4646
watch, and management capabilities on the entire application as it does on single resource objects
4747
(full format shifting support to come).

README-model-26.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ Version 1.1.0
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
``Hikaru`` is a collection of tools that allow you to work with Kubernetes resources from within Python in
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
3131
a variety of ways:
3232

33-
- ``Hikaru`` provides type-annotated classes that model all of the Kubernetes resources in Python
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
3434
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35-
- ``Hikaru`` also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
3636
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
3737
objects loaded from non-Python sources.
38-
- ``Hikaru`` also supports a number of features that aid in the management of
38+
- Hikaru also supports a number of features that aid in the management of
3939
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40-
- ``Hikaru`` includes support for creating 'watches' on your objects, providing a means to monitor events
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
4141
on your provisioned K8s resources.
42-
- ``Hikaru`` provides support for creation of CRDs which support all the above features such as CRUD operations
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
4343
and watches.
44-
- Finally, ``Hikaru`` includes a facility to specify a collection of
44+
- Finally, Hikaru includes a facility to specify a collection of
4545
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
4646
watch, and management capabilities on the entire application as it does on single resource objects
4747
(full format shifting support to come).

README.rst

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
|logo|
1818

1919

20-
Version 1.0.1
20+
Version 1.1.0
2121

2222
|travis| |license| |versions| |coverage|
2323

@@ -27,15 +27,41 @@ Version 1.0.1
2727

2828
`Full documentation at Read the Docs <https://hikaru.readthedocs.io/en/latest/index.html>`_
2929

30-
Hikaru is a tool that provides you the ability to easily shift between
31-
YAML, Python objects/source, and JSON representations of your Kubernetes config
32-
files. It provides assistance in authoring these files in Python,
33-
opens up options in how you can assemble and customise the files, and
34-
provides some programmatic tools for inspecting large, complex files to
35-
enable automation of policy and security compliance.
36-
37-
Additionally, Hikaru allows you to use its K8s model objects to interact with Kubernetes,
38-
directing it to create, modify, and delete resources.
30+
Hikaru is a collection of tools that allow you to work with Kubernetes resources from within Python in
31+
a variety of ways:
32+
33+
- Hikaru provides type-annotated classes that model all of the Kubernetes resources in Python
34+
and supports CRUD operations on those classes to manage their lifecycle in your Kubernetes cluster.
35+
- Hikaru also provides tooling to shift formats for these objects, allowing you to turn K8s YAML
36+
into Python objects, JSON, or Python dicts, and vice-versa. It can also generate Python source code for K8s
37+
objects loaded from non-Python sources.
38+
- Hikaru also supports a number of features that aid in the management of
39+
your objects such as searching for specific fields or diffing two instances of a K8s resource.
40+
- Hikaru includes support for creating 'watches' on your objects, providing a means to monitor events
41+
on your provisioned K8s resources.
42+
- Hikaru provides support for creation of CRDs which support all the above features such as CRUD operations
43+
and watches.
44+
- Finally, Hikaru includes a facility to specify a collection of
45+
resources as an 'application', similar in spirit to a Helm chart, and provides the same CRUD,
46+
watch, and management capabilities on the entire application as it does on single resource objects
47+
(full format shifting support to come).
48+
49+
This ``hikaru`` package is a meta-package that has as dependencies:
50+
51+
- ``hikaru-core`` for core Hikaru capabilities
52+
- ``hikaru-codegen`` for generating formatted Python source from Hikaru objects
53+
- The four most recent ``hikaru-model-*`` packages, currently:
54+
55+
- 23.x
56+
- 24.x
57+
- 25.x
58+
- 26.x
59+
60+
See each package's specific PyPI page for any details on that package.
61+
62+
While you can continue to use this meta-package as before, we suggest you migrate to using the model
63+
versions that match the version of the Kubernetes API you need to interact with. This package just helps
64+
make that smoother.
3965

4066
From Python
4167
~~~~~~~~~~~
@@ -105,6 +131,14 @@ of Hikaru. Automatically generate schema from a Hikaru class, define CRDs to
105131
Kubernetes, manage CRD instances with CRUD methods, and create watchers that allow
106132
you to build your own controllers for your CRDs.
107133

134+
Model entire applications
135+
-------------------------
136+
137+
Hikaru provides an Application base class that can be derived from to allow the creation
138+
of sets of resources that comprise the infra for an application system. This Application model
139+
can be inspected, provisioned into a cluster, read from a cluster, and watched, just like
140+
with individual Hikaru K8s objects.
141+
108142
Integrate your own subclasses
109143
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
110144

@@ -140,7 +174,7 @@ API coverage
140174
~~~~~~~~~~~~
141175

142176
Hikaru supports all objects in the OpenAPI swagger spec for
143-
the Kubernetes API **v 1.16**, and has initial support for methods on those objects
177+
the Kubernetes API **v 1.26**, and has initial support for methods on those objects
144178
from the same swagger spec. Additionally, it defines some higher-level CRUD-style
145179
methods on top of these foundation methods.
146180

devdoc/notes.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ Other build tasks
8282

8383
Building
8484
--------
85+
FIRST, delete any artifacts of previous builds!!!
86+
87+
rm -rf build
88+
8589
building the package: python setup.py bdist_wheel
8690

8791
Build testing process

0 commit comments

Comments
 (0)