Constellation is the first Confidential Kubernetes. Constellation shields entire Kubernetes clusters from the (cloud) infrastructure using confidential computing.
Go to file
2022-05-27 16:53:04 +02:00
.github always try to upload constellation state file (#173) 2022-05-23 14:43:32 +02:00
cli cli: fix and tweak config file wording 2022-05-27 16:53:04 +02:00
conformance Add cis benchmark to conformance test (#165) 2022-05-19 14:57:21 +02:00
coordinator Add mutual aTLS support (#176) 2022-05-24 16:33:44 +02:00
debugd cli: fix and tweak config file wording 2022-05-27 16:53:04 +02:00
docs terraform libvirt: document usage 2022-05-25 10:30:58 +02:00
hack cli: fix command order and minor wording tweaks in config cmd 2022-05-27 16:53:04 +02:00
image CoreOS build pipeline: Cleanup azure disk and image after converting to SIG (#137) 2022-05-12 17:16:57 +02:00
internal cli: fix and tweak config file wording 2022-05-27 16:53:04 +02:00
kms Fix proto file generation (#155) 2022-05-17 15:02:14 +02:00
mount AB#2103 Derive key from LUKS UUID instead of disk name (#156) 2022-05-19 08:47:17 +02:00
proto Fix proto file generation (#155) 2022-05-17 15:02:14 +02:00
state Add mutual aTLS support (#176) 2022-05-24 16:33:44 +02:00
terraform/libvirt terraform libvirt: document usage 2022-05-25 10:30:58 +02:00
test Add mutual aTLS support (#176) 2022-05-24 16:33:44 +02:00
.dockerignore AB#2064 Feat/config/dev config to config (#139) 2022-05-13 11:56:43 +02:00
.gitignore terraform template libvirt 2022-05-25 10:30:58 +02:00
.golangci.yml monorepo 2022-03-22 16:09:39 +01:00
CMakeLists.txt Use cmake to compile debugd / cdbg 2022-05-23 13:15:04 +02:00
CONTRIBUTING.md remove old e2e test 2022-05-21 14:30:05 +02:00
Dockerfile.build Fedora build instructions && and more reproducible builds (#166) 2022-05-23 10:35:14 +02:00
go.mod AB#2117 cli: validate config (#170) 2022-05-23 15:01:39 +02:00
go.sum AB#2117 cli: validate config (#170) 2022-05-23 15:01:39 +02:00
go.work Create hack folder with independent modules (#131) 2022-05-17 11:14:23 +02:00
go.work.sum Implement binary file installer & extractor 2022-05-23 11:40:22 +02:00
README.md terraform libvirt: document usage 2022-05-25 10:30:58 +02:00

Constellation

This is the main repository of Constellation.

Core components:

  • cli: The CLI is used to manage a Constellation cluster
  • coordinator: The Coordinator is a node agent whose most important task is to bootstrap a node
  • image: Build files for the Constellation disk image
  • kms: Constellation's key management client and server
  • mount: Package used by CSI plugins to create and mount encrypted block devices
  • state: Contains the disk-mapper that maps the encrypted node data disk during boot

Development components:

  • conformance: Kubernetes conformance tests
  • debugd: Debug daemon and client
  • hack: Development tools
  • proto: Proto files generator
  • terraform: Infrastructure management using terraform (instead of constellation create/destroy)
    • libvirt: Deploy local cluster using terraform, libvirt and QEMU
  • test: Integration test

Additional repositories:

Build

Prerequisites:

  • Go 1.18

  • Docker

  • Packages on Ubuntu:

    sudo apt install build-essential cmake libssl-dev pkg-config libcryptsetup12 libcryptsetup-dev
    
  • Packages on Fedora:

    sudo dnf install @development-tools pkg-config cmake openssl-devel cryptsetup-libs cryptsetup-devel
    
mkdir build
cd build
cmake ..
make -j`nproc`

Cloud credentials

Using the CLI requires the user to make authorized API calls to the CSP API. See the docs for configuration.

Deploying a locally compiled coordinator binary

By default, constellation create ... will spawn cloud provider instances with a pre-baked coordinator binary. For testing, you can use the constellation debug daemon (debugd) to upload your local coordinator binary to running instances and to obtain SSH access. Follow this introduction on how to install and setup cdbg

Development Guides

Deployment Guides