🏗️ Kubernetes Native Extension to build Linux distributions artifacts from container images
Go to file
Dimitris Karakasilis e55bd03800
1546 byoi (#88)
* Add fields to the CRDs

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP Create test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Refactor code to split in testable functions

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Do something actually useful in tests

- Create a random namespace
- Create an artifact
- Check that CreateConfigmap doesn't error

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Refactor before each so that we can change the artifact object per test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Run kaniko to build the Dockerfile

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Build the image from Dockerfile with kaniko

Currently can build an image. For example apply these:

```
kind: Secret
apiVersion: v1
metadata:
  name: mydockerfile
stringData:
  Dockerfile: |
    FROM ubuntu
    RUN touch myfile

---
kind: OSArtifact
apiVersion: build.kairos.io/v1alpha2
metadata:
  name: hello-kairos
spec:
  imageName: "quay.io/kairos/core-opensuse-leap:latest"
  baseImageDockerfile:
    name: "mydockerfile"
    key: "Dockerfile"
  iso: true
```

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Clarify that convert-to-kairos is not yet implemented

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove implemented TODO

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Bump linting action

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix linting errors

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Bump it again

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Unexport function and run controller tests in CI

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Unexport the other one too

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Extract case to a function

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Split controller tests in a separate job

so that they run on a fresh cluster and they run in parallel

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove non-implemented functionality

Will happen as part of this: https://github.com/kairos-io/kairos/issues/1721

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* go mod tidy

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Try to use a random (free) port in tests

because sometimes we collide

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-08-31 15:30:55 +03:00
.github/workflows 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
api/v1alpha2 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
config 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
controllers 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
hack Initial import 2022-09-03 14:48:48 +02:00
script ignore checks and fix some 2023-07-18 16:02:06 +02:00
tests Declare variables in container nodes but initialize them in setup nodes 2023-06-21 14:14:35 +03:00
tools-image 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
.dockerignore Initial import 2022-09-03 14:48:48 +02:00
.gitignore Initial import 2022-09-03 14:48:48 +02:00
.shellcheckrc ignore checks and fix some 2023-07-18 16:02:06 +02:00
.yamllint Add yaml lint config file 2023-07-18 14:28:59 +02:00
Dockerfile Update golang Docker tag to v1.20 2023-04-13 12:56:05 +00:00
Earthfile Update repo job 2023-07-27 18:48:52 +02:00
go.mod 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
go.sum 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
main.go removed unused args 2023-05-22 14:40:10 -07:00
Makefile 1546 byoi (#88) 2023-08-31 15:30:55 +03:00
PROJECT 🎨 Rebrand to Kairos 2022-09-19 10:06:14 +00:00
README.md 📖 Update README 2023-02-07 12:11:07 +01:00
renovate.json schedule renovate after hours 2023-07-04 15:55:04 +02:00


kairos-white-column 5bc2fe34
osbuilder

Kubernetes Native Extension to build Linux distributions artifacts from container images

license docs go report card

With Kairos you can build immutable, bootable Kubernetes and OS images for your edge devices as easily as writing a Dockerfile. Optional P2P mesh with distributed ledger automates node bootstrapping and coordination. Updating nodes is as easy as CI/CD: push a new image to your container registry and let secure, risk-free A/B atomic upgrades do the rest.

Documentation

Contribute

📚 Getting started with Kairos
💡 Examples
🎥 Video
👐Engage with the Community

🙌 CONTRIBUTING.md
🙋 GOVERNANCE
👷Code of conduct

This is experimental!

Installation

To install, use helm:

# Adds the kairos repo to helm
$ helm repo add kairos https://kairos-io.github.io/helm-charts
"kairos" has been added to your repositories
$ helm repo update                                        
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "kairos" chart repository
Update Complete. ⎈Happy Helming!⎈

# Install the CRD chart
$ helm install kairos-crd kairos/kairos-crds
NAME: kairos-crd
LAST DEPLOYED: Tue Sep  6 20:35:34 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

# Installs osbuilder
$ helm install kairos-osbuilder kairos/osbuilder

Documentation available at: https://kairos.io/docs/advanced/build/