generated from interTwin-eu/repository-template
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into dependabot/github_actions/actions/checkout-4
- Loading branch information
Showing
4,514 changed files
with
6,930 additions
and
1,309,791 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,17 @@ | ||
![Interlink logo](./docs/imgs/interlink_logo.png) | ||
![Interlink logo](./docs/static/img/interlink_logo.png) | ||
|
||
## :information_source: Overview | ||
|
||
### Watch for a quick tour | ||
[![Introducing interLink](./docs/imgs/Phenomenal_20231211_063311_0000.png)](https://youtu.be/-djIQGPvYdI?si=eq_qXylYH_KczFeQ) | ||
|
||
|
||
### Introduction | ||
InterLink aims to provide an abstraction for the execution of a Kubernetes pod on any remote resource capable of managing a Container execution lifecycle. | ||
We target to facilitate the development of provider specific plugins, so the resource providers can leverage the power of virtual kubelet without a black belt in kubernetes internals. | ||
|
||
The project consists of two main components: | ||
|
||
- __A Kubernetes Virtual Node:__ based on the [VirtualKubelet](https://virtual-kubelet.io/) technology. Translating request for a kubernetes pod execution into a remote call to the interLink API server. | ||
- __The interLink API server:__ a modular and pluggable REST server where you can create your own Container manager plugin (called sidecars), or use the existing ones: remote docker execution on a remote host, singularity Container on a remote SLURM batch system. | ||
|
||
The project got inspired by the [KNoC](https://github.com/CARV-ICS-FORTH/knoc) project, enhancing that with the implemention a generic API layer b/w the virtual kubelet component and the provider logic for the container lifecycle management. | ||
|
||
![drawing](docs/imgs/InterLink.svg) | ||
|
||
|
||
## :fast_forward: Quick Start | ||
|
||
Give it a stab at interLink [website](https://dciangot.github.io/interLink/). You will deploy on your laptop a fully emulated instance of a kubernetes cluster able to offload the execution of a pod to a SLURM cluster | ||
|
||
## GitHub repository management rules | ||
The project got inspired by the [KNoC](https://github.com/CARV-ICS-FORTH/knoc) and [Liqo](https://github.com/liqotech/liqo/tree/master) projects, enhancing that with the implemention a generic API layer b/w the virtual kubelet component and the provider logic for the container lifecycle management. | ||
|
||
All changes should go through Pull Requests. | ||
For usage and development guides please refer to [our website](https://intertwin-eu.github.io/interLink/) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
INTERLINKCONFIGPATH=/etc/interlink/configs/InterLinkConfig.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
OAUTH2_PROXY_CLIENT_ID= #CLIENT_ID | ||
OAUTH2_PROXY_CLIENT_SECRET= #CLIENT_SECRET | ||
OAUTH2_PROXY_HTTP_ADDRESS=0.0.0.0:8080 | ||
OAUTH2_PROXY_OIDC_ISSUER_URL=https://dodas-iam.cloud.cnaf.infn.it/ | ||
OAUTH2_PROXY_PASS_AUTHORIZATION_HEADER=true | ||
OAUTH2_PROXY_PROVIDER=oidc | ||
OAUTH2_PROXY_REDIRECT_URL=http://localhost:8081 | ||
OAUTH2_PROXY_OIDC_EXTRA_AUDIENCE=intertw-vk | ||
OAUTH2_PROXY_UPSTREAM=http://0.0.0.0:30444 | ||
OAUTH2_PROXY_ALLOWED_GROUP=intw | ||
OAUTH2_PROXY_VALIDATE_URL=https://dodas-iam.cloud.cnaf.infn.it/token | ||
OAUTH2_PROXY_OIDC_GROUP_CLAIMS=groups | ||
OAUTH2_PROXY_EMAIL_DOMAINS=* | ||
OAUTH2_PROXY_COOKIE_SECRET=2ISpxtx19fm7kJlhbgC4qnkuTlkGrshY82L3nfCSKy4== | ||
OAUTH2_PROXY_SKIP_AUTH_ROUTE="*='*'" | ||
OAUTH2_PROXY_FORCE_HTTPS=true | ||
OAUTH2_PROXY_HTTPS_ADDRESS=0.0.0.0:30443 | ||
OAUTH2_PROXY_TLS_FILE_CERT= #CERT_FILE | ||
OAUTH2_PROXY_TLS_KEY_FILE= #KEY_FILE | ||
OAUTH2_PROXY_SKIP_JWT_BEARER_TOKENS=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
These are handful Systemd Units needed to automatically start InterLink and Sidecars at system startup | ||
|
||
Just edit the .envs and .envs-oauth files with the ENVS you want to use within the InterLink API, your Sidecar and your Oauth2 Proxy; after that ```cd Systemd\ Units``` and | ||
```bash | ||
./install-script.sh install slurm | ||
``` | ||
|
||
The install comand will proceed to build binaries from scratch and to move them and configs to /etc/interlink. Also the Systemd Units will be copied to /etc/systemd/system. | ||
|
||
After that, you can run both interlink and the sidecar by running | ||
|
||
```bash | ||
./install-script.sh start slurm | ||
``` | ||
|
||
and you will be able to monitor your service directly from systemctl by | ||
|
||
```systemctl status interlink.service``` or ```systemctl status slurm-sidecar.service``` | ||
|
||
If you want to automatically start these service on startup, just use the enable argument: | ||
|
||
```bash | ||
./install-script.sh enable slurm | ||
``` | ||
|
||
N.B.: you will need for user to have sudo access! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[Unit] | ||
Description=This Unit is needed to automatically start the Virtual Kubelet at system startup | ||
After=network.target | ||
|
||
[Service] | ||
Type=simple | ||
User=root | ||
WorkingDirectory=/etc/interlink/bin | ||
ExecStart=/etc/interlink/bin/docker-sd | ||
EnvironmentFile=/etc/interlink/.envs | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
Oops, something went wrong.