first commit
This commit is contained in:
commit
a615e8a1f9
2 changed files with 197 additions and 0 deletions
141
LICENSE
Normal file
141
LICENSE
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
the GNU General Public License is intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users. We, the Free Software Foundation, use the
|
||||||
|
GNU General Public License for most of our software; it applies also to
|
||||||
|
any other work released this way by its authors. You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you
|
||||||
|
these rights or asking you to surrender the rights. Therefore, you have
|
||||||
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
|
or can get the source code. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps:
|
||||||
|
(1) assert copyright on the software, and (2) offer you this License
|
||||||
|
giving you legal permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains
|
||||||
|
that there is no warranty for this free software. For both users' and
|
||||||
|
authors' sake, the GPL requires that modified versions be marked as
|
||||||
|
changed, so that their problems will not be attributed erroneously to
|
||||||
|
authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run
|
||||||
|
modified versions of the software inside them, although the manufacturer
|
||||||
|
can do so. This is fundamentally incompatible with the objective of
|
||||||
|
protecting users' freedom to change the software. The systematic
|
||||||
|
pattern of such abuse occurs in the area of products for individuals to
|
||||||
|
use, which is precisely where it is most unacceptable. Therefore, we
|
||||||
|
have designed this version of the GPL to prohibit the practice for those
|
||||||
|
products. If such problems arise substantially in other domains, we
|
||||||
|
stand ready to extend this provision to those domains in future versions
|
||||||
|
of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents.
|
||||||
|
States should not allow patents to restrict development and use of
|
||||||
|
software on general-purpose computers, but in those that do, we wish to
|
||||||
|
avoid the special danger that patents applied to a free program could
|
||||||
|
make it effectively proprietary. To prevent this, the GPL assures that
|
||||||
|
patents cannot be used to render the program non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
=====================
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
=====================
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. "Object code" means any non-source form
|
||||||
|
of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
...[Full license text continues here.]
|
||||||
|
|
||||||
|
For the complete terms and conditions, see the full GNU GPL v3 text at:
|
||||||
|
https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
56
README.md
Normal file
56
README.md
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
**Project**: inftools-cn
|
||||||
|
|
||||||
|
**Purpose**: This repository contains a small helper container image and scripts to build and run a debugging/admin container for working with Docker and lightweight Kubernetes (k3d). The image includes `kubectl`, the Docker CLI, and `k3d` so you can create and administer a local k3d cluster from inside the container.
|
||||||
|
|
||||||
|
**Key Files**:
|
||||||
|
- `Dockerfile`: Builds the helper image (Debian Bookworm) with `kubectl`, `k3d`, and the Docker CLI.
|
||||||
|
- `build.sh`: Ensures the `inftools-cn:latest` image exists, creates a user Docker network (`student-net`) if missing, and (when needed) runs `k3d cluster create mycluster` inside the helper container. It also edits the kubeconfig stored in the `mykube` Docker volume so the cluster API uses the load-balancer node.
|
||||||
|
- `run.sh`: Launches an interactive shell in the helper container, mounting the Docker socket and the `mykube` volume.
|
||||||
|
|
||||||
|
**Image / Resources**:
|
||||||
|
- Image name: `inftools-cn:latest`
|
||||||
|
- Docker network used: `student-net`
|
||||||
|
- Docker volume used for kubeconfig: `mykube`
|
||||||
|
|
||||||
|
**Requirements**:
|
||||||
|
- Docker must be installed and the user must be able to access the Docker daemon (the scripts bind-mount `/var/run/docker.sock`).
|
||||||
|
- Host can run containers and create networks/volumes.
|
||||||
|
|
||||||
|
**Quick Usage**:
|
||||||
|
|
||||||
|
- Build and create the k3d cluster (recommended):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
- Start an interactive shell inside the helper container (uses the pre-built `inftools-cn:latest` image):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./run.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
see [this demo](http://ascii.headshed.dev/a/dbfdZXIGo2wrvwn9ePsf9TFPs) of `build.sh` and `run.sh` on a debian bookworm OS
|
||||||
|
|
||||||
|
<script src="http://ascii.headshed.dev/a/dbfdZXIGo2wrvwn9ePsf9TFPs.js" id="asciicast-dbfdZXIGo2wrvwn9ePsf9TFPs" async="true"></script>
|
||||||
|
|
||||||
|
- Manual docker build/run (if you prefer):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build -t inftools-cn:latest .
|
||||||
|
docker network create student-net # if not present
|
||||||
|
docker run --rm -it --network student-net -v /var/run/docker.sock:/var/run/docker.sock -v mykube:/root/.kube inftools-cn:latest bash
|
||||||
|
```
|
||||||
|
|
||||||
|
**What `build.sh` does (summary)**:
|
||||||
|
- Ensures the `inftools-cn:latest` image exists (builds it from `Dockerfile` if missing).
|
||||||
|
- Creates `student-net` Docker network if it doesn't exist.
|
||||||
|
- Runs the `k3d cluster create mycluster` command inside the helper container, captures the output to find the load-balancer node, and updates the kubeconfig in the `mykube` volume so the cluster API endpoint points to the LB node on port `6443`.
|
||||||
|
|
||||||
|
**Security notes**:
|
||||||
|
- The container mounts the host Docker socket (`/var/run/docker.sock`) into the container which grants the container broad control over the host Docker daemon. Only run this in trusted environments.
|
||||||
|
|
||||||
|
**License**:
|
||||||
|
- This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
|
||||||
|
- See the `LICENSE` file in this repository for the full license text.
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue